List and filter conversations
GET /v4/authvia/conversations
Environment and operation
Use this endpoint contract with the account and environment assigned to your integration. Values in angle brackets are placeholders. This reference does not execute requests. Documented server https://sandbox.nmi.com/api Schema reference: field definitions do not include every behavioral rule. Follow the workflow guidance and account prerequisites for this operation before submitting requests.
Request route
Select the documented server above and use this method and path. Path identifiers must belong to the authorized account. GET /v4/authvia/conversations Security scheme Type Credential location Scopes v4ApiKey apiKey header Authorization No scopes declared on this operation
Request language templates
Original transport templates derived from this endpoint’s documented method, server, authentication and media type. Replace path/query/credential placeholders with authorized sandbox values. These examples print the raw status and response; they do not infer business success or retry a request. Node requires a runtime with fetch; PHP requires cURL. Generated source-based examples have not been executed against provider accounts. curl --request GET \ --url 'https://sandbox.nmi.com/api/v4/authvia/conversations' \ --header 'Authorization: <v4ApiKey>' const response = await fetch("https://sandbox.nmi.com/api/v4/authvia/conversations", { method: 'GET', headers: { "Authorization": "<v4ApiKey>" } }); console.log(response.status, await response.text()); from urllib.request import Request, urlopen from urllib.error import HTTPError request = Request('https://sandbox.nmi.com/api/v4/authvia/conversations', method='GET', headers={'Authorization': '<v4ApiKey>'}) try: with urlopen(request, timeout=30) as response: print(response.status, response.read().decode()) except HTTPError as error: print(error.code, error.read().decode()) require 'net/http' require 'uri' uri = URI("https://sandbox.nmi.com/api/v4/authvia/conversations") request = Net::HTTP::Get.new(uri) request["Authorization"] = "<v4ApiKey>" response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https', read_timeout: 30) { |http| http.request(request) } puts response.code puts response.body <?php $curl = curl_init('https://sandbox.nmi.com/api/v4/authvia/conversations'); curl_setopt_array($curl, [ CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTPHEADER => ['Authorization: <v4ApiKey>'] ]); $response = curl_exec($curl); if ($response === false) { throw new RuntimeException(curl_error($curl)); } echo curl_getinfo($curl, CURLINFO_HTTP_CODE), PHP_EOL, $response; curl_close($curl);
Path and query parameters
Required flags apply to the parameter itself. Additional limits and enum values appear in the contract below. Parameter Location Required Type Description merchantId query false See schema startDate query false See schema endDate query false See schema status[] query false See schema phone query false See schema firstName query false See schema lastName query false See schema minAmount query false number maxAmount query false number [ { "in": "query", "name": "merchantId", "schema": { "$ref": "#/components/schemas/NmiMerchantId" } }, { "in": "query", "name": "startDate", "schema": { "$ref": "#/components/schemas/FilterStartDate" } }, { "in": "query", "name": "endDate", "schema": { "$ref": "#/components/schemas/FilterEndDate" } }, { "in": "query", "name": "status[]", "schema": { "$ref": "#/components/schemas/FilterStatusArray" } }, { "in": "query", "name": "phone", "schema": { "$ref": "#/components/schemas/ConversationCustomerPhone" } }, { "in": "query", "name": "firstName", "schema": { "$ref": "#/components/schemas/ConversationCustomerFirstName" } }, { "in": "query", "name": "lastName", "schema": { "$ref": "#/components/schemas/ConversationCustomerLastName" } }, { "in": "query", "name": "minAmount", "schema": { "description": "The minimum conversation amount to include in the filter.", "type": "number", "format": "float", "example": "10.00" } }, { "in": "query", "name": "maxAmount", "schema": { "description": "The maximum conversation amount to include in the filter.", "type": "number", "format": "float", "example": "100.00" } } ] true
Responses
Match the HTTP status to its response schema below. For financial operations, also inspect the payment outcome before updating your order or retrying. HTTP status Media type Meaning 200 application/json The list of conversations with optional filters applied. { "200": { "description": "The list of conversations with optional filters applied.", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/ConversationId" }, "phone": { "$ref": "#/components/schemas/ConversationCustomerPhone" }, "date": { "$ref": "#/components/schemas/ConversationCreationDate" }, "status": { "$ref": "#/components/schemas/ConversationStatus" }, "firstName": { "$ref": "#/components/schemas/ConversationCustomerFirstName" }, "lastName": { "$ref": "#/components/schemas/ConversationCustomerLastName" }, "recordId": { "$ref": "#/components/schemas/NmiRecordId" }, "expiration": { "$ref": "#/components/schemas/ConversationExpirationDate" }, "amount": { "$ref": "#/components/schemas/ConversationAmount" } } } } } } } } true
Referenced schema definitions
References beginning with #/components resolve to these definitions. These are field contracts, not example payment values. Use the applicable variant, required fields and constraints. { "schemas": { "ConversationId": { "type": "string", "description": "The Authvia v4 UUID for the conversation.", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", "example": "7baf2306-4804-4aef-a55e-8cbfcb201ad1" }, "ConversationCreationDate": { "type": "string", "description": "The creation date for the conversation.", "format": "date-time", "example": "2023-11-16T20:28:51.990Z" }, "ConversationExpirationDate": { "type": "string", "description": "The expiration date for the conversation.", "format": "date-time", "example": "2023-11-23T20:28:51.990Z" }, "ConversationStatus": { "type": "string", "description": "The conversation status.", "enum": [ "in progress", "expired", "completed" ], "example": "in progress" }, "ConversationAmount": { "type": "string", "description": "The conversation amount in USD.", "pattern": "^\\d+\\.\\d{2}$", "example": "59.94" }, "ConversationCustomerPhone": { "type": "string", "description": "The conversation customer's ten-digit phone number. US and CA numbers only.", "pattern": "^\\d{10}$", "example": "1234567890" }, "ConversationCustomerFirstName": { "type": "string", "description": "The conversation customer's first name.", "example": "Aberforth" }, "ConversationCustomerLastName": { "type": "string", "description": "The conversation customer's last name.", "example": "Dumbledore" }, "FilterStartDate": { "type": "string", "description": "The start date to filter.", "format": "date", "example": "2023-11-01" }, "FilterEndDate": { "type": "string", "description": "The end date to filter.", "format": "date", "example": "2029-12-31" }, "FilterStatusArray": { "type": "array", "description": "The list of conversation statuses to filter.", "items": { "$ref": "#/components/schemas/ConversationStatus" } }, "NmiMerchantId": { "type": "string", "description": "The merchant ID from NMI. This is only required for partners; for merchants it is ignored.", "format": "int32", "example": "1" }, "NmiRecordId": { "type": "string", "description": "The NMI marketplace v4 UUID for the conversation.", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", "example": "4eed6bef-7fd3-4780-9563-c0d2afa88c76" } }, "securitySchemes": { "v4ApiKey": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "API Security Key assigned to a partner or merchant account. New keys can be generated from Settings > Security Keys in the partner and merchant portals." } } } true
Integration checks
Validate the request against its selected schema before submission. Keep secrets outside browser code. Test permitted and denied account access, validation failures and interrupted responses in the sandbox. Account-management or messaging operations require the corresponding partner access and intended recipient context.