ECI AP/AR Commerce Automation API
Accounts payable and accounts receivable invoice payment through Nuvei's Commerce Portal: customers, vendors, customer payments and vendor payments, with top/skip paging.
Accounts payable and accounts receivable invoice payment through Nuvei's Commerce Portal: customers, vendors, customer payments and vendor payments, with top/skip paging.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/eci-solutions-apar-commerce"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
{
"openapi": "3.0.1",
"info": {
"title": "APAR Commerce Integration API",
"description": "# Documentation\n\n## Authentication\nPass an access token in the HTTP Authorization header of each request.\n\nFor example:\n\n```Authorization: Bearer [token]```\n\nAccess tokens are obtained from the Management API. See the <a href='https://integrations.ecimanufacturing.com/api.html?id=authentication-v1#/AuthApi/GetApiUserToken'>Management API OAuth 2.0 Token endpoint documentation</a> for more information.\n\n## Connection Prerequisites\n\n### Nuvei\n- **For AP endpoints:** Your credentials must have been configured with `ApMerchantId`, `ApPlatformId`, and `ApGatewayId` settings.\n- **For AR endpoints:** Your credentials must have been configured with `ArMerchantId` and `ArPlatformId` settings.\n- **For both AP and AR:** All of the above AP settings and AR settings must be configured.\n- These values are configured in the Integration Engine Management System and must match your Nuvei environment.\n- If any required value is missing, requests to the corresponding endpoints will fail with a validation error.\n\n## Usage\n\nThe API supports the following main operations:\n\n- Create and update customers (AR)\n- Create, update, and delete customer invoices and sales orders (AR)\n- Retrieve status and other information about payments made by customers (AR)\n- Create and update vendors (AP)\n- Create, update, and delete vendor invoices (AP)\n- Initiate or delete payments for vendor invoices (AP)\n- Retrieve status and other information about payments made to vendors (AP)\n\n### Common AP Workflows\n\nTo create vendor payments and retrieve their status, use the following sequence of API calls:\n\n- Call <a href='#/Vendor/CreateVendor'>Create Vendor</a>\n- Call <a href='#/Vendor/CreateVendorInvoice'>Create Vendor Invoice</a>\n- Call <a href='#/Vendor/CreatePayment'>Create Vendor Payment</a>\n- Call <a href='#/VendorPayment/GetPaymentById'>Get Vendor Payment by ID</a>\n\n### Common AR Workflows\n\nTo create customer invoices and retrieve their payment status, use the following sequence of API calls:\n\n- Call <a href='#/Customer/CreateCustomer'>Create Customer</a>\n- Call <a href='#/Customer/CreateCustomerInvoice'>Create Customer Invoice</a>\n- Use payment link from the create invoice response when requesting payment from the customer. Alternately, the customer may receive an email notification\nfrom the commerce platform if configured to do so and may pay by logging in to the customer portal.\n- Call (poll) <a href='#/CustomerPayment/GetCustomerPayments'>Get Customer Payments</a>, optionally filtering by single invoice ID\n\n\nFor more details, see the API endpoint documentation below or contact ECI support.",
"contact": {
"name": "ECI Support",
"url": "https://www.ecisolutions.com/support/"
},
"version": "v1"
},
"paths": {
"/api/v1/customers": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a list of customers.",
"operationId": "GetCustomers",
"parameters": [
{
"name": "top",
"in": "query",
"description": "Maximum number of records to return. Default: 100. Max: 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "skip",
"in": "query",
"description": "The value from which to start taking records. Default: 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "externalCustomerId",
"in": "query",
"description": "The External Customer Id by which to search for the customer.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerResponseListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponseListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponseListResponse"
}
}
}
}
}
},
"post": {
"tags": [
"Customer"
],
"summary": "Create a customer.",
"operationId": "CreateCustomer",
"requestBody": {
"description": "The details of Customer by which we can create the customer with all the validation applied.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CustomerRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{id}": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a Customer record by customer id.",
"operationId": "GetCustomerById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id by which to search for the customer.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
}
}
}
}
},
"patch": {
"tags": [
"Customer"
],
"summary": "Update a customer.",
"operationId": "UpdateCustomer",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The details of Customer by which we can update the customer with all the validation applied.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerResponse"
}
}
}
}
}
},
"delete": {
"tags": [
"Customer"
],
"summary": "Delete a customer by customer id.",
"operationId": "DeleteCustomer",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/api/v1/customers/{id}/invoices": {
"post": {
"tags": [
"Customer"
],
"summary": "Create a customer invoice.",
"operationId": "CreateCustomerInvoice",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The details of Customer Invoice by which we can create the customer invoice with all the validation applied.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateCustomerInvoiceRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateCustomerInvoiceRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateCustomerInvoiceRequestModel"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{id}/invoices/{invoiceId}": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a Customer Invoice record.",
"operationId": "GetCustomerInvoiceById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "invoiceId",
"in": "path",
"description": "The Invoice Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
}
}
}
}
},
"patch": {
"tags": [
"Customer"
],
"summary": "Update a customer invoice.",
"operationId": "UpdateCustomerInvoice",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "invoiceId",
"in": "path",
"description": "The Customer Invoice Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The details of Customer Invoice by which we can update the customer invoice.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerInvoiceRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerInvoiceRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerInvoiceRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
}
}
}
}
},
"delete": {
"tags": [
"Customer"
],
"summary": "Delete a customer invoice by invoice id.",
"operationId": "DeleteCustomerInvoice",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "invoiceId",
"in": "path",
"description": "The Customer Invoice Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/api/v1/customers/{id}/invoices/{invoiceId}/upload-file": {
"post": {
"tags": [
"Customer"
],
"summary": "Upload an invoice file.",
"description": "For Nuvei the file must be a PDF.",
"operationId": "UploadFileToCustomerInvoice",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "invoiceId",
"in": "path",
"description": "The Customer Invoice Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"File"
],
"type": "object",
"properties": {
"File": {
"type": "string",
"description": "The data file (e.g., a PDF) to be uploaded.",
"format": "binary"
}
}
},
"encoding": {
"File": {
"style": "form"
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerInvoiceResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{id}/sales-orders": {
"post": {
"tags": [
"Customer"
],
"summary": "Create a customer sales order.",
"operationId": "CreateCustomerSalesOrder",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The details of Customer Sales Order by which we can create the customer sales order with all the validation applied.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateCustomerSalesOrderRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateCustomerSalesOrderRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateCustomerSalesOrderRequestModel"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{id}/sales-orders/{salesOrderId}": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a Customer Sales Order record.",
"operationId": "GetCustomerSalesOrderById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "salesOrderId",
"in": "path",
"description": "The Sales Order Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
}
}
}
}
},
"patch": {
"tags": [
"Customer"
],
"summary": "Update a customer sales order.",
"operationId": "UpdateCustomerSalesOrder",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "salesOrderId",
"in": "path",
"description": "The Customer Sales Order Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The details of Customer Sales Order by which we can update the customer sales order.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerSalesOrderRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerSalesOrderRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateCustomerSalesOrderRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
}
}
}
}
},
"delete": {
"tags": [
"Customer"
],
"summary": "Delete a customer sales order by sales order id.",
"operationId": "DeleteCustomerSalesOrder",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "salesOrderId",
"in": "path",
"description": "The Customer Sales Order Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/api/v1/customers/{id}/sales-orders/{salesOrderId}/upload-file": {
"post": {
"tags": [
"Customer"
],
"summary": "Upload a sales order file.",
"description": "For Nuvei the file must be a PDF.",
"operationId": "UploadFileToSalesOrders",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Customer Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "salesOrderId",
"in": "path",
"description": "The Customer Sales Order Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"File"
],
"type": "object",
"properties": {
"File": {
"type": "string",
"description": "The data file (e.g., a PDF) to be uploaded.",
"format": "binary"
}
}
},
"encoding": {
"File": {
"style": "form"
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerSalesOrderResponse"
}
}
}
}
}
}
},
"/api/v1/customer-payments": {
"get": {
"tags": [
"CustomerPayment"
],
"summary": "Get a list of customer payments.",
"operationId": "GetCustomerPayments",
"parameters": [
{
"name": "top",
"in": "query",
"description": "Maximum number of records to return. Default: 100. Max: 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "skip",
"in": "query",
"description": "The value from which to start taking records. Default: 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "paymentDate",
"in": "query",
"description": "The Payment Date by which to search for the payments. Results will include payments on or after the provided date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "invoiceId",
"in": "query",
"description": "The Customer Invoice ID for which to search for payments.",
"schema": {
"type": "string"
}
},
{
"name": "salesOrderId",
"in": "query",
"description": "The Customer Sales Order ID for which to search for payments.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerPaymentResponseListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerPaymentResponseListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerPaymentResponseListResponse"
}
}
}
}
}
}
},
"/api/v1/customer-payments/{id}": {
"get": {
"tags": [
"CustomerPayment"
],
"summary": "Get a customer's payment record by payment id.",
"operationId": "GetCustomerPaymentById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The Payment Id by which to search for the customer's payment.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CustomerPaymentResponseListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerPaymentResponseListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CustomerPaymentResponseListResponse"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/v1/vendors": {
"get": {
"tags": [
"Vendor"
],
"summary": "Get a list of vendors.",
"operationId": "GetVendors",
"parameters": [
{
"name": "top",
"in": "query",
"description": "Maximum number of records to return. Default: 100. Max: 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "skip",
"in": "query",
"description": "The value from which to start taking records. Default: 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "externalVendorId",
"in": "query",
"description": "The External Vendor Id by which to search for the vendor.",
"schema": {
"type": "string"
}
},
{
"name": "vendorName",
"in": "query",
"description": "The Vendor Name by which to search for the vendor.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/VendorResponseListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/VendorResponseListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VendorResponseListResponse"
}
}
}
}
}
},
"post": {
"tags": [
"Vendor"
],
"summary": "Create a vendor.",
"operationId": "CreateVendor",
"requestBody": {
"description": "The details of Vendor by which we can create the vendor with all the validation applied.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VendorRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/VendorReques
# --- truncated at 32 KB (79 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eci-solutions/refs/heads/main/openapi/eci-solutions-apar-commerce-openapi.json