SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
Invoicing

Mark an invoice as paid with a manual payment record.

Mark an invoice as paid with a manual payment record.

POSThttps://app.softsolz.uk/api/v1/services/invoicing/invoices/{id}/mark-paid

Recent Requests

Kept only in this browser
TimeStatusTook
Send a request with Try it to see it here.

Path Params

idstringrequired

Headers

Authorizationstringrequired

Bearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

amountnumber | stringrequired

Payment amount in major currency units (> 0, max 2 decimal places; a numeric string like "120.00" avoids float precision). Cannot exceed the outstanding balance.

methodstring

Payment method (default "manual").

referencestring | null

External payment reference (e.g. cheque or transfer id); stored on the payment record.

received_atstring | null

When payment was received. Defaults to now.

Response

Response Body

paymentIdintegerNew payment id.
invoiceIdintegerInvoice id.
finalStatusstringInvoice status after the payment.
invoiceobjectThe updated invoice (invoice detail shape).

Request

curl --request POST \
--url https://app.softsolz.uk/api/v1/services/invoicing/invoices/{id}/mark-paid \
--header 'Authorization: Bearer sk_live_your_key' \
--header 'Content-Type: application/json' \
--data '{
"amount": "120.00",
"method": "manual",
"reference": "CHQ-00123",
"received_at": "2026-01-20T12:00:00.000Z"
}'

Credentials

Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.

Response · 200

{
"data": {
"paymentId": 7001,
"invoiceId": 1001,
"finalStatus": "paid",
"invoice": {
"id": 1001,
"status": "paid"
}
}
}