# Visa Accounts Receivable Manager
Visa Accounts Receivable Manager (Visa AR Manager) is designed to grow and maintain existing virtual card volume by automating the virtual card transaction process, addressing a significant pain point for B2B accepting merchants.

## Version: 1

### Servers

| URL | Description |
| --- | ----------- |
| https://sandbox.api.visa.com | Sandbox server |

---
## Visa AR Manager Onboarding Suite API
Visa AR Manager APIs for Onboarding Suite operations 

### [POST] /varm/v1/suppliermanagement
**Supplier Payment Configuration**

Configures acquiring details and establishes supplier preferences

#### Request Body

Supplier management configuration request

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"mcc"**: string, **"acquirer"**: { **"acquirer_bin"**: string, **"destination_id"**: string }, **"cpip_sid"**: string, **"store_id"**: string, **"currencies"**: [ string ], **"bank_number"**: string, **"merchant_id"**: string, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"terminal_id"**: string, **"chain_number"**: string, **"vital_number"**: string, **"cpip_division"**: string, **"industry_code"**: string, <br>**Available values:** "0", "A", "B", "D", "F", "G", "H", "L", "O", "P", "R", **"acquirer_processor"**: { **"processor_id"**: string, **"processor_name"**: string, <br>**Available values:** "Vantiv CNP", "TSYS", "Chase Paymentech Salem", "Chase Paymentech Tampa", "FDI Global", "SMARTFDC Nashville", "Elavon", "Woodforest National Bank", "etc...", **"transaction_date"**: string, **"retrieval_reference"**: string }, **"merchant_bin_number"**: string, **"payment_types_supported"**: [ string, <br>**Available values:** "VISA" ], **"merchant_location_number"**: string }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Request accepted and processed | **application/json**: { **"message"**: string, **"request_id"**: integer, **"status_code"**: string, <br>**Available values:** "1000", "1002", "1003", "5000" }<br> |
| 400 | Validation error | **application/json**: { **"message"**: string, **"status_code"**: string, <br>**Available values:** "4001", "4002", "4003", "4004", "4006", "4007", "5001" }<br> |
| 500 | Internal server error | **application/json**: { **"message"**: string, **"status_code"**: string, <br>**Available values:** "4001", "4002", "4003", "4004", "4006", "4007", "5001" }<br> |

### [POST] /varm/v1/participationagreement
**Supplier Participation Agreement**

Submit the participation agreement with signer details after the supplier onboarding is complete.

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"signer_details"**: { **"name"**: string, **"email"**: string (email), **"title"**: string }, **"participation_agreement_link"**: string }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Participation agreement submission response | **application/json**: { **"status"**: integer, <br>**Available values:** 1001, 4001, **"message"**: string, **"agreement_id"**: string, **"submission_date"**: dateTime }<br> |
| 400 | Validation error | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |

### [POST] /varm/v1/onboarding/customer
**Supplier Customer Onboarding**

Onboard a new customer and link them to an existing supplier in the VARM system.

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"address"**: { **"state"**: string, **"zipcode"**: string, **"country_code"**: string }, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"customer_info"**: { **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Customer onboarding response | **application/json**: { **"status"**: integer, <br>**Available values:** 1001, 4001, 5000, **"message"**: string, **"customer_id"**: string }<br> |
| 400 | Validation error. Returned for request-field validation failures, supplier-eligibility failures (supplier not found/not active/not VARM-ready), duplicate customer name or customer ID for the same supplier, and the conditional address requirement (required/prohibited depending on the supplier's country and interchange level). | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |

### [POST] /varm/v1/merchant/invitation
**Supplier Invitation**

This endpoint creates a new self-serve supplier registration link and sends the registration email to the supplier.

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"mcc"**: string, **"time_zone"**: string, **"supplier_id"**: { **"originator_supp_id"**: string }, **"company_name"**: string, **"customer_info"**: { **"address"**: { **"zip"**: string, **"state"**: string, **"country_code"**: string }, **"customer_id"**: string, **"customer_url"**: string, **"customer_name"**: string, **"customer_type"**: string, <br>**Available values:** "Email", "Batch/API", **"customer_category"**: string, <br>**Available values:** "Invoice", "Travel", <br>**Default:** Invoice, **"preferred_currency"**: string, **"sender_email_address"**: string (email) }, **"mailing_address"**: { **"zip"**: string, **"city"**: string, **"state"**: string, **"address1"**: string, **"address2"**: string, **"country_code"**: string }, **"originator_details"**: { **"client_id"**: string }, **"invitation_metadata"**: { **"source"**: string }, **"business_contact_info"**: { **"phone"**: { **"country_code"**: string, **"phone_number"**: string }, **"last_name"**: string, **"first_name"**: string, **"email_address"**: string (email) }, **"notification_language"**: string, **"suppress_notification"**: boolean, **"business_registration_id"**: string }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 201 | Created — merchant invitation created successfully. | **application/json**: { **"status"**: integer, **"message"**: string, **"inviteHash"**: string, **"emailSentAt"**: dateTime, **"invitationId"**: long, **"expirationDate"**: dateTime, **"registrationLink"**: string }<br> |
| 400 | Bad Request — validation failure. | **application/json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string } ], **"message"**: string, **"submitTimeUtc"**: dateTime }<br> |
| 409 | Conflict — an active invitation already exists for the originator combination. | **application/json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string } ], **"message"**: string, **"submitTimeUtc"**: dateTime }<br> |
| 500 | Internal Server Error. | **application/json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string } ], **"message"**: string, **"submitTimeUtc"**: dateTime }<br> |
| 503 | Service Unavailable — merchant invitation feature is currently disabled. | **application/json**: { **"reason"**: string, **"status"**: integer, **"details"**: [ { **"reason"**: string } ], **"message"**: string, **"submitTimeUtc"**: dateTime }<br> |

### [POST] /varm/v1/onboarding/supplier
**Supplier Profile**

Onboard a new supplier to the VARM system with company details, address, business contact, and recipient contact information.

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"supplier_info"**: { **"mcc"**: , **"address"**: { **"city"**: , **"state"**: , **"zipcode"**: , **"country_code"**: , **"address_line1"**: , **"address_line2"**:  }, **"dba_name"**: , **"company_name"**: , **"supp_time_zone"**: , **"business_contact"**: { **"phone"**: { **"phone_number"**: , **"phone_country_code"**:  }, **"last_name"**: , **"first_name"**: , **"company_email_address"**: undefined (email) }, **"recon_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: , **"exception_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**:  } }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Supplier onboarding response | **application/json**: { **"status"**: <br>**Available values:** 1000, 1001, 4001, 5000, **"details"**: , **"message"**: , **"request_id"**: undefined (int64), **"varm_email_id"**: , **"participation_agreement_link"**:  }<br> |

### [GET] /varm/v1/onboardingstatus
**Supplier Onboarding Status**

Retrieve the current status of a supplier onboarding request using the request ID.

#### Parameters

| Name | Located in | Description | Required | Schema | Explode |
| ---- | ---------- | ----------- | -------- | ------ | ------- |
| request_id | query | Request ID to track the supplier onboarding status | Yes | long | Yes |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Provisioning status retrieved successfully | **application/json**: { **"reason"**: string, **"status"**: integer, <br>**Available values:** 1000, 1001, 4001, 5000, **"message"**: string, **"request_id"**: long, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"participation_agreement_link"**: string, **"supplier_provisioning_status"**: { **"deposit"**: boolean, **"penny_test"**: boolean, **"customer_creation"**: boolean, **"supplier_onboarding"**: boolean, **"supplier_configuration"**: boolean, **"participation_agreement"**: boolean } }<br> |
| 400 | Validation error | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |

### [GET] /varm/v1/relationshipinfo
**Supplier Relationship Details**

Retrieve information about established buyer/supplier relationships. Supports filtering by type, supplier ID, or customer ID.

#### Parameters

| Name | Located in | Description | Required | Schema | Explode |
| ---- | ---------- | ----------- | -------- | ------ | ------- |
| type | query | Type of information to retrieve (ALL, SUPPLIER, CUSTOMER) | No | string, <br>**Available values:** "ALL", "SUPPLIER", "CUSTOMER", <br>**Default:** ALL | Yes |
| supplierId | query | Primary email address of the supplier to filter by | No | string (email) | Yes |
| customerId | query | Customer ID to filter by | No | string | Yes |
| businessRegistrationId | query | Business registration ID of the supplier to filter by (max 15 characters) | No | string | Yes |
| page | query | Page number to retrieve (1-indexed) | No | integer, <br>**Default:** 1 | Yes |
| size | query | Number of records to retrieve per page | No | integer, <br>**Default:** 10 | Yes |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Relationship information retrieved successfully | **application/json**: { **"status"**: integer, <br>**Available values:** 1001, 4001, 5000, 5001, **"message"**: string, **"page_dtls"**: { **"sort"**: { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean }, **"page_size"**: integer, **"total_pages"**: integer, **"current_page"**: integer, **"last_page_url"**: string, **"next_page_url"**: string, **"total_records"**: integer, **"first_page_url"**: string, **"current_page_url"**: string, **"previous_page_url"**: string, **"current_no_records"**: integer }, **"relationship"**: [ { **"customer"**: { **"page_dtls"**: { **"sort"**: { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean }, **"page_size"**: integer, **"total_pages"**: integer, **"current_page"**: integer, **"last_page_url"**: string, **"next_page_url"**: string, **"total_records"**: integer, **"first_page_url"**: string, **"current_page_url"**: string, **"previous_page_url"**: string, **"current_no_records"**: integer }, **"customer_list"**: [ { **"customer_id"**: string, **"customer_details"**: { **"address"**: { **"state"**: string, **"zipcode"**: string, **"country_code"**: string }, **"customer_info"**: { **"email"**: string (email), **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } }, **"customer_details_link"**: string } ] }, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"supplier_status"**: { **"status"**: integer, **"message"**: string }, **"supplier_details"**: { **"supplier_info"**: { **"mcc"**: string, **"address"**: { **"city"**: string, **"state"**: string, **"zipcode"**: string, **"country_code"**: string, **"address_line1"**: string, **"address_line2"**: string }, **"dba_name"**: string, **"company_name"**: string, **"supp_time_zone"**: string, **"business_contact"**: { **"phone"**: { **"phone_number"**: string, **"phone_country_code"**: string }, **"last_name"**: string, **"first_name"**: string, **"company_email_address"**: string (email) }, **"recon_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: string, **"exception_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**: boolean } }, **"supplier_details_link"**: string } ] }<br> |
| 400 | Validation error. Returned for query parameter and business validation failures (e.g., invalid page/size, missing supplier filter when type=CUSTOMER, invalid business registration id). Note: an invalid `type` value is caught by Spring's parameter binding before reaching this handler and returns a plain `{"errorCode":"BAD_REQUEST","message":"Invalid Request Argument"}` payload instead of this schema. | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, 5001, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: integer, <br>**Available values:** 4001, 5000, 5001, **"details"**: [ { **"field"**: string, **"reason"**: string } ], **"message"**: string }<br> |

---
## Visa AR Manager Payment Suite API
Visa AR Manager APIs for Payment Suite operations

### [POST] /varm/v1/deposit
**Supplier Deposit Confirmation**

Process a deposit transaction to confirm that the penny test deposit was successfully received by the supplier.

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"request_id"**: string, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"payment_details"**: [ { **"transaction_info"**: { **"payment_id"**: string, **"customer_info"**: { **"order_info"**: { **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number } }, **"customer_name"**: string, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } } } } ] }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Deposit confirmation response | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |
| 400 | Validation error | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |

### [POST] /varm/v1/payment
**Process Payment Suite Request**

Process payment request for client

