| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Search Merchants
Searches the TSYS Direct merchant database using one or more filter criteria and returns a paginated list of matching merchant records. All query parameters are optional — providing more filters narrows results. Each result includes the merchant's internal profile ID, assigned MID, DBA name, current boarding status, and office affiliation. Use this endpoint for operational management, customer support lookups, and compliance monitoring.
Endpoint
GET /api/v1/merchants/tsys-direct/search
Authentication
Basic HTTP Authentication required.
Encode username:password in Base64 and pass in the Authorization header:
Authorization: Basic {base64(username:password)}
When to use
Use this endpoint when you need to find a specific merchant by MID, DBA, email, or phone, or when building dashboards that list merchants filtered by status or MCC. It supports pagination for large result sets. ISO administrators and support teams use this to look up merchant records before performing actions like boarding status checks, underwriting reviews, or account updates.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| mid | string | No | Merchant Identification Number assigned by the processor |
| merchantProfileId | integer (int32) | No | Internal Netevia HQ merchant profile ID |
| dba | string | No | Doing Business As name (partial match supported) |
| string | No | Email address associated with the merchant account | |
| zipCode | string | No | ZIP code of the merchant's business location |
| phone | string | No | Contact phone number of the merchant |
| status | string (enum) | No | Filter by boarding/processing status — see full enum list below |
| mcc | string | No | Merchant Category Code (SIC code) |
| pageNumber | integer (int32) | No | Page number for paginated results (default: 1) |
| pageSize | integer (int32) | No | Number of records per page (default: 10) |
status enum values: NotSubmitted, Approved, PreApproved, Declined, Deactivated, WithDrawn, Closed, Pending, PendingPreUw, InCredit, ConditionallyApproved, RequestChanges, PreUnderwriting, Prospect, Draft, Received, UnderReview, PendingReview, PendingReviewPreUw, Cancelled, T2UnderReview, T2Approved, T2Declined, T2Any, T2Closed, T2Cancelled, Underwriting, MPAInProcess, MPACancelled, MPADeclined, MPADeleted, MPAError, MPABoarded, CRPOSEquipment, New, ElavonSigned, ElavonSubmitted, ElavonProcessorReceived
Response
200 OK
| Field | Type | Description |
|---|---|---|
| pageNumber | integer | Current page number returned |
| pageSize | integer | Number of records per page |
| totalCount | integer | Total number of merchants matching the search criteria |
| items | array of MerchantSearchResult | List of merchant records for the current page |
| items[].merchantProfileId | integer | Internal Netevia HQ merchant profile ID |
| items[].mid | string | Assigned Merchant Identification Number (null if not yet boarded) |
| items[].dba | string | Doing Business As name |
| items[].status | string (enum) | Current boarding/processing status |
| items[].officeTitle | string | Name of the ISO office or branch managing this merchant |
| requestId | integer | Echo of the internal request ID |
| success | boolean | true if the call succeeded |
| error | string | Error message if success is false |
| validationErrors | array | Field-level validation errors if any |
{
"pageNumber": 1,
"pageSize": 20,
"totalCount": 3,
"items": [
{
"merchantProfileId": 30912,
"mid": "450001234567",
"dba": "The Corner Bakery",
"status": "Approved",
"officeTitle": "Phoenix Regional Office"
},
{
"merchantProfileId": 30944,
"mid": null,
"dba": "Corner Bakery Downtown",
"status": "UnderReview",
"officeTitle": "Phoenix Regional Office"
},
{
"merchantProfileId": 31002,
"mid": null,
"dba": "Cornerstone Catering",
"status": "Draft",
"officeTitle": "Scottsdale Branch"
}
],
"requestId": 87450,
"success": true,
"error": null,
"validationErrors": []
}Error Codes
| Code | When it happens |
|---|---|
| 400 | A query parameter has an invalid format (e.g., non-integer merchantProfileId, unrecognized status enum value) |
| 401 | Invalid or missing Basic Auth credentials |
| 403 | User does not have permission to search merchants in the requested scope |
| 500 | Internal server error |
Common Mistakes
- Providing no filter parameters at all — the endpoint will return all merchants accessible to the authenticated user, which may be a very large dataset and slow to return. Always supply at least one filter.
- Using a partial MID string when
midrequires an exact match — verify with the full MID. - Sending abbreviated state names or free-text in the
statusfield — it must exactly match one of the documented enum values, including capitalization. - Not accounting for pagination — if
totalCountexceedspageSize, incrementpageNumberto retrieve subsequent pages. - Confusing
merchantProfileId(internal Netevia ID) withmid(processor-assigned MID) — they are different identifiers.
Related Endpoints
GET /api/v1/merchant/status— Retrieve the detailed boarding status for a specific merchant by profile IDGET /api/v2/merchant/info— Get full merchant profile configuration dataGET /api/v2/merchant/fees— Retrieve the fee schedule for a specific merchant
Example
curl -X GET "https://hq.staging.netevia.dev/api/v1/merchants/tsys-direct/search?dba=Corner+Bakery&status=Approved&pageNumber=1&pageSize=20" \
-H "Authorization: Basic $(echo -n 'username:password' | base64)" \
-H "Accept: application/json"