Get an invoice application
Returns one invoice application with its dated discount estimate and its payout. The payout fixes the estimate to its authorization date. Requires the merchant:financing.invoices:read permission on the merchant. Returns 404 when the merchant does not belong to the caller's organization, or the application does not exist for that merchant.
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
Unique identifier of the merchant.
uuidUnique identifier of the loan application.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/merchants/a50e8400-e29b-41d4-a716-446655440000/invoice-financing/applications/650e8400-e29b-41d4-a716-446655440000"{ "id": "650e8400-e29b-41d4-a716-446655440000", "loan_product_type": "ACME_INVOICE_FINANCING", "organization_id": "cowdi", "merchant_id": "a50e8400-e29b-41d4-a716-446655440000", "user_id": "660e8400-e29b-41d4-a716-446655440111", "submitted_by": "660e8400-e29b-41d4-a716-446655440111", "status": "ACTIVE", "invoice_number": "INV-2026-00042", "invoice_amount": { "value": 100000, "currency": "KES" }, "due_date": "2026-11-01", "discount_rate": { "basis_points": 500, "period": { "value": 1, "unit": "DAYS" }, "day_count_convention": "ACTUAL_365" }, "min_loan_amount": { "value": 100000, "currency": "KES" }, "max_loan_amount": { "value": 5000000, "currency": "KES" }, "min_tenure": { "value": 1, "unit": "DAYS" }, "max_tenure": { "value": 1, "unit": "DAYS" }, "timezone": "Africa/Nairobi", "document_ids": [ "950e8400-e29b-41d4-a716-446655440000" ], "disbursement_destinations": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "destination": { "type": "string", "paybill_number": 400200, "account_number": "string" } } ], "created_at": "2026-09-01T10:15:30Z", "resubmission_of": "650e8400-e29b-41d4-a716-446655440000", "approval_workflow_run_id": "e430dfb1-7d1a-4ebc-b9d6-92d3fdd8aed0", "selected_destination_id": "c0caf160-abf0-4e4d-8303-7f2d1f37d132", "approved_at": "2019-08-24T14:15:22Z", "rejected_at": "2019-08-24T14:15:22Z", "rejection_reason": "string", "estimate": { "estimated_disbursement_date": "2026-10-01", "due_date": "2026-11-01", "estimated_discount": { "value": 15000, "currency": "KES" }, "estimated_payout": { "value": 485000, "currency": "KES" } }, "funding": { "disbursement_id": "550e8400-e29b-41d4-a716-446655440000", "status": "PENDING", "facility_account_id": "550e8400-e29b-41d4-a716-446655440000", "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482", "authorized_at": "2026-09-01T10:15:30Z", "failure_reason": "Account limit exceeded" }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "id": "650e8400-e29b-41d4-a716-446655440000", "loan_product_type": "ACME_INVOICE_FINANCING", "organization_id": "cowdi", "merchant_id": "a50e8400-e29b-41d4-a716-446655440000", "user_id": "660e8400-e29b-41d4-a716-446655440111", "submitted_by": "660e8400-e29b-41d4-a716-446655440111", "status": "ACTIVE", "invoice_number": "INV-2026-00042", "invoice_amount": { "value": 100000, "currency": "KES" }, "due_date": "2026-11-01", "discount_rate": { "basis_points": 500, "period": { "value": 1, "unit": "DAYS" }, "day_count_convention": "ACTUAL_365" }, "min_loan_amount": { "value": 100000, "currency": "KES" }, "max_loan_amount": { "value": 5000000, "currency": "KES" }, "min_tenure": { "value": 1, "unit": "DAYS" }, "max_tenure": { "value": 1, "unit": "DAYS" }, "timezone": "Africa/Nairobi", "document_ids": [ "950e8400-e29b-41d4-a716-446655440000" ], "disbursement_destinations": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "destination": { "type": "string", "paybill_number": 400200, "account_number": "string" } } ], "created_at": "2026-09-01T10:15:30Z", "resubmission_of": "650e8400-e29b-41d4-a716-446655440000", "approval_workflow_run_id": "e430dfb1-7d1a-4ebc-b9d6-92d3fdd8aed0", "selected_destination_id": "c0caf160-abf0-4e4d-8303-7f2d1f37d132", "approved_at": "2019-08-24T14:15:22Z", "rejected_at": "2019-08-24T14:15:22Z", "rejection_reason": "string", "estimate": { "estimated_disbursement_date": "2026-10-01", "due_date": "2026-11-01", "estimated_discount": { "value": 15000, "currency": "KES" }, "estimated_payout": { "value": 485000, "currency": "KES" } }, "funding": { "disbursement_id": "550e8400-e29b-41d4-a716-446655440000", "status": "PENDING", "facility_account_id": "550e8400-e29b-41d4-a716-446655440000", "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482", "authorized_at": "2026-09-01T10:15:30Z", "failure_reason": "Account limit exceeded" }}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Submit an invoice for buyer review POST
Submits one of the merchant's invoices for the buyer to review, and returns today's discount estimate. Requires the `merchant:financing.invoices:write` permission on the merchant. Returns 404 when the merchant does not belong to the caller's organization. Repeated submissions with the same buyer, seller, invoice number, amount, currency and due date resume the accepted application. Recovery preserves its original documents and payout destinations. Returns 409 for conflicting figures. Saves the application and approval event atomically. An optional `Idempotency-Key` replays completed responses.
Estimate the invoice discount POST
Calculates the discount and payout for financing an invoice on a hypothetical disbursement date, without creating an application. Requires the `merchant:financing.invoices:read` permission on the merchant. Returns 404 when the merchant does not belong to the caller's organization.