#### Request Body

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"request_id"**: string, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"payment_details"**: [ { **"transaction_info"**: { **"payment_id"**: string, **"customer_info"**: { **"order_info"**: { **"invoices"**: [ { **"invoice_id"**: string, **"invoice_ref"**: { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string }, **"invoice_date"**: date, **"invoice_desc"**: string, **"invoice_currency"**: string, **"purchase_order_no"**: string, **"invoice_adjustment"**: { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } }, **"total_invoice_amount"**: number, **"credit_note_indicator"**: boolean, **"invoice_tax_amount_ref"**: { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } }, **"invoice_partial_pmt_ind"**: string, <br>**Available values:** "Y", "N", <br>**Default:** N } ], **"ota_info"**: { **"booking_ref_1"**: string, **"booking_ref_2"**: string, **"booking_ref_3"**: string, **"booking_ref_4"**: string, **"booking_ref_5"**: string, **"booking_number"**: string, **"card_activation_date"**: string }, **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number }, **"ship_to_details"**: { **"iso_country"**: string, **"postal_code"**: string, **"administrative_area"**: string } }, **"customer_name"**: string, **"payment_instrument"**: { **"type"**: string, <br>**Available values:** "CARD", "SUA", **"type_details"**: { **"sua_info"**: { **"sua_link"**: string (uri), **"expires_at"**: dateTime }, **"card_info"**: { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } } }, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } }, **"payment_category"**: string, <br>**Available values:** "TRAVEL" } } ] }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Response is Successful | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |
| 400 | Validation error | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |

### [GET] /varm/v1/paymentinfo
**Retrieve Payment Status**

Get payment status information by request ID and/or payment ID

#### Parameters

| Name | Located in | Description | Required | Schema | Explode |
| ---- | ---------- | ----------- | -------- | ------ | ------- |
| request_id | query | Unique identifier for the payment request | Yes | string | Yes |
| payment_id | query | Specific payment transaction identifier to filter results. Max length: 10 characters. | No | string | Yes |
| pageno | query | Page number for pagination (default: 1). The number of items per page is fixed server-side (configurable, default 10) and is not a request parameter. | No | integer, <br>**Default:** 1 | Yes |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Payment information retrieved successfully. | **application/json**: { **"pagination"**: { **"page"**: integer, **"per_page"**: integer, **"total_count"**: integer, **"total_pages"**: integer }, **"processing_status"**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string, **"payment_statuses"**: [ { **"reason"**: string, **"payment_id"**: string, **"payment_status"**: string, <br>**Available values:** "COMPLETED", "PENDING", "FAILED", "VALIDATED", "SCHEDULED" } ] } }<br> |
| 400 | Validation error | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |
| 500 | Internal server error | **application/json**: { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string }<br> |

---
### Webhooks

### [POST] /v1/Supplier-Onboarding
**Supplier Onboarding**

Notifications for steps involved in Supplier onboarding journey

### [POST] /v1/Invitation
**Invitation**

Notifications for supplier invitation progress.

### [POST] /v1/Payment
**Payment**

Payment notifications

### [POST] /v1/Customer-Management
**Customer Management**

Notifications for add, update or deactivate customer

---
### Schemas

#### InvoiceTaxAmountReferenceDetails Schema

Individual tax reference object containing fee amount and description.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| invoice_tax_amt_ref | number | Individual fee amount for tax reference. Positive number, Max 2 decimal places.<br>*Example:* `8.8` | No |
| invoice_tax_rate_ref | string | Fee description for tax reference. Max length: 255 characters.<br>*Example:* `"Sales Tax 8%"` | No |

#### Invoice Schema

Invoice details including amounts, dates, and reference information.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| invoice_id | string | Unique invoice identifier. Non-empty string, Max length: 50 characters.<br>*Example:* `"1009293"` | Yes |
| invoice_ref | { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string } | Invoice reference object containing 4 reference fields for custom invoice references. | No |
| invoice_date | date | Invoice date in YYYY-MM-DD format. Valid date format, not future date. | No |
| invoice_desc | string | Description of the invoice or services provided. Additional Sales Information. Max length: 255 characters.<br>*Example:* `"Office supplies and equipment"` | No |
| invoice_currency | string | Invoice currency code. Valid ISO 4217 currency code (e.g., 'USD', 'EUR') — validated against the supported ISO currency list, not just the character pattern.<br>*Example:* `"USD"` | Yes |
| purchase_order_no | string | Customer purchase order number. Max length: 50 characters.<br>*Example:* `"PO-2022-001"` | No |
| invoice_adjustment | { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } } | Invoice adjustment object containing 4 adjustment objects for various discounts and rebates. | No |
| total_invoice_amount | number | Invoice amount in decimal format. Positive number, Max 2 decimal places, Min Value: 0.01.<br>*Example:* `110` | Yes |
| credit_note_indicator | boolean | Credit note indicator (required, non-null). True value indicates that the invoice amount is positive while False value means the invoice amount is negative.<br>*Example:* `true` | Yes |
| invoice_tax_amount_ref | { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } } | Invoice tax amount reference object containing 4 tax reference objects for different tax types. | No |
| invoice_partial_pmt_ind | string, <br>**Available values:** "Y", "N", <br>**Default:** N | Split payment indicator. Must be 'Y' or 'N' (Default: 'N').<br>*Enum:* `"Y"`, `"N"`<br>*Example:* `"N"` | No |

#### Address Schema

Address information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| city |  | City name | Yes |
| state |  | State or province | Yes |
| zipcode |  | Postal/ZIP code | Yes |
| country_code |  | ISO country code | Yes |
| address_line1 |  | Primary address line | Yes |
| address_line2 |  | Secondary address line | No |

#### CustomerRelationshipContainer-1 Schema

Container for customer relationship information with pagination

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| page_dtls | { **"sort"**: { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean }, **"page_size"**: integer, **"total_pages"**: integer, **"current_page"**: integer, **"last_page_url"**: string, **"next_page_url"**: string, **"total_records"**: integer, **"first_page_url"**: string, **"current_page_url"**: string, **"previous_page_url"**: string, **"current_no_records"**: integer } | Pagination details for relationship data | No |
| customer_list | [ { **"customer_id"**: string, **"customer_details"**: { **"address"**: { **"state"**: string, **"zipcode"**: string, **"country_code"**: string }, **"customer_info"**: { **"email"**: string (email), **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } }, **"customer_details_link"**: string } ] | Array of customer objects with details and links | No |

#### ErrorDetail-1 Schema

Field-level validation error detail

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| field | string | Name of the request field that failed validation<br>*Example:* `"customer_info.customer_name"` | No |
| reason | string | Reason the field failed validation<br>*Example:* `"Customer Name : already exists for the given supplier"` | No |

#### ErrorDetail-3 Schema

Field-level validation error detail

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| field | string | Name of the request field that failed validation<br>*Example:* `"request_id"` | No |
| reason | string | Reason the field failed validation<br>*Example:* `"Invalid request-id"` | No |

#### ErrorDetail-2 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | Specific reason describing why the field or rule failed.<br>*Example:* `"originator_details.client_id is required"` | No |

#### ParticipationAgreementResponse-1 Schema

Participation agreement submission response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | <br>**Available values:** 1001, 4001 | Status code: 1001 (Success), 4001 (Validation Error)<br>*Enum:* `1001`, `4001` | Yes |
| message |  | Response message | Yes |
| agreement_id |  | Unique identifier for the agreement | No |
| submission_date | undefined (date-time) | Date and time of submission (ISO 8601 format) | No |

#### MerchantSupplierId Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Originator's own Supplier ID, used when referring to suppliers via Originator IDs vs. AR Manager email.<br>*Example:* `"org12345"` | No |

#### TypeDetails Schema

Specific details based on payment type - Card info or SUA info. Currently only Card_info is supported.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| sua_info | { **"sua_link"**: string (uri), **"expires_at"**: dateTime } | Single Use Account information for secure one-time payments. Not supported currently. | No |
| card_info | { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } | Credit/debit card information for payment | No |

#### RelationshipInfo Schema

Supplier-customer relationship information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer | { **"page_dtls"**: { **"page_size"**: , **"total_pages"**: , **"current_page"**: , **"last_page_url"**: , **"next_page_url"**: , **"total_records"**: , **"first_page_url"**: , **"current_page_url"**: , **"previous_page_url"**: , **"current_no_records"**:  }, **"customer_list"**:  } | Container for customer relationship information with pagination | No |
| supplier_id | { **"originator_supp_id"**: , **"primary_email_address"**: undefined (email) } | Supplier identification information | No |
| supplier_details | { **"supplier_info"**: { **"mcc"**: , **"address"**: { **"city"**: , **"state"**: , **"zipcode"**: , **"country_code"**: , **"address_line1"**: , **"address_line2"**:  }, **"dba_name"**: , **"company_name"**: , **"supp_time_zone"**: , **"business_contact"**: { **"phone"**: { **"phone_number"**: , **"phone_country_code"**:  }, **"last_name"**: , **"first_name"**: , **"company_email_address"**: undefined (email) }, **"recon_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: , **"exception_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**:  } } | Detailed supplier information | No |
| supplier_details_link |  | Link to retrieve detailed supplier information | No |

#### SupplierOnboardingInfoResponse Schema

Supplier onboarding status response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | Additional reason or context for the current status, when applicable<br>*Example:* `"Awaiting penny test completion"` | No |
| status | integer, <br>**Available values:** 1000, 1001, 4001, 5000 | Status code: 1000 (Enqueued), 1001 (Success), 4001 (Validation Error), 5000 (Error)<br>*Enum:* `1000`, `1001`, `4001`, `5000`<br>*Example:* `1001` | Yes |
| message | string | Response message<br>*Example:* `"Supplier onboarding status retrieved successfully"` | Yes |
| request_id | long | Request ID used to track the supplier onboarding request<br>*Example:* `123456789` | Yes |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification information | No |
| participation_agreement_link | string | Consent document link<br>*Example:* `"https://varm.visa.com/documents/participation-agreement/SUPP001.pdf"` | No |
| supplier_provisioning_status | { **"deposit"**: boolean, **"penny_test"**: boolean, **"customer_creation"**: boolean, **"supplier_onboarding"**: boolean, **"supplier_configuration"**: boolean, **"participation_agreement"**: boolean } | Supplier provisioning status tracking | No |

#### SortDtls Schema

Sort state of the paginated result set

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| empty | boolean | Whether the sort criteria is empty<br>*Example:* `true` | No |
| sorted | boolean | Whether the result set is sorted<br>*Example:* `false` | No |
| unsorted | boolean | Whether the result set is unsorted<br>*Example:* `true` | No |

#### SupplierInfo-1 Schema

