Supplier invoice ( supplier_invoice )

A supplier_invoice represents an invoice received from a supplier. Its model separates receipt/approval lifecycle, settlement progress, and dispute existence so all three dimensions can evolve without overwriting one another.

Role

The supplier invoice is the central document of the Accounts Payable flow. It may be matched to one or more purchase orders, submitted for approval, scheduled for payment, then allocated to a supplier payment.

The field type distinguishes an invoice (invoice) from a supplier credit note (credit_note). A credit note may reference its original invoice through source_invoice_id.

Identifier and structure

Every supplier invoice has an identifier prefixed with sinv_.

JSON
"supplier_invoice":{21 items
"object":"supplier_invoice"
"id":"sinv_4a7b2e9f1c3d8a5e"
"merchant_id":"mer_1a2b3c4d5e6f7a8b"
"supplier_id":"cmp_3a8f1d9c2b4e7f6a"
"supplier_contact_id":null
"type":"invoice"
"source_invoice_id":null
"status":"approved"
"settlement_status":"scheduled"
"disputed":false
"amount_excluding_tax":100000
"amount_tax":20000
"amount_including_tax":120000
"currency":"eur"
"reference":"SUP-2026-0042"
"source_reference":"ERP-AP-7842"
"issue_date":"2026-06-17"
"received_at":"2026-06-18T09:00:00.000Z"
"due_date":"2026-07-17"
"scheduled_payment_date":"2026-07-15"
"paid_at":null
}
{
"object": "supplier_invoice",
"id": "sinv_4a7b2e9f1c3d8a5e",
"merchant_id": "mer_1a2b3c4d5e6f7a8b",
"supplier_id": "cmp_3a8f1d9c2b4e7f6a",
"supplier_contact_id": null,
"type": "invoice",
"source_invoice_id": null,
"status": "approved",
"settlement_status": "scheduled",
"disputed": false,
"amount_excluding_tax": 100000,
"amount_tax": 20000,
"amount_including_tax": 120000,
"currency": "eur",
"reference": "SUP-2026-0042",
"source_reference": "ERP-AP-7842",
"issue_date": "2026-06-17",
"received_at": "2026-06-18T09:00:00.000Z",
"due_date": "2026-07-17",
"scheduled_payment_date": "2026-07-15",
"paid_at": null
}

Fields

FieldTypeDescription
idstringSupplier-invoice identifier (prefix `sinv_`).
objectstringAlways "supplier_invoice".
merchant_idstringMerchant receiving the invoice.
supplier_idstringSupplier (`cmp_…`).
supplier_contact_idstring | nullAssociated supplier contact, when known.
typeenum`invoice` or `credit_note`.
source_invoice_idstring | nullOriginal supplier invoice for a credit note.
statusenumLifecycle: `received`, `pending_approval`, `approved`, `cancelled`.
settlement_statusenumSettlement: `unpaid`, `scheduled`, `partially_paid`, `paid`.
disputedbooleanWhether the invoice is currently disputed.
amount_excluding_taxintegerAmount excluding tax in cents.
amount_taxintegerTax amount in cents.
amount_including_taxintegerAmount including tax in cents.
currencystringLowercase ISO 4217 currency.
referencestring | nullInvoice number assigned by the supplier.
source_referencestring | nullReference in your source system.
issue_datedate | nullIssue date indicated by the supplier.
received_atdatetime | nullInvoice receipt date.
due_datedate | nullDue date.
approved_atdatetime | nullApproval date.
scheduled_payment_datedate | nullScheduled payment date, when applicable.
paid_atdatetime | nullFull settlement date, when known.
document_filefile | nullAttached invoice document.
metadataobjectFlat map of `string | number | boolean` scalars, following the API metadata convention.
created_atdatetimeCreation date.
updated_atdatetimeLast update date.

Lifecycle

status answers only “where is the document in processing?”. Scheduling or executing a payment does not change this axis.

statusDescription
receivedInvoice received and recorded. Initial status.
pending_approvalSubmitted to the approval workflow.
approvedApproved for processing and payment.
cancelledCanceled. End of document lifecycle.

Settlement

settlement_status separately tracks payment progress. The value scheduled belongs to this axis: it indicates that a disbursement is planned without making scheduling a stage of invoice lifecycle.

settlement_statusDescription
unpaidNo settlement has yet been initiated on the invoice.
scheduledA supplier payment has been scheduled for this invoice.
partially_paidPart of the amount has been settled.
paidThe full amount has been settled.

When a supplier payment is applied to the document, settlement progresses toward partially_paid or paid according to the amount actually allocated.

Disputes

The disputed forms a third independent axis. Opening a dispute replaces neither status nor settlement_status ; for example an invoice can remain approved while disputed.

HTTP
POST /v1/supplier-invoices/sinv_4a7b/dispute
{}0 items
{}

POST /v1/supplier-invoices/:id/resolve-dispute closes the dispute and resets disputed to false. The request specifies whether lifecycle resumes in received or approved.

Purchase orders

A supplier invoice may be linked to one or more purchase orders. Relationships are available through GET /v1/supplier-invoices/:id/purchase-orders and editable through POST /v1/supplier-invoices/:id/purchase-order-links.

Line items may also reference a purchase-order line using purchase_order_line_item_id to preserve line-by-line matching.

Business actions

EndpointEffect on the axes
POST /v1/supplier-invoices/:id/submit-for-approvalstatus : received → pending_approval
POST /v1/supplier-invoices/:id/approvestatus : received/pending_approval → approved
POST /v1/supplier-invoices/:id/schedulesettlement_status → scheduled; status remains approved
POST /v1/supplier-invoices/:id/dispute`disputed` → true; `status` and `settlement_status` remain independent
POST /v1/supplier-invoices/:id/resolve-dispute`disputed` → false; lifecycle resumes in `received` or `approved`
POST /v1/supplier-invoices/:id/cancelstatus → cancelled

Events

EventTrigger
supplier_invoice.receivedA supplier invoice was just recorded.
supplier_invoice.updatedThe invoice or its business lifecycle was updated.
supplier_invoice.approvedThe invoice was just approved.
supplier_invoice.partially_paidSettlement became partial.
supplier_invoice.paidThe invoice is fully settled.
supplier_invoice.overdueThe invoice is overdue and remains open.
supplier_invoice.disputedA dispute was opened on the invoice.
supplier_invoice.cancelledThe invoice was canceled.