Get invoice details
GET
apiToken invoices:readheader
AuthorizationBearer <token>A personal API token: Authorization: Bearer dh_live_…. See Authentication for scopes.
Scope: invoices:read
id*integerThe invoice.
application/json- response
id*integernumber*stringAs filed and as printed on the PDF.
status*stringValue in
"unpaid""paid""cancelled""refunded"type*stringorder | renewal | credit | manual | …
subtotalCents*integertotalCents*integerserviceId*integer|nulldueAt*stringFormat
date-timepaidAt*|Format
date-timecreatedAt*stringFormat
date-timeitems*array<>curl -X GET 'https://api.deluxhost.net/v1/invoices/0' \ -H "Authorization: Bearer $DELUXHOST_TOKEN"Example Response
{ "id": 0, "number": "string", "status": "unpaid", "type": "string", "subtotalCents": 0, "totalCents": 0, "serviceId": 0, "dueAt": "2019-08-24T14:15:22Z", "paidAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "items": [ { "description": "string", "quantity": 0, "unitPriceCents": 0, "totalCents": 0 } ]}List invoices GET
Cursor-paginated: pass the previous response's `nextCursor` as `before`. `nextCursor` is null on the last page. An unknown `status` is a 400, not a silently ignored filter.
List invoice payments GET
Completed and refunded rows only — money that moved. Declined attempts are not here. `amountCents` is negative on a refund and `refund` says so without arithmetic; `reference` is the gateway's own transaction id, which is what makes a row match a line on your statement.