Supplier information including company details and contacts

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mcc | string | Merchant Category Code<br>*Example:* `"5411"` | No |
| address | { **"city"**: string, **"state"**: string, **"zipcode"**: string, **"country_code"**: string, **"address_line1"**: string, **"address_line2"**: string } | Address information | No |
| dba_name | string | Doing Business As name<br>*Example:* `"Acme Supplies"` | No |
| company_name | string | Legal name of the company<br>*Example:* `"Acme Supplies Inc."` | No |
| supp_time_zone | string | Time Zone of supplier<br>*Example:* `"America/New_York"` | No |
| business_contact | { **"phone"**: { **"phone_number"**: string, **"phone_country_code"**: string }, **"last_name"**: string, **"first_name"**: string, **"company_email_address"**: string (email) } | Business contact information | No |
| recon_recipient_info | { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" } | Recipient information for notifications | No |
| business_registration_id | string | Business registration ID of the supplier<br>*Example:* `"BRID123456"` | No |
| exception_recipient_info | { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" } | Recipient information for notifications | No |
| allow_payments_on_invoice_mismatch | boolean | Boolean flag for whether payments should process if invoice amounts do not add up to the total payment amount<br>*Example:* `false` | No |

#### MerchantBusinessContactInfo Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| phone | { **"country_code"**: string, **"phone_number"**: string } |  | No |
| last_name | string | Contact person last name.<br>*Example:* `"Doe"` | No |
| first_name | string | Contact person first name.<br>*Example:* `"John"` | No |
| email_address | string (email) | Contact email address — invitation will be sent here.<br>*Example:* `"merchant@example.com"` | Yes |

#### ValidationError Schema

Validation error details

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| field |  | Field name that failed validation | No |
| reason |  | Reason for validation failure | No |

#### PaymentSuiteResponse Schema

Payment response containing status and result information. This same schema is returned for success (200), validation failures (400), and internal errors (500).

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR" | Overall status of the payment request. Values: SUCCESS, ENQUEUED, PARTIAL_SUCCESS, FAILED, VALIDATION_FAILURE, SYSTEM_ERROR.<br>*Enum:* `"SUCCESS"`, `"ENQUEUED"`, `"PARTIAL_SUCCESS"`, `"FAILED"`, `"VALIDATION_FAILURE"`, `"SYSTEM_ERROR"`<br>*Example:* `"SUCCESS"` | Yes |
| request_id | string | Unique identifier for the payment request. Non-empty string, Max length: 100 characters.<br>*Example:* `"REQ1545005309666607"` | Yes |
| reason_code | string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001" | Numeric code indicating the result. Values: 1001 (SUCCESS), 1000 (ENQUEUED), 1003 (PARTIAL_SUCCESS), 1004 (FAILED), 4001 (VALIDATION_FAILURE), 5001 (SYSTEM_ERROR).<br>*Enum:* `"1001"`, `"1000"`, `"1003"`, `"1004"`, `"4001"`, `"5001"`<br>*Example:* `"1001"` | Yes |
| reason_desc | string | Descriptive message explaining the status or reason.<br>*Example:* `"Payment request processed successfully"` | Yes |

#### CustomerAddress-1 Schema

Customer address information (required for US Suppliers)

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| state |  | State or province | No |
| zipcode |  | Postal/ZIP code | No |
| country_code |  | ISO country code | No |

#### CustomerAddress-2 Schema

Customer address information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| state | string | State or province<br>*Example:* `"CA"` | No |
| zipcode | string | Postal/ZIP code<br>*Example:* `"94105"` | No |
| country_code | string | ISO country code<br>*Example:* `"US"` | No |

#### DepositOrderInfo Schema

Order information for deposit

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| amountDetails | { **"currency"**: , **"total_amount"**:  } | Payment amount information including total amount and currency. | Yes |

#### PaymentStatusResponse Schema

Response containing payment status information and pagination details.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| pagination | { **"page"**: integer, **"per_page"**: integer, **"total_count"**: integer, **"total_pages"**: integer } | Pagination information for the response. | Yes |
| processing_status | { **"status"**: string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR", **"request_id"**: string, **"reason_code"**: string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001", **"reason_desc"**: string, **"payment_statuses"**: [ { **"reason"**: string, **"payment_id"**: string, **"payment_status"**: string, <br>**Available values:** "COMPLETED", "PENDING", "FAILED", "VALIDATED", "SCHEDULED" } ] } | Overall processing status information for the request. | Yes |

#### PhoneNumber-1 Schema

Phone number with country code

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| phone_number | string | Phone number without country code<br>*Example:* `"4155551234"` | No |
| phone_country_code | string | Phone country code (without + sign)<br>*Example:* `"1"` | No |

#### MerchantInvitationMetadata Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| source | string | Origin of invitation (e.g. API).<br>*Example:* `"API"` | Yes |

#### DepositRequest Schema

Deposit confirmation request

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| request_id | string | Unique identifier for the payment request. Echoed back in the response.<br>*Example:* `"REQ-DEP-00123"` | Yes |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification information | Yes |
| payment_details | [ { **"transaction_info"**: { **"payment_id"**: string, **"customer_info"**: { **"order_info"**: { **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number } }, **"customer_name"**: string, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } } } } ] | Array of payment details. Must contain exactly one entry. | Yes |

#### CustomerIdentificationInfo Schema

Customer identification object containing customer identifiers. At least one of originator_customer_id or customer_id must be provided.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_id | string | Identifier for the customer used during onboarding. Max length: 100 characters. At least one of originator_customer_id or customer_id must be present.<br>*Example:* `"1234567890123456"` | No |
| originator_customer_id | string | Alphanumeric identifier for the originator customer. Max length: 100 characters. At least one of originator_customer_id or customer_id must be present.<br>*Example:* `"CUST12345"` | No |

#### CardInformation Schema

Credit/debit card information for payment

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| cardType | string, <br>**Available values:** "001" | Card type identifier. Currently supports '001' for Visa cards.<br>*Enum:* `"001"`<br>*Example:* `"001"` | Yes |
| cardNumber | string | Card number (PCI compliant handling required). Exactly 16 digits, numeric.<br>*Example:* `"4111111111111111"` | Yes |
| securityCode | string | Card security code (CVV/CVC). Optional field. Numeric, 3-4 digits.<br>*Example:* `"1111"` | No |
| expirationYear | string | Card expiration year in YYYY format. The expirationMonth/expirationYear combination must not be in the past.<br>*Example:* `"2030"` | Yes |
| expirationMonth | string | Card expiration month in MM format (01-12).<br>*Example:* `"12"` | Yes |

#### CustomerIdentifier-1 Schema

Customer identification information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_id | string | Identifier for the customer used during onboarding<br>*Example:* `"CUST001"` | No |
| originator_customer_id | string | Alphanumeric identifier for the originator customer<br>*Example:* `"CUST-ORIG-001"` | No |

#### CustomerOnboardingRequest Schema

Customer onboarding request containing supplier identification, customer information, and (conditionally) a shipping address.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| address | { **"state"**: string, **"zipcode"**: string, **"country_code"**: string } | Customer shipping address information. See CustomerOnboardingRequest.address for when this object is required, prohibited, or optional. When present, country_code and state are validated against the supported country/state lists. | No |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification information. | Yes |
| customer_info | { **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } | Customer information | Yes |

#### SupplierProvisioningStatus Schema

Supplier provisioning status tracking

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| deposit |  | Deposit acknowledgement is done | No |
| penny_test |  | Penny test is completed | No |
| customer_creation |  | At least one customer has been created for supplier | No |
| supplier_onboarding |  | Initial supplier registration complete | No |
| supplier_configuration |  | Supplier configuration is done | No |
| participation_agreement |  | Participation agreement is submitted | No |

#### CustomerOnboardingResponse Schema

Customer onboarding response.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 1001, 4001, 5000 | Status code: 1001 (Success), 4001 (Validation Error), 5000 (Internal Server Error).<br>*Enum:* `1001`, `4001`, `5000`<br>*Example:* `1001` | Yes |
| message | string | Response message.<br>*Example:* `"Customer created successfully"` | Yes |
| customer_id | string | Identifier for the created customer, echoed from the request (present on successful submissions).<br>*Example:* `"CUST12345"` | No |

#### DepositCustomerInfo-1 Schema

Customer information for deposit

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| order_info | { **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number } } | Order information for deposit | Yes |
| customer_name | string | Full name of the customer<br>*Example:* `"Globex Corporation"` | No |
| customer_identifier | { **"customer_id"**: string, **"originator_customer_id"**: string } | Customer identification information | No |

#### SupplierManagementRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mcc | string | Merchant Category Code - 4-digit classification code<br>*Example:* `"5411"` | Yes |
| acquirer | { **"acquirer_bin"**: string, **"destination_id"**: string } | Acquirer institution details for payment processing. This object is optional for US acquirers. | No |
| cpip_sid | string | CPIP system identifier / Presenter ID (6 digits)<br>*Example:* `"123456"` | No |
| store_id | string | Store identifier for the merchant location (up to 10 alphanumeric characters)<br>*Example:* `"1234"` | No |
| currencies | [ string ] | Supported currency codes in ISO 4217 format (e.g., USD, EUR, GBP)<br>*Example:* `["USD"]` | Yes |
| bank_number | string | Bank identification number (6 digits)<br>*Example:* `"123456"` | No |
| merchant_id | string | Unique merchant identifier (up to 15 alphanumeric characters)<br>*Example:* `"123456789123456"` | No |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification details. At least one of originator_supp_id or primary_email_address must be present. | Yes |
| terminal_id | string | Terminal identifier for the merchant (up to 8 alphanumeric characters)<br>*Example:* `"123456"` | No |
| chain_number | string | Chain store identifier for multi-location merchants (6 digits)<br>*Example:* `"123456"` | No |
| vital_number | string | VITAL (Visa Integrated Transaction Accounting and Liability) processing number (8 digits with leading digit 7)<br>*Example:* `"71234567"` | No |
| cpip_division | string | CPIP (Credit Payment Infrastructure Platform) division code (7 digits)<br>*Example:* `"1234567"` | No |
| industry_code | string, <br>**Available values:** "0", "A", "B", "D", "F", "G", "H", "L", "O", "P", "R" | Merchant industry classification code. Valid values: 0 (unknown), A (auto rental), B (bank/financial), D (direct marketing), F (food/restaurant), G (grocery), H (hotel), L (limited amount terminal), O (oil company), P (passenger transport), R (retail)<br>*Enum:* `"0"`, `"A"`, `"B"`, `"D"`, `"F"`, `"G"`, `"H"`, `"L"`, `"O"`, `"P"`, `"R"`<br>*Example:* `"R"` | No |
| acquirer_processor | { **"processor_id"**: string, **"processor_name"**: string, <br>**Available values:** "Vantiv CNP", "TSYS", "Chase Paymentech Salem", "Chase Paymentech Tampa", "FDI Global", "SMARTFDC Nashville", "Elavon", "Woodforest National Bank", "etc...", **"transaction_date"**: string, **"retrieval_reference"**: string } | Acquirer Processor information for the supplier. This supports multiple modes of identification - processor_name, processor_id, or transaction_date + retrieval_reference (both required together if used). If more than one form are provided, only the highest-priority form is used, selected in this order: 1. processor_name → 2. processor_id → 3. transaction_date + retrieval_reference. | Yes |
| merchant_bin_number | string | Merchant Bank Identification Number (6 digits)<br>*Example:* `"123456"` | No |
| payment_types_supported | [ string, <br>**Available values:** "VISA" ] | List of accepted payment card types. Valid value: VISA<br>*Example:* `["VISA"]` | Yes |
| merchant_location_number | string | Specific location identifier for the merchant (5 digits, often with leading zeros)<br>*Example:* `"00001"` | No |

#### MerchantOriginatorDetails Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| client_id | string | Unique identifier for the client application (Originator ID).<br>*Example:* `"12345678"` | Yes |

#### AmountDetails-1 Schema

Payment amount information including total amount and currency. Must match the amount details recorded for the originating payment.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| currency | string | ISO currency code (e.g., 'USD'). Valid ISO currency code (3 Char).<br>*Example:* `"USD"` | Yes |
| total_amount | number | Total payment amount in decimal format. Positive number, Max 2 decimal places, Min value: 0.01.<br>*Example:* `0.01` | Yes |

#### CustomerIdentifier Schema

Customer identification information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_id |  | Identifier for the customer used during onboarding | No |
| originator_customer_id |  | Alphanumeric identifier for the originator customer | No |

#### AmountDetails-2 Schema

Payment amount information including total amount and currency.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| currency | string | ISO currency code (e.g., 'USD'). Valid ISO 4217 currency code (3 Char) — validated against the supported ISO currency list, not just the character pattern.<br>*Example:* `"USD"` | Yes |
| total_amount | number | Total payment amount in decimal format. Positive number, Max 2 decimal places, Min value: 0.01.<br>*Example:* `3000` | Yes |

#### PaymentInstrument Schema

