Reverse a payment

POSThttps://app.speybooks.com/api/v1/invoices/{id}/payment/reverse

Reverses the recorded payment(s) on an invoice IN FULL, returning amount_paid to zero and reopening the invoice to sent so it can be re-settled or closed. This is the exact inverse of recording a payment (POST /:id/payment).

Reversible only from a payment-derived status (paid or partial). Reversing a draft or sent invoice is rejected (there is no settlement to undo), as is a terminal invoice; a missing invoice is reported as not found.

v1 is full reversal only: a single call clears the whole settled amount. There is no partial reversal. Reopening to sent is deliberate, so the normal exits then apply.

In the response, newStatus is sent, amountReversed is the settlement undone by this request, and amountPaid is the cumulative total after reversal (zero in v1). Both are in pence.

No webhook fires on reversal in this version; a reversal event will be added when its emitter is wired. Idempotent under an Idempotency-Key, like recording a payment.

Path parameters

idstringrequired

Response

200Default Response
Show response fields
amountPaidinteger
amountReversedinteger
newStatusstring

Error codes

400Default Response
404Invoice not found.