Search for trouble tickets
You might need to locate trouble tickets without knowing their IDs. You can use the following endpoint to search for trouble tickets based on ticket criteria or contact information:
- POST
/billing/v1/search/trouble-tickets
In the request body, specify one or more search parameters. The response contains an array of trouble tickets that match all the specified parameters.
String search parameters
You can search for trouble tickets using fields on the trouble ticket itself.
For all string search parameter fields, BillingCenter supports partial string matching. The search value must match the beginning of the string and is case-insensitive.
For example, the following searches for trouble tickets with a number that starts with "TT-1000":
{
"data": {
"attributes": {
"troubleTicketNumber": "TT-1000"
}
}
}
The following string fields are available as search parameters:
troubleTicketNumber– The trouble ticket number.accountNumber– The account number associated with the trouble ticket.policyNumber– The policy number associated with the trouble ticket.producerName– The name of the producer associated with the trouble ticket.assignedToFirstName– The first name of the user that the trouble ticket is assigned to.assignedToLastName– The last name of the user that the trouble ticket is assigned to.
You can combine multiple string parameters in a single request. The response contains only trouble tickets that match all the specified parameters.
Contact-based search parameters
You can also search for trouble tickets based on contacts linked to the account, policy, policy period, or producer that is associated with the trouble ticket.
For all contact string fields, BillingCenter supports partial string matching. The search value must match the beginning of the string and is case-insensitive.
The following contact fields are available as search parameters:
contactFirstName– The first name of the contact.contactLastName– The last name of the contact.contactCompanyName– The company name of the contact.contactAddressLine1– The first line of the contact's address.contactCity– The city of the contact's address.contactState– The state of the contact's address. Specify as a typekey reference:{"code": "CA"}.contactCountry– The country of the contact's address. Specify as a typekey reference:{"code": "US"}.contactPostalCode– The postal code of the contact's address.
For example, the following searches for trouble tickets associated with a contact in California:
{
"data": {
"attributes": {
"contactLastName": "smith",
"contactState": {
"code": "CA"
}
}
}
}
The status field
The status field filters trouble tickets by their open or closed
state.
open– Returns only trouble tickets that have no close date.closed– Returns only trouble tickets that have a close date.
If status is not specified, both open and closed trouble tickets are
returned.
{
"data": {
"attributes": {
"status": "open"
}
}
}
Specifying a value other than open or closed returns an
HTTP 400 error.
The hasHolds field
The Boolean field hasHolds filters trouble tickets based on whether they
have active hold type entries.
true– Returns only trouble tickets that have active hold type entries.false– Returns only trouble tickets that do not have active hold type entries.- Not set: Trouble tickets both with and without hold type entries are returned.
{
"data": {
"attributes": {
"hasHolds": true
}
}
}
Sorting results
Use the sort query parameter to control the order of results. Prefix the
field name with - for descending order.
?sort=troubleTicketNumber– Ascending order by trouble ticket number?sort=-troubleTicketNumber– Descending order by trouble ticket number
Searching with no search parameters
You can search without including search parameters by sending an empty data wrapper.
{
"data": {
"attributes": {
}
}
}
Response details
BillingCenter returns a list of trouble tickets that match the specified search criteria. The following is an example of a request that returns one trouble ticket:
POST /billing/v1/search/trouble-ticketsRequest body
{
"data": {
"attributes": {
"assignedToFirstName": "sup"
}
}
}
Response
{
"count": 1,
"data": [
{
"attributes": {
"assignedByUser": {
"displayName": "Super User",
"id": "default_data:1",
"type": "User",
"uri": "/admin/v1/users/default_data:1"
},
"assignedGroup": {
"displayName": "Group 1",
"id": "bc:SbzhiezdhOfhzGT0deVod",
"type": "Group",
"uri": "/admin/v1/groups/bc:SbzhiezdhOfhzGT0deVod"
},
"assignedUser": {
"displayName": "Super Visor",
"id": "bc:S-sQnpTScVgwx_wRW0qvm",
"type": "User",
"uri": "/admin/v1/users/bc:S-sQnpTScVgwx_wRW0qvm"
},
"assignmentDate": "2026-04-01T10:00:00.000Z",
"assignmentStatus": {
"code": "assigned",
"name": "Assigned"
},
"createTime": "2026-04-01T10:00:00.000Z",
"createUser": {
"displayName": "Super User",
"id": "default_data:1",
"type": "User",
"uri": "/admin/v1/users/default_data:1"
},
"escalated": false,
"id": "bc:Sd6g5vWGDOXURvwKI-8iH",
"priority": {
"code": "high",
"name": "High"
},
"ticketStatus": "Open",
"ticketType": {
"code": "processingerror",
"name": "Processing Error"
},
"title": "Billing resolution inquiry",
"troubleTicketNumber": "1000000001"
},
"checksum": "0",
"links": {
"self": {
"href": "/billing/v1/trouble-tickets/bc:Sd6g5vWGDOXURvwKI-8iH",
"methods": [
"get",
"patch"
]
}
}
}
],
"links": {
"first": {
"href": "/billing/v1/search/trouble-tickets",
"methods": [
"post"
]
},
"self": {
"href": "/billing/v1/search/trouble-tickets",
"methods": [
"post"
]
}
}
}