Payment method details specifying the type and specific payment information.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| type | string, <br>**Available values:** "CARD", "SUA" | Payment type: 'CARD' for traditional cards or SUA Cards, 'SUA' for Single Use Account Link only. Currently 'SUA' as a type is not supported.<br>*Enum:* `"CARD"`, `"SUA"`<br>*Example:* `"CARD"` | Yes |
| type_details | { **"sua_info"**: { **"sua_link"**: string (uri), **"expires_at"**: dateTime }, **"card_info"**: { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } } | Specific details based on payment type - Card info or SUA info. Currently only Card_info is supported. | Yes |

#### RecipientInfo-1 Schema

Recipient information for notifications

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| email | string (email) | Email of the recipient<br>*Example:* `"notifications@acmesupplies.com"` | No |
| language | string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es" | Language of the recipient<br>*Enum:* `"en-us"`, `"en-uk"`, `"fr-fr"`, `"fr-ca"`, `"de-de"`, `"it-it"`, `"pt-br"`, `"es-us"`, `"es-es"`<br>*Example:* `"en-us"` | No |
| time_zone | string | Time zone in specific format<br>*Example:* `"America/New_York"` | No |
| date_format | string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" | Date format<br>*Enum:* `"MM/dd/yyyy"`, `"dd/MM/yyyy"`, `"yyyy/MM/dd"`, `"MMM-dd-yyyy"`, `"dd-MMM-yyyy"`<br>*Example:* `"MM/dd/yyyy"` | No |

#### DepositResponse Schema

Deposit confirmation response. The same schema is returned for success (200), validation failures (400), and internal errors (500).

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR" | Overall status of the payment request<br>*Enum:* `"SUCCESS"`, `"ENQUEUED"`, `"PARTIAL_SUCCESS"`, `"FAILED"`, `"VALIDATION_FAILURE"`, `"SYSTEM_ERROR"`<br>*Example:* `"SUCCESS"` | Yes |
| request_id | string | Unique identifier for the payment request, echoed from the request (null if not supplied)<br>*Example:* `"REQ-DEP-00123"` | Yes |
| reason_code | string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001" | Numeric code indicating the result: 1001 (Success), 1000 (Enqueued), 1003 (Partial Success), 1004 (Failed), 4001 (Validation Error), 5001 (System Error)<br>*Enum:* `"1001"`, `"1000"`, `"1003"`, `"1004"`, `"4001"`, `"5001"`<br>*Example:* `"1001"` | Yes |
| reason_desc | string | Descriptive message explaining the status or reason<br>*Example:* `"Deposit request processed successfully"` | Yes |

#### CustomerRelationshipInfo-1 Schema

Customer relationship information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_id | string | Unique identifier for the customer<br>*Example:* `"CUST001"` | No |
| customer_details | { **"address"**: { **"state"**: string, **"zipcode"**: string, **"country_code"**: string }, **"customer_info"**: { **"email"**: string (email), **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } } | Detailed customer information | No |
| customer_details_link | string | Link to retrieve detailed customer information<br>*Example:* `"/varm/v1/relationshipinfo?customerId=CUST001"` | No |

#### CustomerOnboardingRequest-1 Schema

Customer onboarding request

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| address | { **"state"**: , **"zipcode"**: , **"country_code"**:  } | Customer address information (required for US Suppliers) | No |
| supplier_id | { **"originator_supp_id"**: , **"primary_email_address"**: undefined (email) } | Supplier identification information | Yes |
| customer_info | { **"customer_id"**: , **"customer_name"**: , **"preferred_currency"**:  } | Customer information | Yes |

#### MerchantMailingAddress Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| zip | string | Postal/ZIP code.<br>*Example:* `"10001"` | No |
| city | string | City name.<br>*Example:* `"New York"` | No |
| state | string | State or province code.<br>*Example:* `"NY"` | No |
| address1 | string | Primary street address line.<br>*Example:* `"123 Main Street"` | No |
| address2 | string | Secondary address line (suite, building, floor).<br>*Example:* `"Suite 100"` | No |
| country_code | string | ISO 3166-1 alpha-2 country code (e.g., US, CA, GB).<br>*Example:* `"US"` | Yes |

#### CustomerOnboardingResponse-1 Schema

Customer onboarding response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | <br>**Available values:** 1001, 4001 | Status code: 1001 (Success), 4001 (Validation Error)<br>*Enum:* `1001`, `4001` | Yes |
| details |  | Contains field and reason for validation errors | No |
| message |  | Response message | Yes |
| customer_id |  | Unique identifier for the created customer | No |

#### CustomerDetails-1 Schema

Detailed customer information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| address | { **"state"**: string, **"zipcode"**: string, **"country_code"**: string } | Customer address information | No |
| customer_info | { **"email"**: string (email), **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } | Customer information | No |

#### MerchantInvitationResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer | Application status code (e.g. 1001 for MERCHANT_INVITATION_CREATED).<br>*Example:* `1001` | Yes |
| message | string | Human-readable response message.<br>*Example:* `"Merchant invitation created successfully"` | Yes |
| inviteHash | string | SHA-256 hash of the invitation for security validation.<br>*Example:* `"18357b90325157acd4edc77d99846c2a4fda92f1a4324c9c22472ac7090c76a6"` | Yes |
| emailSentAt | dateTime | ISO 8601 timestamp when the invitation email was sent.<br>*Example:* `"2026-06-03T18:09:02Z"` | Yes |
| invitationId | long | Unique identifier for the created invitation.<br>*Example:* `1511793847707431000` | Yes |
| expirationDate | dateTime | ISO 8601 timestamp when the invitation expires.<br>*Example:* `"2026-06-04T18:09:01Z"` | Yes |
| registrationLink | string | Complete URL sent to merchant for onboarding access.<br>*Example:* `"https://sl73mapgkapq006.visa.com:8443/content2/bc/varm/en/varm-onboarding/index.html?#/?hash=18357b90325157acd4edc77d99846c2a4fda92f1a4324c9c22472ac7090c76a6&lang=en-US&email=xyz%40corpdev.com"` | Yes |

#### RelationshipPaginationDetails Schema

Pagination details for relationship data

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| page_size |  | Number of records per page | No |
| total_pages |  | Total number of pages | No |
| current_page |  | Current page number | No |
| last_page_url |  | URL for last page | No |
| next_page_url |  | URL for next page (empty if no next page) | No |
| total_records |  | Total number of records | No |
| first_page_url |  | URL for first page | No |
| current_page_url |  | URL for current page | No |
| previous_page_url |  | URL for previous page (empty if no previous page) | No |
| current_no_records |  | Number of records in current page | No |

#### ErrorResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| message | string | Error message describing what went wrong | Yes |
| status_code | string, <br>**Available values:** "4001", "4002", "4003", "4004", "4006", "4007", "5001" | Error code<br>*Enum:* `"4001"`, `"4002"`, `"4003"`, `"4004"`, `"4006"`, `"4007"`, `"5001"` | Yes |

#### RelationshipPaginationDetails-1 Schema

Pagination details for relationship data

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| sort | { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean } | Sort state of the paginated result set | No |
| page_size | integer | Number of records per page<br>*Example:* `10` | No |
| total_pages | integer | Total number of pages<br>*Example:* `5` | No |
| current_page | integer | Current page number<br>*Example:* `1` | No |
| last_page_url | string | URL for last page<br>*Example:* `"/varm/v1/relationshipinfo?page=5&size=10"` | No |
| next_page_url | string | URL for next page (empty if no next page)<br>*Example:* `"/varm/v1/relationshipinfo?page=2&size=10"` | No |
| total_records | integer | Total number of records<br>*Example:* `42` | No |
| first_page_url | string | URL for first page<br>*Example:* `"/varm/v1/relationshipinfo?page=1&size=10"` | No |
| current_page_url | string | URL for current page<br>*Example:* `"/varm/v1/relationshipinfo?page=1&size=10"` | No |
| previous_page_url | string | URL for previous page (empty if no previous page)<br>*Example:* `""` | No |
| current_no_records | integer | Number of records in current page<br>*Example:* `10` | No |

#### SupplierDetails-1 Schema

Detailed supplier information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| supplier_info | { **"mcc"**: string, **"address"**: { **"city"**: string, **"state"**: string, **"zipcode"**: string, **"country_code"**: string, **"address_line1"**: string, **"address_line2"**: string }, **"dba_name"**: string, **"company_name"**: string, **"supp_time_zone"**: string, **"business_contact"**: { **"phone"**: { **"phone_number"**: string, **"phone_country_code"**: string }, **"last_name"**: string, **"first_name"**: string, **"company_email_address"**: string (email) }, **"recon_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: string, **"exception_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**: boolean } | Supplier information including company details and contacts | No |

#### ErrorDetail-4 Schema

Field-level validation error detail

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| field | string | Name of the request field that failed validation<br>*Example:* `"page"` | No |
| reason | string | Reason the field failed validation<br>*Example:* `"Page number must be greater than or equal to 1"` | No |

#### SupplierManagementResponse Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| message | string | Human-readable message describing the status | Yes |
| request_id | integer | Numeric identifier for the request (present for successful submissions) | No |
| status_code | string, <br>**Available values:** "1000", "1002", "1003", "5000" | Status code indicating the processing state<br>*Enum:* `"1000"`, `"1002"`, `"1003"`, `"5000"` | Yes |

#### PhoneNumber Schema

Phone number with country code

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| phone_number |  | Phone number without country code | Yes |
| phone_country_code |  | Phone country code (without + sign) | Yes |

#### ErrorResponse-5 Schema

Error response returned for validation failures or internal processing errors

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 4001, 5000, 5001 | Error status code: 4001 (Validation Error), 5000 (Internal Server Error), 5001 (External Service Error)<br>*Enum:* `4001`, `5000`, `5001`<br>*Example:* `4001` | Yes |
| details | [ { **"field"**: string, **"reason"**: string } ] | Field-level validation errors. Present when status is 4001 and the failure is request-field related. | No |
| message | string | Human-readable message describing what went wrong<br>*Example:* `"Page number must be greater than or equal to 1"` | Yes |

#### ErrorResponse-4 Schema

Error response returned for validation failures or internal processing errors

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 4001, 5000 | Error status code: 4001 (Validation Error), 5000 (Internal Server Error)<br>*Enum:* `4001`, `5000`<br>*Example:* `4001` | Yes |
| details | [ { **"field"**: string, **"reason"**: string } ] | Field-level validation errors. Present when status is 4001 and the failure is request-field related. | No |
| message | string | Human-readable message describing what went wrong<br>*Example:* `"Invalid request-id"` | Yes |

#### DepositTransactionInfo-1 Schema

Transaction information for deposit

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| payment_id | string | Unique identifier for the specific payment transaction<br>*Example:* `"PAY-00456"` | Yes |
| customer_info | { **"order_info"**: { **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number } }, **"customer_name"**: string, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } } | Customer information for deposit | Yes |

#### CustomerInformation Schema

