DealSleek API · Billing
PreviewIssue Credit Note
Issue a credit note against an invoice or account. The only correct way to reduce a finalised invoice.
/api/v1/billing/dispatchHeaders
AuthorizationstringRequiredAccess token of the signed-in user, as a Bearer token. It identifies the user, their role and the workspace.
X-CQRS-ActionstringRequiredNames the command to run. Must be
ISSUE_CREDIT_NOTEfor this endpoint.Content-TypestringRequiredAlways
application/json.X-Idempotency-KeystringOptionalA key you choose that is unique to this attempt. A command repeated with the same key is not applied a second time.
X-Correlation-IdstringOptionalYour own identifier for the request. Returned in the
x-correlation-idresponse header; generated when you leave it out.
Request body
account_iduuidRequiredNo description yet.
amountstringRequiredNo description yet.
credit_note_iduuidRequiredNo description yet.
current_statusenumRequiredLifecycle of a credit note. A credit note is the ONLY correct way to reduce a finalised invoice: issued invoices are immutable accounting records, so the correction is a new document, never an edit.
- Allowed values
- DRAFT
- ISSUED
- VOID
- APPLIED
- APPLIED
- Fully consumed against one or more invoices.
reasonenumRequiredWhy a credit was granted. Recorded because credits are the first thing an auditor and a revenue-leakage review both look at.
- Allowed values
- CANCELLATION
- GOODWILL
- DUPLICATE
- DOWNGRADE
- SERVICE_CREDIT
- BILLING_ERROR
- DOWNGRADE
- Unused value from a mid-term downgrade.
- SERVICE_CREDIT
- SLA breach or outage compensation.
- BILLING_ERROR
- We billed it wrong.
currencystring or nullOptionalRequired for standalone credits; linked credits use the stored invoice currency.
invoice_iduuid or nullOptionalNo description yet.
memostring or nullOptionalNo description yet.
Response
Status 202. The command was applied. The body reports the outcome and, where the command changes a record, that record's new state.
successbooleanRequiredtruewhen the command was applied.error_messagestringRequiredEmpty when the command was applied.
projected_stateobjectOptionalThe record as it stands after the command.
event_payloadobjectOptionalThe event the command recorded.
insightsarray of objectOptionalAdvisory notes about the result. Each has a
code, amessageand animpactnumber.
Errors
Every error carries an HTTP status. Where it also carries a code, branch on the code, not on the message.
- 400
X-CQRS-Actionis missing or names a command this route does not accept. SendISSUE_CREDIT_NOTE. - 400
DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types. - 401The access token is missing, expired or not valid.
- 401
L1_AUTHThe caller's role is belowfinance, the session has not completed multi-factor sign-in, or the caller has no access to this record. - 403
L1_POLICYA business rule refused the command. The message names the rule. - 409
L1_IDEMPOTENCYA command with this idempotency key was already applied. - 409
CONFLICTThe command would duplicate a record that must be unique. - 500
L3_COMMITThe command was valid but could not be saved.