Submit or re-extract a financing invoice
A complete submission supplies invoice_number, invoice_amount, due_date and document_ids. Matching buyer, merchant, number and figures return the same invoice with its original documents and review state. Different figures return 409. The response details.submitted_document_ids contains the saved submission documents. To correct a REJECTED invoice, use POST .../invoices/{invoiceId}/resubmissions. The extraction body registers an invoice keyed on document_id (at most one invoice per document). The document must be type: "INVOICE". Re-extraction updates an unsubmitted PENDING invoice in place; a submitted or reviewed invoice (APPROVED, REJECTED, FINANCED, or PAID) is immutable, and re-extraction is rejected once the new amount would be smaller than the deductions or VAT already recorded on the invoice. Requires merchant:financing.invoices:write on the merchant. Attach the document first, with POST .../documents.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Path Parameters
Canonical sales-app merchant id, shared with Core. Legacy ids remain readable.
1 <= length <= 255Request Body
application/json
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/financing/merchants/01JZQ5W7M5Y83M6F1D6E0A2K8N/invoices" \ -H "Content-Type: application/json" \ -d '{ "invoice_number": "string", "invoice_amount": { "value": 1, "currency": "KES" }, "due_date": "2019-08-24", "document_ids": [ "80c9269b-2f78-48c9-a59b-d8e91723e86e" ] }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "attached_document_ids": [ "2daa2194-1f27-4d7b-a37c-8fc5cf0db85c" ], "deductions": [ { "id": "string", "kind": "VAT", "label": "string", "basis": "BASIS_POINTS", "basis_points": 0 } ], "vat": { "basis": "RATE", "rate_basis_points": 1, "paid": true }, "rejection_reason": "DUPLICATE_INVOICE", "rejection_note": "string", "rejected_by": "string", "rejected_at": "2019-08-24T14:15:22Z", "amount_minor_units": 250000, "currency": "KES", "details": { "property1": null, "property2": null }, "due_date": "2019-08-24", "issued_date": "2019-08-24", "status": "PENDING", "created_at": "2019-08-24T14:15:22Z"}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}{ "code": "INVALID_PARAMS", "description": "user_id must be a UUID", "identifier": "string", "invalid_params": [ { "path": "user_id", "reason": "must be a UUID", "sub_code": "string" } ]}List financing invoices for a merchant GET
Returns a page of a merchant’s own financing invoices, newest first. Requires `merchant:financing.invoices:read` on the merchant; an organization-scoped role can grant that same permission across every merchant it manages. Use GET /v1/financing/invoices instead for an organization-wide roll-up across every merchant.
Get a financing invoice GET
Returns one financing invoice belonging to the merchant. Requires `merchant:financing.invoices:read` on the merchant.