Customer information object containing customer details, order details, and invoice details.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| order_info | { **"invoices"**: [ { **"invoice_id"**: string, **"invoice_ref"**: { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string }, **"invoice_date"**: date, **"invoice_desc"**: string, **"invoice_currency"**: string, **"purchase_order_no"**: string, **"invoice_adjustment"**: { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } }, **"total_invoice_amount"**: number, **"credit_note_indicator"**: boolean, **"invoice_tax_amount_ref"**: { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } }, **"invoice_partial_pmt_ind"**: string, <br>**Available values:** "Y", "N", <br>**Default:** N } ], **"ota_info"**: { **"booking_ref_1"**: string, **"booking_ref_2"**: string, **"booking_ref_3"**: string, **"booking_ref_4"**: string, **"booking_ref_5"**: string, **"booking_number"**: string, **"card_activation_date"**: string }, **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number }, **"ship_to_details"**: { **"iso_country"**: string, **"postal_code"**: string, **"administrative_area"**: string } } | Order and billing details including shipping information, amounts, invoices, and optional B2B travel booking information. invoices is required and validated (non-empty, up to the configured limit) for standard payments, but must be omitted (or left empty) when payment_category is 'TRAVEL' — ota_info is used instead for travel bookings. | Yes |
| customer_name | string | Full name of the customer. Non-empty string, Max length: 60 characters.<br>*Example:* `"Peter Parker"` | Yes |
| payment_instrument | { **"type"**: string, <br>**Available values:** "CARD", "SUA", **"type_details"**: { **"sua_info"**: { **"sua_link"**: string (uri), **"expires_at"**: dateTime }, **"card_info"**: { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } } } | Payment method details specifying the type and specific payment information. | Yes |
| customer_identifier | { **"customer_id"**: string, **"originator_customer_id"**: string } | Customer identification object containing customer identifiers. At least one of originator_customer_id or customer_id must be provided. | Yes |

#### SupplierIdentificationInfo Schema

Supplier identification object containing supplier identifiers. At least one of originator_supp_id or primary_email_address must be provided.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Alphanumeric identifier for the supplier originator. Max length: 100 characters. At least one of originator_supp_id or primary_email_address must be present.<br>*Example:* `"SUPP12345"` | No |
| primary_email_address | string (email) | Primary email address of the supplier. Email format validation, Max length: 253 characters. At least one of originator_supp_id or primary_email_address must be present.<br>*Example:* `"supplier1@armanager.com"` | No |

#### AmountDetails Schema

Payment amount information including total amount and currency.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| currency |  | ISO currency code (e.g., 'USD'). Valid ISO currency code (3 Char). | Yes |
| total_amount |  | Total payment amount in decimal format. Positive number, Max 2 decimal places, Min value: 0.01. | Yes |

#### MerchantContactPhone Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| country_code | string | International dialing code (e.g., 1 for US/Canada).<br>*Example:* `"1"` | Yes |
| phone_number | string | Phone number without country code.<br>*Example:* `"9089089908"` | Yes |

#### SupplierOnboardingResponse Schema

Supplier onboarding response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | <br>**Available values:** 1000, 1001, 4001, 5000 | Status code: 1000 (Enqueued), 1001 (Success), 5000 (Error), 4001 (Validation Error)<br>*Enum:* `1000`, `1001`, `4001`, `5000` | Yes |
| details |  | Contains field and reason for validation errors | No |
| message |  | Response message | Yes |
| request_id | undefined (int64) | Request ID for tracking | No |
| varm_email_id |  | AR manager email ID | No |
| participation_agreement_link |  | Consent document link | No |

#### PaymentSuiteResponse-1 Schema

Payment response containing status and result information.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR" | Overall status of the payment request. Values: SUCCESS, ENQUEUED, PARTIAL_SUCCESS, FAILED, VALIDATION_FAILURE, SYSTEM_ERROR.<br>*Enum:* `"SUCCESS"`, `"ENQUEUED"`, `"PARTIAL_SUCCESS"`, `"FAILED"`, `"VALIDATION_FAILURE"`, `"SYSTEM_ERROR"`<br>*Example:* `"VALIDATION_FAILURE"` | Yes |
| request_id | string | Unique identifier for the payment request. Non-empty string, Max length: 100 characters. Omitted when the failure reason is 'request ID not found'.<br>*Example:* `"REQ789012"` | No |
| reason_code | string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001" | Numeric code indicating the result. Values: 1001 (SUCCESS), 1000 (ENQUEUED), 1003 (PARTIAL_SUCCESS), 1004 (FAILED), 4001 (VALIDATION_FAILURE), 5001 (SYSTEM_ERROR).<br>*Enum:* `"1001"`, `"1000"`, `"1003"`, `"1004"`, `"4001"`, `"5001"`<br>*Example:* `"4001"` | Yes |
| reason_desc | string | Descriptive message explaining the status or reason.<br>*Example:* `"Request Id not found"` | Yes |

#### CustomerDetails Schema

Detailed customer information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| address | { **"state"**: , **"zipcode"**: , **"country_code"**:  } | Customer address information (required for US Suppliers) | No |
| customer_info | { **"customer_id"**: , **"customer_name"**: , **"preferred_currency"**:  } | Customer information | No |

#### SingleUseAccountNumber Schema

Single Use Account information for secure one-time payments. Not supported currently.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| sua_link | string (uri) | URL link to the SUA payment interface.<br>*Example:* `"https://varm.visa.com/sua/AbCdEf123456"` | Yes |
| expires_at | dateTime | ISO 8601 timestamp when the SUA expires.<br>*Example:* `"2026-04-29T23:59:59Z"` | Yes |

#### ErrorDetail Schema

Field-level validation error detail

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| field | string | Name of the request field that failed validation<br>*Example:* `"signer_details.email"` | No |
| reason | string | Reason the field failed validation<br>*Example:* `"Signer email format validation failed"` | No |

#### TransactionInformation Schema

Transaction details containing payment ID, optional payment category, and customer information.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| payment_id | string | Unique identifier for the specific payment transaction. This should be unique within the payment request. Non-empty string, Max length: 10 characters.<br>*Example:* `"947231323"` | Yes |
| customer_info | { **"order_info"**: { **"invoices"**: [ { **"invoice_id"**: string, **"invoice_ref"**: { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string }, **"invoice_date"**: date, **"invoice_desc"**: string, **"invoice_currency"**: string, **"purchase_order_no"**: string, **"invoice_adjustment"**: { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } }, **"total_invoice_amount"**: number, **"credit_note_indicator"**: boolean, **"invoice_tax_amount_ref"**: { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } }, **"invoice_partial_pmt_ind"**: string, <br>**Available values:** "Y", "N", <br>**Default:** N } ], **"ota_info"**: { **"booking_ref_1"**: string, **"booking_ref_2"**: string, **"booking_ref_3"**: string, **"booking_ref_4"**: string, **"booking_ref_5"**: string, **"booking_number"**: string, **"card_activation_date"**: string }, **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number }, **"ship_to_details"**: { **"iso_country"**: string, **"postal_code"**: string, **"administrative_area"**: string } }, **"customer_name"**: string, **"payment_instrument"**: { **"type"**: string, <br>**Available values:** "CARD", "SUA", **"type_details"**: { **"sua_info"**: { **"sua_link"**: string (uri), **"expires_at"**: dateTime }, **"card_info"**: { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } } }, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } } | Customer information object containing customer details, order details, and invoice details. | Yes |
| payment_category | string, <br>**Available values:** "TRAVEL" | Payment category identifier. Set to 'TRAVEL' for B2B travel payments. Case-insensitive. When set to 'TRAVEL', ota_info is required, invoices must not be sent, and payment_instrument.type must be 'CARD'. If not provided or null, standard payment validation applies and invoices become required.<br>*Enum:* `"TRAVEL"`<br>*Example:* `"TRAVEL"` | No |

#### Pagination Schema

Pagination information for the response.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| page | integer | Current page number. Min value: 1.<br>*Example:* `1` | Yes |
| per_page | integer | Number of items per page. Server-configured page size (default 10); not a client-supplied value. Min value: 1, Max value: 10.<br>*Example:* `10` | Yes |
| total_count | integer | Total number of payment records matching the request. Min value: 0.<br>*Example:* `1` | Yes |
| total_pages | integer | Total number of pages available. Min value: 1.<br>*Example:* `1` | Yes |

#### ParticipationAgreementResponse Schema

Participation agreement submission response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 1001, 4001 | Status code: 1001 (Success), 4001 (Validation Error)<br>*Enum:* `1001`, `4001`<br>*Example:* `1001` | Yes |
| message | string | Response message<br>*Example:* `"Participation agreement submitted successfully"` | Yes |
| agreement_id | string | Unique identifier for the agreement<br>*Example:* `"AGR-00012345"` | No |
| submission_date | dateTime | Date and time of submission (ISO 8601 format)<br>*Example:* `"2026-03-20T10:18:55Z"` | No |

#### BusinessContact Schema

Business contact information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| phone | { **"phone_number"**: , **"phone_country_code"**:  } | Phone number with country code | Yes |
| last_name |  | Last name of the Business Contact | Yes |
| first_name |  | First name of the Business Contact user | Yes |
| company_email_address | undefined (email) | Email address of the Business Contact | Yes |

#### ErrorResponse-3 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | HTTP status name (e.g. BAD_REQUEST, CONFLICT, SERVICE_UNAVAILABLE, INTERNAL_SERVER_ERROR).<br>*Example:* `"BAD_REQUEST"` | Yes |
| status | integer | Application status code. 4001 for client errors, 5000 for server errors.<br>*Example:* `4001` | Yes |
| details | [ { **"reason"**: string } ] | Optional list of per-field or per-rule error items. Omitted when empty. | No |
| message | string | High-level human-readable error message.<br>*Example:* `"Invalid request submitted."` | Yes |
| submitTimeUtc | dateTime | UTC timestamp when the error response was generated (ISO 8601).<br>*Example:* `"2026-06-04T19:40:29Z"` | Yes |

#### InvoiceAdjustmentDetails Schema

Individual adjustment object containing amount and reason for rebates or discounts.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| invoice_adj_amt | number | Individual rebate amount for adjustment. Positive number, Max 2 decimal places.<br>*Example:* `5.5` | No |
| invoice_adj_reason | string | Individual reason for rebate amount. Max length: 255 characters.<br>*Example:* `"Volume discount"` | No |

#### ErrorResponse-2 Schema

Error response returned for validation failures or internal processing errors

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 4001, 5000 | Error status code: 4001 (Validation Error), 5000 (Internal Server Error)<br>*Enum:* `4001`, `5000`<br>*Example:* `4001` | Yes |
| details | [ { **"field"**: string, **"reason"**: string } ] | Field-level validation errors. Present when status is 4001 and the failure is request-field related. | No |
| message | string | Human-readable message describing what went wrong<br>*Example:* `"Customer name already exists"` | Yes |

#### ProcessingStatus Schema

Overall processing status information for the request.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | string, <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR" | Overall status of the payment request. Values: SUCCESS, ENQUEUED, PARTIAL_SUCCESS, FAILED, VALIDATION_FAILURE, SYSTEM_ERROR.<br>*Enum:* `"SUCCESS"`, `"ENQUEUED"`, `"PARTIAL_SUCCESS"`, `"FAILED"`, `"VALIDATION_FAILURE"`, `"SYSTEM_ERROR"`<br>*Example:* `"SUCCESS"` | Yes |
| request_id | string | Unique identifier for the payment request. Non-empty string, Max length: 100 characters.<br>*Example:* `"REQ789012"` | Yes |
| reason_code | string, <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001" | Numeric code indicating the result. Values: 1001 (SUCCESS), 1000 (ENQUEUED), 1003 (PARTIAL_SUCCESS), 1004 (FAILED), 4001 (VALIDATION_FAILURE), 5001 (SYSTEM_ERROR).<br>*Enum:* `"1001"`, `"1000"`, `"1003"`, `"1004"`, `"4001"`, `"5001"`<br>*Example:* `"1001"` | Yes |
| reason_desc | string | Descriptive message explaining the status or reason.<br>*Example:* `"Payment request processed successfully"` | Yes |
| payment_statuses | [ { **"reason"**: string, **"payment_id"**: string, **"payment_status"**: string, <br>**Available values:** "COMPLETED", "PENDING", "FAILED", "VALIDATED", "SCHEDULED" } ] | Array of individual payment status objects for the current page. | Yes |

#### ErrorResponse-1 Schema

