Cancel and reissue an invoice
POST
/invoices/{id}/reissue
const url = 'https://example.com/invoices/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/reissue';const options = { method: 'POST', headers: { cookie: '__Host-bottle.session_token=<__Host-bottle.session_token>', 'Content-Type': 'application/json' }, body: '{"reason":"example","dueOn":"2026-04-15","lines":[{"productId":"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f","description":"example","deliveredOn":"2026-04-15","orderReference":"example","customerReference":"example","quantity":1,"unitPrice":1,"priceIncludesVat":true,"vatRate":1}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/invoices/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/reissue \ --header 'Content-Type: application/json' \ --cookie __Host-bottle.session_token=<__Host-bottle.session_token> \ --data '{ "reason": "example", "dueOn": "2026-04-15", "lines": [ { "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "description": "example", "deliveredOn": "2026-04-15", "orderReference": "example", "customerReference": "example", "quantity": 1, "unitPrice": 1, "priceIncludesVat": true, "vatRate": 1 } ] }'Cancels the unpaid original, keeps it in history and creates a corrected invoice under the next number. Any live hosted payment page is retired first where its provider supports that.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
UUID v7
string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fUUID v7
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
reason
required
string
dueOn
required
string format: date
lines
required
Array<object>
object
productId
required
UUID v7
string | null format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fdescription
required
string
deliveredOn
string | null format: date
orderReference
string | null
customerReference
string | null
quantity
required
number
unitPrice
required
integer
priceIncludesVat
required
boolean
vatRate
required
integer
Responses
Section titled “Responses”The corrected invoice under its new number
Media typeapplication/json
object
id
required
UUID v7
string format: uuid
customerId
required
UUID v7
string format: uuid
customerName
required
string | null
billToAddress
required
Array<string>
orderId
required
UUID v7
string | null format: uuid
number
required
string
status
required
string
replacesInvoiceId
required
UUID v7
string | null format: uuid
reissueReason
required
string | null
voidedAt
required
string | null format: date-time
periodFrom
required
string | null format: date
periodTo
required
string | null format: date
issuedOn
required
string format: date
dueOn
required
string format: date
netPence
required
integer
vatPence
required
integer
totalPence
required
integer
lines
required
Array<object>
object
id
required
UUID v7
string format: uuid
productId
required
UUID v7
string | null format: uuid
description
required
string
deliveredOn
required
string | null format: date
orderReference
required
string | null
customerReference
required
string | null
quantity
required
number
unitPrice
required
integer
priceIncludesVat
required
boolean
vatRate
required
integer
netPence
required
integer
vatPence
required
integer
paymentLink
required
string | null format: uri
paidAt
required
string | null format: date-time
paidVia
required
string | null
paymentProvider
required
string | null
cashTakenPence
required
integer
receivedPence
integer
balanceDuePence
integer
sentAt
required
string | null format: date-time
createdAt
required
string format: date-time
Example
{ "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "orderId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "number": "INV-0042", "status": "sent", "replacesInvoiceId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "lines": [ { "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f" } ], "paidVia": "online"}Not signed in
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not a member, or without the permission this needs
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}No such invoice or product
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Only a live unpaid invoice can be reissued
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Validation failed
Media typeapplication/json
object
error
required
string
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string
Example
{ "error": "validation", "issues": [ { "path": "email", "message": "Invalid email" } ]}