DealSleek API · Billing
PreviewAmend Subscription
Apply a verified same-cycle price or quantity amendment and create Finance-review draft charge and credit documents.
/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
AMEND_SUBSCRIPTIONfor 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
current_statusenumRequiredNo description yet.
- Allowed values
- ACTIVE
- TRIALING
- PAST_DUE
- PAUSED
- CANCELED
- INCOMPLETE
- UNPAID
- EXPIRED
- INCOMPLETE
- Created, but the first payment has not been confirmed. It must not grant entitlements — treating an unconfirmed signup as Active is how a product gets used for free.
- UNPAID
- Dunning exhausted. Distinct from Canceled: the contract still stands and the debt is still owed, but service is withheld.
- EXPIRED
- Term ended without renewal.
days_elapsedintegerRequiredDays consumed in the current term, and the term's real length. Both come from the subscription's actual boundaries, not a nominal 30.
- at least 0
days_in_periodintegerRequiredNo description yet.
- at least 0
new_cycleenumRequiredNo description yet.
- Allowed values
- MONTHLY
- QUARTERLY
- ANNUAL
- SEMI_ANNUAL
new_period_amountstringRequiredPeriod price of the plan being taken.
new_quantityintegerRequiredNo description yet.
- at least 1
old_cycleenumRequiredNo description yet.
- Allowed values
- MONTHLY
- QUARTERLY
- ANNUAL
- SEMI_ANNUAL
old_period_amountstringRequiredPeriod price of the plan being left.
old_quantityintegerRequiredNo description yet.
- at least 1
proration_behaviorenumRequiredNo description yet.
- Allowed values
- IMMEDIATE
- NEXT_INVOICE
- NONE
- IMMEDIATE
- Settle the difference now.
- NEXT_INVOICE
- Carry the difference onto the next scheduled invoice.
- NONE
- Change the plan and bill nothing for the remainder of the term.
subscription_iduuidRequiredNo description yet.
expected_versioninteger or nullOptionalNo description yet.
new_price_iduuid 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. SendAMEND_SUBSCRIPTION. - 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 belowfinanceor the caller has no access to this record. - 403
L1_POLICYA business rule refused the command. The message names the rule. - 409
L1_VERSIONexpected_versionis not the record's current version. Read the record again, then retry. - 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.