Error response returned for validation failures or internal processing errors

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 4001, 5000 | Error status code: 4001 (Validation Error), 5000 (Internal Server Error)<br>*Enum:* `4001`, `5000`<br>*Example:* `4001` | Yes |
| details | [ { **"field"**: string, **"reason"**: string } ] | Field-level validation errors. Present when status is 4001 and the failure is request-field related.<br>*Example:* `[{"field":"signer_details.email","reason":"Signer email format validation failed"}]` | No |
| message | string | Error message describing what went wrong<br>*Example:* `"Internal server error"` | Yes |

#### DepositConfirmationRequest Schema

Deposit confirmation request

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| request_id |  | Unique identifier for the payment request | Yes |
| supplier_id | { **"originator_supp_id"**: , **"primary_email_address"**: undefined (email) } | Supplier identification information | Yes |
| payment_details |  | Array of payment details | Yes |

#### PaymentStatus Schema

Individual payment status object containing payment transaction details.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| reason | string | Descriptive reason for the current payment status. Non-empty string, Max length: 255 characters.<br>*Example:* `"Payment processed successfully"` | Yes |
| payment_id | string | Unique identifier for the payment transaction. Non-empty string, Max length: 20 characters.<br>*Example:* `"1"` | Yes |
| payment_status | string, <br>**Available values:** "COMPLETED", "PENDING", "FAILED", "VALIDATED", "SCHEDULED" | Current status of the individual payment. Values: 'COMPLETED', 'PENDING', 'FAILED', 'VALIDATED', 'SCHEDULED'<br>*Enum:* `"COMPLETED"`, `"PENDING"`, `"FAILED"`, `"VALIDATED"`, `"SCHEDULED"`<br>*Example:* `"COMPLETED"` | Yes |

#### SupplierIdentifier-1 Schema

Supplier identification information.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Alphanumeric identifier for the supplier originator (Optional).<br>*Example:* `"SUPP001"` | No |
| primary_email_address | string (email) | Supplier AR manager email ID. Must belong to an active, VARM-ready, transacting supplier. Max length: 100 characters.<br>*Example:* `"supplier1@armanager.com"` | Yes |

#### OnboardingstatusResponse Schema

Provisioning status response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | <br>**Available values:** 1000, 1001, 4001, 5000 | Status code: 1000 (Enqueued), 1001 (Success), 5000 (Error), 4001 (Validation Error)<br>*Enum:* `1000`, `1001`, `4001`, `5000` | Yes |
| message |  | Response message | Yes |
| request_id | undefined (int64) | Request ID | Yes |
| supplier_id | { **"originator_supp_id"**: , **"primary_email_address"**: undefined (email) } | Supplier identification information | No |
| participation_agreement_link |  | Consent document link | No |
| supplier_provisioning_status | { **"deposit"**: , **"penny_test"**: , **"customer_creation"**: , **"supplier_onboarding"**: , **"supplier_configuration"**: , **"participation_agreement"**:  } | Supplier provisioning status tracking | No |

#### SupplierIdentifier-2 Schema

Supplier identification information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id |  | Supplier ID | No |
| primary_email_address | undefined (email) | Supplier AR manager email ID | No |

#### SupplierIdentifier-3 Schema

Supplier identification information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Alphanumeric identifier for the supplier originator<br>*Example:* `"SUPP001"` | No |
| primary_email_address | string (email) | Supplier AR manager email ID<br>*Example:* `"supplier1@armanager.com"` | No |

#### SupplierIdentifier-4 Schema

Supplier identification information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Alphanumeric identifier for the supplier originator<br>*Example:* `"SUPP001"` | No |
| primary_email_address | string (email) | Supplier AR manager email ID<br>*Example:* `"supplier1@armanager.com"` | Yes |

#### DepositOrderInfo-1 Schema

Order information for deposit

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| amountDetails | { **"currency"**: string, **"total_amount"**: number } | Payment amount information including total amount and currency. Must match the amount details recorded for the originating payment. | Yes |

#### RelationshipInfoResponse-1 Schema

Relationship information response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer, <br>**Available values:** 1001, 4001, 5000, 5001 | Status code: 1001 (Success), 4001 (Validation Error), 5000 (Internal Server Error), 5001 (External Service Error)<br>*Enum:* `1001`, `4001`, `5000`, `5001`<br>*Example:* `1001` | Yes |
| message | string | Response message<br>*Example:* `"Relationship information retrieved successfully"` | Yes |
| page_dtls | { **"sort"**: { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean }, **"page_size"**: integer, **"total_pages"**: integer, **"current_page"**: integer, **"last_page_url"**: string, **"next_page_url"**: string, **"total_records"**: integer, **"first_page_url"**: string, **"current_page_url"**: string, **"previous_page_url"**: string, **"current_no_records"**: integer } | Pagination details for relationship data | No |
| relationship | [ { **"customer"**: { **"page_dtls"**: { **"sort"**: { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean }, **"page_size"**: integer, **"total_pages"**: integer, **"current_page"**: integer, **"last_page_url"**: string, **"next_page_url"**: string, **"total_records"**: integer, **"first_page_url"**: string, **"current_page_url"**: string, **"previous_page_url"**: string, **"current_no_records"**: integer }, **"customer_list"**: [ { **"customer_id"**: string, **"customer_details"**: { **"address"**: { **"state"**: string, **"zipcode"**: string, **"country_code"**: string }, **"customer_info"**: { **"email"**: string (email), **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } }, **"customer_details_link"**: string } ] }, **"supplier_id"**: { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) }, **"supplier_status"**: { **"status"**: integer, **"message"**: string }, **"supplier_details"**: { **"supplier_info"**: { **"mcc"**: string, **"address"**: { **"city"**: string, **"state"**: string, **"zipcode"**: string, **"country_code"**: string, **"address_line1"**: string, **"address_line2"**: string }, **"dba_name"**: string, **"company_name"**: string, **"supp_time_zone"**: string, **"business_contact"**: { **"phone"**: { **"phone_number"**: string, **"phone_country_code"**: string }, **"last_name"**: string, **"first_name"**: string, **"company_email_address"**: string (email) }, **"recon_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: string, **"exception_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**: boolean } }, **"supplier_details_link"**: string } ] | Array of supplier-customer relationships | No |

#### MerchantCustomerAddress Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| zip | string | Customer postal/ZIP code.<br>*Example:* `"12345"` | Yes |
| state | string | Customer state or province code.<br>*Example:* `"AL"` | Yes |
| country_code | string | ISO 3166-1 alpha-2 country code for customer location.<br>*Example:* `"US"` | Yes |

#### SupplierId Schema

Supplier identification details. At least one of originator_supp_id or primary_email_address must be present.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Alphanumeric identifier for the supplier originator<br>*Example:* `"SUPP001"` | No |
| primary_email_address | string (email) | AR manager email of the supplier (1-100 chars, valid email format, active email)<br>*Example:* `"supplier1@armanager.com"` | Yes |

#### CustomerRelationshipInfo Schema

Customer relationship information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_details | { **"address"**: { **"state"**: , **"zipcode"**: , **"country_code"**:  }, **"customer_info"**: { **"customer_id"**: , **"customer_name"**: , **"preferred_currency"**:  } } | Detailed customer information | No |
| customer_details_link |  | Link to retrieve detailed customer information | No |

#### DepositPaymentDetails-1 Schema

Payment details for deposit confirmation

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| transaction_info | { **"payment_id"**: string, **"customer_info"**: { **"order_info"**: { **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number } }, **"customer_name"**: string, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } } } | Transaction information for deposit | Yes |

#### OtaInfo Schema

B2B travel booking information. Required when payment_category is 'TRAVEL'.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| booking_ref_1 | string | Additional booking reference field. Max length: 250 characters.<br>*Example:* `"CONF-ABC123"` | No |
| booking_ref_2 | string | Additional booking reference field. Max length: 250 characters.<br>*Example:* `"ITIN-XYZ789"` | No |
| booking_ref_3 | string | Additional booking reference field. Max length: 250 characters.<br>*Example:* `"LOYALTY-ID-456"` | No |
| booking_ref_4 | string | Additional booking reference field. Max length: 250 characters.<br>*Example:* `"COST-CENTER-300"` | No |
| booking_ref_5 | string | Additional booking reference field. Max length: 250 characters.<br>*Example:* `"AGENT-ID-789"` | No |
| booking_number | string | Unique booking identifier for the travel reservation. Non-empty string, Max length: 50 characters.<br>*Example:* `"EXP-BK-20260315-98765"` | Yes |
| card_activation_date | string | Date when the card becomes active for the travel booking. Format: MM/dd/yyyy (only supported format). Valid date format.<br>*Example:* `"04/29/2026"` | Yes |

#### PaymentSuiteRequest Schema

Main payment request containing supplier identification and payment details.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| request_id | string | Unique identifier for the payment request. Same request id is not allowed even in case of any fixes from a prior failed request. Every request id has to be unique. Non-empty string, Max length: 100 characters.<br>*Example:* `"REQ1545005309666607"` | Yes |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification object containing supplier identifiers. At least one of originator_supp_id or primary_email_address must be provided. | Yes |
| payment_details | [ { **"transaction_info"**: { **"payment_id"**: string, **"customer_info"**: { **"order_info"**: { **"invoices"**: [ { **"invoice_id"**: string, **"invoice_ref"**: { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string }, **"invoice_date"**: date, **"invoice_desc"**: string, **"invoice_currency"**: string, **"purchase_order_no"**: string, **"invoice_adjustment"**: { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } }, **"total_invoice_amount"**: number, **"credit_note_indicator"**: boolean, **"invoice_tax_amount_ref"**: { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } }, **"invoice_partial_pmt_ind"**: string, <br>**Available values:** "Y", "N", <br>**Default:** N } ], **"ota_info"**: { **"booking_ref_1"**: string, **"booking_ref_2"**: string, **"booking_ref_3"**: string, **"booking_ref_4"**: string, **"booking_ref_5"**: string, **"booking_number"**: string, **"card_activation_date"**: string }, **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number }, **"ship_to_details"**: { **"iso_country"**: string, **"postal_code"**: string, **"administrative_area"**: string } }, **"customer_name"**: string, **"payment_instrument"**: { **"type"**: string, <br>**Available values:** "CARD", "SUA", **"type_details"**: { **"sua_info"**: { **"sua_link"**: string (uri), **"expires_at"**: dateTime }, **"card_info"**: { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } } }, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } }, **"payment_category"**: string, <br>**Available values:** "TRAVEL" } } ] | Array of transaction_info objects. Non-empty array (minimum 1 and maximum is 10). | Yes |

#### PaymentDetails Schema

Payment details container for transaction information.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| transaction_info | { **"payment_id"**: string, **"customer_info"**: { **"order_info"**: { **"invoices"**: [ { **"invoice_id"**: string, **"invoice_ref"**: { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string }, **"invoice_date"**: date, **"invoice_desc"**: string, **"invoice_currency"**: string, **"purchase_order_no"**: string, **"invoice_adjustment"**: { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } }, **"total_invoice_amount"**: number, **"credit_note_indicator"**: boolean, **"invoice_tax_amount_ref"**: { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } }, **"invoice_partial_pmt_ind"**: string, <br>**Available values:** "Y", "N", <br>**Default:** N } ], **"ota_info"**: { **"booking_ref_1"**: string, **"booking_ref_2"**: string, **"booking_ref_3"**: string, **"booking_ref_4"**: string, **"booking_ref_5"**: string, **"booking_number"**: string, **"card_activation_date"**: string }, **"amountDetails"**: { **"currency"**: string, **"total_amount"**: number }, **"ship_to_details"**: { **"iso_country"**: string, **"postal_code"**: string, **"administrative_area"**: string } }, **"customer_name"**: string, **"payment_instrument"**: { **"type"**: string, <br>**Available values:** "CARD", "SUA", **"type_details"**: { **"sua_info"**: { **"sua_link"**: string (uri), **"expires_at"**: dateTime }, **"card_info"**: { **"cardType"**: string, <br>**Available values:** "001", **"cardNumber"**: string, **"securityCode"**: string, **"expirationYear"**: string, **"expirationMonth"**: string } } }, **"customer_identifier"**: { **"customer_id"**: string, **"originator_customer_id"**: string } }, **"payment_category"**: string, <br>**Available values:** "TRAVEL" } | Transaction details containing payment ID, optional payment category, and customer information. | Yes |

