Skip to main content
POST
Mark a supplier invoice as paid
Authentication: API key OAuth 2.0
Scope: supplier_invoice.write
The resulting paid status and payment_date simply record that you consider the invoice settled, e.g. paid outside Qonto (wire from another bank, cash, etc.) or adjusted for internal bookkeeping. payment_date is optional. When you omit it, the current date is used. Eligible statuses: to_review, to_approve, pending, awaiting_payment, to_pay, paid, and archived. Invoices in scheduled cannot use this endpoint (forbidden transition). On success, status is paid. Any other status returns 400 Bad Request (invalid transition). Idempotency and retries: There is no separate idempotency key; the outcome depends on the invoice’s current status. If the invoice is already paid and the payment_date you send matches the recorded one, another call still returns 200 without producing side effects. For other statuses, 400 could mean that the transition is not allowed, so refresh with GET before retrying. Because an omitted payment_date resolves to the current date, retrying a date-less call against an already paid invoice on a later day returns 422 (already_paid_with_different_payment_date). Send an explicit payment_date if you need retries to be safe across day boundaries.

Authorizations

Authorization
string
header
required

Bearer authorization header: Bearer <token>, where <token> is the access token received from the authorization server at the end of the OAuth 2.0 flow.

Headers

X-Qonto-Staging-Token
string

Required only for Sandbox API requests; to get one, please sign up to the Developer Portal.

Path Parameters

id
string<uuid>
required

The ID of the supplier invoice to mark as paid

Body

application/json
supplier_invoice
object
required

Response

The supplier invoice

id
string<uuid>
required
Example:

"4d5418bb-bd0d-4df4-865c-c07afab8bb48"

is_einvoice
boolean
required

indicates if the invoice is an e-invoice, currently ONLY for the German organizations

Example:

false

has_discrepancies
boolean
required
Example:

false

organization_id
string<uuid>
required
Example:

"4d5418bb-bd0d-4df4-865c-c07afab8bb48"

file_name
string
required
Example:

"my-invoice.pdf"

status
required

Initial status for invoices.

Allowed value: "to_review"
Example:

"to_review"

source_type
enum<string>
required
Available options:
email,
e_invoicing,
direct_upload
Example:

"email"

created_at
string
required
Example:

"2022-03-04T17:58:30+02:00"

updated_at
string
required
Example:

"2022-03-04T17:58:30+02:00"

attachment_id
string<uuid>
required
display_attachment_id
string<uuid>
required
declined_note
string
default:""
required

Note specified when invoice was archived

e_invoice_type
enum<string>
Available options:
zugferd,
xrechnung
Example:

"zugferd"

has_duplicates
boolean
Example:

false

supplier_id
string<uuid>

ID of the supplier linked to this invoice

Example:

"4d5418bb-bd0d-4df4-865c-c07afab8bb48"

self_invoice_id
string<uuid> | null

ID of the related self-invoice, when applicable

Example:

"4d5418bb-bd0d-4df4-865c-c07afab8bb48"

issuer_name
string | null

Name of the issuer as extracted from the invoice data

Example:

"McDonald's"

invoice_number
string
Example:

"QONTO-JAN-2022"

supplier_name
string
Example:

"McDonald's"

vat_number
string | null

VAT number of the invoice issuer

Example:

"IT12345678901"

tin_number
string | null

Tax Identification Number (TIN) of the invoice issuer

Example:

"1234567890"

description
string
Example:

"This is an invoice for Ronald!"

total_amount
object
total_amount_excluding_taxes
object | null

Total invoice amount excluding taxes. Populated for e-invoices (FR, IT, DE) and for invoices where OCR extracted the pretax total; null when the value is unknown.

total_tax_amount
object | null

Sum of all taxes on the invoice. Populated for e-invoices (FR, IT, DE) and for invoices where OCR extracted the tax total; null when the value is unknown.

taxes
object[] | null

Per-rate tax breakdown extracted from the invoice. Populated for e-invoices (FR, IT, DE) when the source document provides a rate-by-rate summary; null or empty otherwise.

issue_date
string
Example:

"2022-03-01"

due_date
string
Example:

"2022-03-01"

payment_date
string
Example:

"2022-03-01"

scheduled_date
string
Example:

"2022-03-01"

iban
string
Example:

"FR1420041010050500013M02606"

initiator_id
string<uuid>
source
enum<string>
Available options:
email_forward,
e_invoicing,
supplier_invoices,
pay_by_invoice,
integration,
regate,
attachments_hub,
generic_upload,
pay_later
Example:

"email_forward"

is_attachment_invoice
boolean
attachment_category
enum<string>

The category of the attachment

Available options:
INVOICE,
EXPENSE_RECEIPT,
CARD_RECEIPT,
CREDIT_CARD_RECEIPT,
CREDIT_NOTE,
OTHER_FINANCIAL_DOCUMENT,
OTHER_NON_FINANCIAL_DOCUMENT,
UNKNOWN
Example:

"INVOICE"

is_attachment_non_financial
boolean
analyzed_at
string
Example:

"2022-03-04T17:58:30+02:00"

matched_transactions_ids
string<uuid>[]
deprecated

Deprecated: This field contains transfer IDs, not transaction IDs. Use matched_transactions instead.

matched_transactions
object[] | null

Array of payments (transfers/transactions) linked to this invoice

transfer_ids
(string<uuid> | null)[]

IDs of the transfer payments associated with this invoice, if any

Example:

"4d5418bb-bd0d-4df4-865c-c07afab8bb48"

request_transfer
object
einvoicing_lifecycle_events
object[]
meta
object
supplier_snapshot
object | null

Snapshot of the supplier details captured at the time the invoice was created

available_actions
object

Available actions for the invoice

approval_workflow
object | null
payable_amount
object | null
total_amount_credit_notes
object | null
is_credit_note
boolean
Example:

false

has_suggested_credit_notes
boolean
Example:

false

suggested_transactions
object[] | null

suggested transactions for the invoice

buyer
object | null

Buyer extracted from the e-invoice XML. Null when no buyer data is available (non-e-invoices or invoices where buyer extraction is not yet supported).

seller
object | null

Seller extracted from the e-invoice XML. Null when no seller data is available.

payment_means
object[] | null

Payment means extracted from the e-invoice XML. Empty or null when no payment means data is available.