#### MerchantCustomerInfo Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| address | { **"zip"**: string, **"state"**: string, **"country_code"**: string } |  | No |
| customer_id | string | Originator's unique identifier for the customer.<br>*Example:* `"varmtestcustomer1234"` | Yes |
| customer_url | string | Email-customer URL clicked to access the SUA.<br>*Example:* `"customer@example.com"` | No |
| customer_name | string | Customer display name.<br>*Example:* `"varmtestcustomer"` | Yes |
| customer_type | string, <br>**Available values:** "Email", "Batch/API" | Type of customer.<br>*Enum:* `"Email"`, `"Batch/API"`<br>*Example:* `"Email"` | Yes |
| customer_category | string, <br>**Available values:** "Invoice", "Travel", <br>**Default:** Invoice | Customer Category — defaults to Invoice unless Travel is provided.<br>*Enum:* `"Invoice"`, `"Travel"`<br>*Example:* `"Invoice"` | No |
| preferred_currency | string | ISO 4217 currency code (e.g., USD, EUR, GBP).<br>*Example:* `"USD"` | Yes |
| sender_email_address | string (email) | Sender of the Payment Advice Notification (email customers only).<br>*Example:* `"sender@example.com"` | No |

#### CustomerInfo Schema

Customer information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_id | string | Customer identifier assigned by the supplier. Must be unique among customers already onboarded for the same supplier. Max length: 100 characters.<br>*Example:* `"CUST12345"` | Yes |
| customer_name | string | Name of the customer. Must be unique among customers already onboarded for the same supplier. Max length: 60 characters.<br>*Example:* `"Globex Corporation"` | Yes |
| preferred_currency | string | Preferred currency for transactions. Valid ISO 4217 currency code (3 Char) — validated against the supported currency list, not just the character pattern.<br>*Example:* `"USD"` | Yes |

#### RecipientInfo Schema

Recipient information for notifications

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| email | undefined (email) | Email of the recipient | Yes |
| language | <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es" | Language of the recipient<br>*Enum:* `"en-us"`, `"en-uk"`, `"fr-fr"`, `"fr-ca"`, `"de-de"`, `"it-it"`, `"pt-br"`, `"es-us"`, `"es-es"` | Yes |
| time_zone |  | Time zone in specific format | Yes |
| date_format | <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" | Date format<br>*Enum:* `"MM/dd/yyyy"`, `"dd/MM/yyyy"`, `"yyyy/MM/dd"`, `"MMM-dd-yyyy"`, `"dd-MMM-yyyy"` | Yes |

#### InvoiceTaxAmountReferenceItems Schema

Invoice tax amount reference object containing 4 tax reference objects for different tax types.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| tax_ref1 | { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } | Individual tax reference object containing fee amount and description. | No |
| tax_ref2 | { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } | Individual tax reference object containing fee amount and description. | No |
| tax_ref3 | { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } | Individual tax reference object containing fee amount and description. | No |
| tax_ref4 | { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } | Individual tax reference object containing fee amount and description. | No |

#### CustomerAddress Schema

Customer shipping address information. See CustomerOnboardingRequest.address for when this object is required, prohibited, or optional. When present, country_code and state are validated against the supported country/state lists.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| state | string | State or province.<br>*Example:* `"GA"` | No |
| zipcode | string | Postal/ZIP code.<br>*Example:* `"30326"` | No |
| country_code | string | ISO country code (e.g., 'US').<br>*Example:* `"US"` | No |

#### SupplierOnboardingRequest Schema

Supplier onboarding request containing supplier information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| supplier_info | { **"mcc"**: , **"address"**: { **"city"**: , **"state"**: , **"zipcode"**: , **"country_code"**: , **"address_line1"**: , **"address_line2"**:  }, **"dba_name"**: , **"company_name"**: , **"supp_time_zone"**: , **"business_contact"**: { **"phone"**: { **"phone_number"**: , **"phone_country_code"**:  }, **"last_name"**: , **"first_name"**: , **"company_email_address"**: undefined (email) }, **"recon_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: , **"exception_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**:  } | Supplier information including company details and contacts | Yes |

#### SupplierDetails Schema

Detailed supplier information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| supplier_info | { **"mcc"**: , **"address"**: { **"city"**: , **"state"**: , **"zipcode"**: , **"country_code"**: , **"address_line1"**: , **"address_line2"**:  }, **"dba_name"**: , **"company_name"**: , **"supp_time_zone"**: , **"business_contact"**: { **"phone"**: { **"phone_number"**: , **"phone_country_code"**:  }, **"last_name"**: , **"first_name"**: , **"company_email_address"**: undefined (email) }, **"recon_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: , **"exception_recipient_info"**: { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**:  } | Supplier information including company details and contacts | No |

#### InvoiceReferenceItems Schema

Invoice reference object containing 4 reference fields for custom invoice references.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| invoice_ref_1 | string | First invoice reference field. Max length: 250 characters.<br>*Example:* `"REF001"` | No |
| invoice_ref_2 | string | Second invoice custom reference field. Max length: 250 characters.<br>*Example:* `"DEPT-IT"` | No |
| invoice_ref_3 | string | Third invoice custom reference field. Max length: 250 characters.<br>*Example:* `"PROJECT-A"` | No |
| invoice_ref_4 | string | Fourth invoice custom reference field. Max length: 250 characters.<br>*Example:* `"COST-CENTER-100"` | No |

#### AcquirerProcessor Schema

Acquirer Processor information for the supplier. This supports multiple modes of identification - processor_name, processor_id, or transaction_date + retrieval_reference (both required together if used). If more than one form are provided, only the highest-priority form is used, selected in this order: 1. processor_name → 2. processor_id → 3. transaction_date + retrieval_reference.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| processor_id | string | Unique identifier for the Acquirer Processor<br>*Example:* `"8126"` | No |
| processor_name | string, <br>**Available values:** "Vantiv CNP", "TSYS", "Chase Paymentech Salem", "Chase Paymentech Tampa", "FDI Global", "SMARTFDC Nashville", "Elavon", "Woodforest National Bank", "etc..." | Name of the Acquirer Processor<br>*Enum:* `"Vantiv CNP"`, `"TSYS"`, `"Chase Paymentech Salem"`, `"Chase Paymentech Tampa"`, `"FDI Global"`, `"SMARTFDC Nashville"`, `"Elavon"`, `"Woodforest National Bank"`, `"etc..."`<br>*Example:* `"Woodforest National Bank"` | No |
| transaction_date | string | Transaction Date to identify the Processor - Format MM/DD/YYYY HH:MM:SS<br>*Example:* `"3/20/2026 10:18:55"` | No |
| retrieval_reference | string | Retrieval Reference value to identify the Processor<br>*Example:* `"600XXX0X1XXX"` | No |

#### InvoiceAdjustmentItems Schema

Invoice adjustment object containing 4 adjustment objects for various discounts and rebates.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| adjustment_1 | { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } | Individual adjustment object containing amount and reason for rebates or discounts. | No |
| adjustment_2 | { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } | Individual adjustment object containing amount and reason for rebates or discounts. | No |
| adjustment_3 | { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } | Individual adjustment object containing amount and reason for rebates or discounts. | No |
| adjustment_4 | { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } | Individual adjustment object containing amount and reason for rebates or discounts. | No |

#### RelationshipInfoResponse Schema

Relationship information response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | <br>**Available values:** 1001, 4001, 5000 | Status code: 1001 (Success), 4001 (Validation Error), 5000 (System Error)<br>*Enum:* `1001`, `4001`, `5000` | Yes |
| message |  | Response message | Yes |
| page_dtls | { **"page_size"**: , **"total_pages"**: , **"current_page"**: , **"last_page_url"**: , **"next_page_url"**: , **"total_records"**: , **"first_page_url"**: , **"current_page_url"**: , **"previous_page_url"**: , **"current_no_records"**:  } | Pagination details for relationship data | No |
| relationship |  | Array of supplier-customer relationships | No |

#### BusinessContact-1 Schema

Business contact information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| phone | { **"phone_number"**: string, **"phone_country_code"**: string } | Phone number with country code | No |
| last_name | string | Last name of the Business Contact<br>*Example:* `"Doe"` | No |
| first_name | string | First name of the Business Contact user<br>*Example:* `"Jane"` | No |
| company_email_address | string (email) | Email address of the Business Contact<br>*Example:* `"jane.doe@acmesupplies.com"` | No |

#### SignerDetails-1 Schema

Signer details for signing the agreement

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| name |  | Name of the person signing the agreement | Yes |
| email | undefined (email) | Email address of the signer | Yes |
| title |  | Job title of the signer | Yes |

#### SupplierStatus Schema

Current onboarding status of the supplier in the relationship

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | integer | Supplier onboarding status code<br>*Example:* `1001` | No |
| message | string | Human-readable supplier status message<br>*Example:* `"Supplier onboarded successfully"` | No |

#### Acquirer Schema

Acquirer institution details for payment processing. This object is optional for US acquirers.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| acquirer_bin | string | Acquirer BIN - Bank Identification Number for file routing (exactly 6 digits)<br>*Example:* `"123456"` | No |
| destination_id | string | Destination ID - Unique institution identifier (numeric string, 1-11 digits)<br>*Example:* `"12345678912"` | No |

#### SignerDetails Schema

Signer details for signing the agreement

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| name | string | Name of the person signing the agreement (letters, spaces, and common name punctuation only)<br>*Example:* `"John Smith"` | Yes |
| email | string (email) | Email address of the signer<br>*Example:* `"john.smith@supplier1.com"` | Yes |
| title | string | Job title of the signer (Optional)<br>*Example:* `"Accounts Receivable Manager"` | No |

#### SupplierInfo Schema

Supplier information including company details and contacts

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mcc |  | Merchant Category Code | Yes |
| address | { **"city"**: , **"state"**: , **"zipcode"**: , **"country_code"**: , **"address_line1"**: , **"address_line2"**:  } | Address information | Yes |
| dba_name |  | Doing Business As name | No |
| company_name |  | Legal name of the company | Yes |
| supp_time_zone |  | Time Zone of supplier | Yes |
| business_contact | { **"phone"**: { **"phone_number"**: , **"phone_country_code"**:  }, **"last_name"**: , **"first_name"**: , **"company_email_address"**: undefined (email) } | Business contact information | Yes |
| recon_recipient_info | { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" } | Recipient information for notifications | Yes |
| business_registration_id |  | Business Registration Id | No |
| exception_recipient_info | { **"email"**: undefined (email), **"language"**: <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: , **"date_format"**: <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" } | Recipient information for notifications | Yes |
| allow_payments_on_invoice_mismatch |  | Boolean flag for whether payments should process if invoice amounts do not add up to the total payment amount | No |

#### SupplierIdentifier Schema

Supplier identification information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| originator_supp_id | string | Supplier ID<br>*Example:* `"SUPP001"` | No |
| primary_email_address | string (email) | Supplier AR manager email ID<br>*Example:* `"supplier1@armanager.com"` | Yes |

#### DepositTransactionInfo Schema

Transaction information for deposit

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| payment_id |  | Unique identifier for the specific payment transaction | Yes |
| customer_info | { **"order_info"**: { **"amountDetails"**: { **"currency"**: , **"total_amount"**:  } }, **"customer_name"**: , **"customer_identifier"**: { **"customer_id"**: , **"originator_customer_id"**:  } } | Customer information for deposit | Yes |

#### DepositPaymentDetails Schema

Payment details for deposit confirmation

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| transaction_info | { **"payment_id"**: , **"customer_info"**: { **"order_info"**: { **"amountDetails"**: { **"currency"**: , **"total_amount"**:  } }, **"customer_name"**: , **"customer_identifier"**: { **"customer_id"**: , **"originator_customer_id"**:  } } } | Transaction information for deposit | Yes |

#### Address-1 Schema

Address information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| city | string | City name<br>*Example:* `"San Francisco"` | No |
| state | string | State or province<br>*Example:* `"CA"` | No |
| zipcode | string | Postal/ZIP code<br>*Example:* `"94105"` | No |
| country_code | string | ISO country code<br>*Example:* `"US"` | No |
| address_line1 | string | Primary address line<br>*Example:* `"123 Main St"` | No |
| address_line2 | string | Secondary address line<br>*Example:* `"Suite 400"` | No |

#### DepositConfirmationResponse Schema

Deposit confirmation response

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| status | <br>**Available values:** "SUCCESS", "ENQUEUED", "PARTIAL_SUCCESS", "FAILED", "VALIDATION_FAILURE", "SYSTEM_ERROR" | Overall status of the payment request<br>*Enum:* `"SUCCESS"`, `"ENQUEUED"`, `"PARTIAL_SUCCESS"`, `"FAILED"`, `"VALIDATION_FAILURE"`, `"SYSTEM_ERROR"` | Yes |
| request_id |  | Unique identifier for the payment request | Yes |
| reason_code | <br>**Available values:** "1001", "1000", "1003", "1004", "4001", "5001" | Numeric or alphanumeric code indicating the result<br>*Enum:* `"1001"`, `"1000"`, `"1003"`, `"1004"`, `"4001"`, `"5001"` | Yes |
| reason_desc |  | Descriptive message explaining the status or reason | Yes |

#### SupplierProvisioningStatus-1 Schema

Supplier provisioning status tracking

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| deposit | boolean | Deposit acknowledgement is done<br>*Example:* `false` | No |
| penny_test | boolean | Penny test is completed<br>*Example:* `false` | No |
| customer_creation | boolean | At least one customer has been created for supplier<br>*Example:* `true` | No |
| supplier_onboarding | boolean | Initial supplier registration complete<br>*Example:* `true` | No |
| supplier_configuration | boolean | Supplier configuration is done<br>*Example:* `false` | No |
| participation_agreement | boolean | Participation agreement is submitted<br>*Example:* `false` | No |

#### RelationshipInfo-1 Schema

Supplier-customer relationship information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer | { **"page_dtls"**: { **"sort"**: { **"empty"**: boolean, **"sorted"**: boolean, **"unsorted"**: boolean }, **"page_size"**: integer, **"total_pages"**: integer, **"current_page"**: integer, **"last_page_url"**: string, **"next_page_url"**: string, **"total_records"**: integer, **"first_page_url"**: string, **"current_page_url"**: string, **"previous_page_url"**: string, **"current_no_records"**: integer }, **"customer_list"**: [ { **"customer_id"**: string, **"customer_details"**: { **"address"**: { **"state"**: string, **"zipcode"**: string, **"country_code"**: string }, **"customer_info"**: { **"email"**: string (email), **"customer_id"**: string, **"customer_name"**: string, **"preferred_currency"**: string } }, **"customer_details_link"**: string } ] } | Container for customer relationship information with pagination | No |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification information | No |
| supplier_status | { **"status"**: integer, **"message"**: string } | Current onboarding status of the supplier in the relationship | No |
| supplier_details | { **"supplier_info"**: { **"mcc"**: string, **"address"**: { **"city"**: string, **"state"**: string, **"zipcode"**: string, **"country_code"**: string, **"address_line1"**: string, **"address_line2"**: string }, **"dba_name"**: string, **"company_name"**: string, **"supp_time_zone"**: string, **"business_contact"**: { **"phone"**: { **"phone_number"**: string, **"phone_country_code"**: string }, **"last_name"**: string, **"first_name"**: string, **"company_email_address"**: string (email) }, **"recon_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"business_registration_id"**: string, **"exception_recipient_info"**: { **"email"**: string (email), **"language"**: string, <br>**Available values:** "en-us", "en-uk", "fr-fr", "fr-ca", "de-de", "it-it", "pt-br", "es-us", "es-es", **"time_zone"**: string, **"date_format"**: string, <br>**Available values:** "MM/dd/yyyy", "dd/MM/yyyy", "yyyy/MM/dd", "MMM-dd-yyyy", "dd-MMM-yyyy" }, **"allow_payments_on_invoice_mismatch"**: boolean } } | Detailed supplier information | No |
| supplier_details_link | string | Link to retrieve detailed supplier information<br>*Example:* `"/varm/v1/relationshipinfo?supplierId=supplier1@armanager.com"` | No |

#### ParticipationAgreementRequest-1 Schema

Participation agreement submission request

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| supplier_id | { **"originator_supp_id"**: , **"primary_email_address"**: undefined (email) } | Supplier identification information | Yes |
| signer_details | { **"name"**: , **"email"**: undefined (email), **"title"**:  } | Signer details for signing the agreement | Yes |
| participation_agreement_link |  | URL of the consent document | Yes |

#### DepositCustomerInfo Schema

Customer information for deposit

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| order_info | { **"amountDetails"**: { **"currency"**: , **"total_amount"**:  } } | Order information for deposit | Yes |
| customer_name |  | Full name of the customer | No |
| customer_identifier | { **"customer_id"**: , **"originator_customer_id"**:  } | Customer identification information | No |

#### CustomerInfo-1 Schema

Customer information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| customer_id |  | Customer identifier | Yes |
| customer_name |  | Name of the customer | Yes |
| preferred_currency |  | Preferred currency for transactions | Yes |

#### CustomerInfo-2 Schema

Customer information

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| email | string (email) | Email address of the customer<br>*Example:* `"ap@globexcorp.com"` | No |
| customer_id | string | Customer identifier<br>*Example:* `"CUST001"` | No |
| customer_name | string | Name of the customer<br>*Example:* `"Globex Corporation"` | No |
| preferred_currency | string | Preferred currency for transactions<br>*Example:* `"USD"` | No |

#### ShipToDetails Schema

Shipping address information. Required if the supplier is enabled for L3 processing.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| iso_country | string | ISO country code (e.g., 'US'). Valid ISO 3166-1 alpha-2 code, validated against the supported country list.<br>*Example:* `"US"` | Yes |
| postal_code | string | Postal/ZIP code for shipping. Max length: 10 characters.<br>*Example:* `"30340"` | Yes |
| administrative_area | string | State/Province/County code. Max length: 3 characters. Required depending upon Country, validated against the supported state/province list for that country.<br>*Example:* `"GA"` | No |

#### OrderInformation Schema

Order and billing details including shipping information, amounts, invoices, and optional B2B travel booking information. invoices is required and validated (non-empty, up to the configured limit) for standard payments, but must be omitted (or left empty) when payment_category is 'TRAVEL' — ota_info is used instead for travel bookings.

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| invoices | [ { **"invoice_id"**: string, **"invoice_ref"**: { **"invoice_ref_1"**: string, **"invoice_ref_2"**: string, **"invoice_ref_3"**: string, **"invoice_ref_4"**: string }, **"invoice_date"**: date, **"invoice_desc"**: string, **"invoice_currency"**: string, **"purchase_order_no"**: string, **"invoice_adjustment"**: { **"adjustment_1"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_2"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_3"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string }, **"adjustment_4"**: { **"invoice_adj_amt"**: number, **"invoice_adj_reason"**: string } }, **"total_invoice_amount"**: number, **"credit_note_indicator"**: boolean, **"invoice_tax_amount_ref"**: { **"tax_ref1"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref2"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref3"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string }, **"tax_ref4"**: { **"invoice_tax_amt_ref"**: number, **"invoice_tax_rate_ref"**: string } }, **"invoice_partial_pmt_ind"**: string, <br>**Available values:** "Y", "N", <br>**Default:** N } ] | Array of invoice objects. Required for standard (non-TRAVEL) payments: non-empty array, up to a configurable limit (default 10 items). Must not be sent (or must be empty) when payment_category is 'TRAVEL'. | No |
| ota_info | { **"booking_ref_1"**: string, **"booking_ref_2"**: string, **"booking_ref_3"**: string, **"booking_ref_4"**: string, **"booking_ref_5"**: string, **"booking_number"**: string, **"card_activation_date"**: string } | B2B travel booking information. Required when payment_category is 'TRAVEL'. | No |
| amountDetails | { **"currency"**: string, **"total_amount"**: number } | Payment amount information including total amount and currency. | Yes |
| ship_to_details | { **"iso_country"**: string, **"postal_code"**: string, **"administrative_area"**: string } | Shipping address information. Required if the supplier is enabled for L3 processing. | No |

#### MerchantInvitationRequest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| mcc | string | Merchant Category Code — 4-digit classification code.<br>*Example:* `"5411"` | No |
| time_zone | string | IANA time zone identifier (e.g., America/New_York).<br>*Example:* `"America/New_York"` | No |
| supplier_id | { **"originator_supp_id"**: string } |  | No |
| company_name | string | Legal name of the supplier/merchant company being invited. Special characters are not permitted.<br>*Example:* `"ABC Corporation"` | Yes |
| customer_info | { **"address"**: { **"zip"**: string, **"state"**: string, **"country_code"**: string }, **"customer_id"**: string, **"customer_url"**: string, **"customer_name"**: string, **"customer_type"**: string, <br>**Available values:** "Email", "Batch/API", **"customer_category"**: string, <br>**Available values:** "Invoice", "Travel", <br>**Default:** Invoice, **"preferred_currency"**: string, **"sender_email_address"**: string (email) } |  | No |
| mailing_address | { **"zip"**: string, **"city"**: string, **"state"**: string, **"address1"**: string, **"address2"**: string, **"country_code"**: string } |  | Yes |
| originator_details | { **"client_id"**: string } |  | Yes |
| invitation_metadata | { **"source"**: string } |  | Yes |
| business_contact_info | { **"phone"**: { **"country_code"**: string, **"phone_number"**: string }, **"last_name"**: string, **"first_name"**: string, **"email_address"**: string (email) } |  | Yes |
| notification_language | string | Language code for invitation email & registration form (e.g., en-US).<br>*Example:* `"en-US"` | Yes |
| suppress_notification | boolean | true if originator prefers to embed the invitation link in their own email.<br>*Example:* `true` | No |
| business_registration_id | string | Government-issued business registration number (e.g., EIN, VAT).<br>*Example:* `"BR-987654321"` | No |

#### ParticipationAgreementRequest Schema

Participation agreement submission request

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| supplier_id | { **"originator_supp_id"**: string, **"primary_email_address"**: string (email) } | Supplier identification information | Yes |
| signer_details | { **"name"**: string, **"email"**: string (email), **"title"**: string } | Signer details for signing the agreement | Yes |
| participation_agreement_link | string | URL of the consent document. Must match the participation agreement link on record for the supplier.<br>*Example:* `"https://varm.visa.com/documents/participation-agreement/SUPP001.pdf"` | Yes |

#### CustomerRelationshipContainer Schema

Container for customer relationship information with pagination

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| page_dtls | { **"page_size"**: , **"total_pages"**: , **"current_page"**: , **"last_page_url"**: , **"next_page_url"**: , **"total_records"**: , **"first_page_url"**: , **"current_page_url"**: , **"previous_page_url"**: , **"current_no_records"**:  } | Pagination details for relationship data | No |
| customer_list |  | Array of customer objects with details and links | No |
