DealSleek API · Billing
PreviewCreate Price
Define a price for a product — flat, per-seat, or a graduated/volume tier table. Rejected unless it can actually rate.
/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
CREATE_PRICEfor 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
billing_cycleenumRequiredNo description yet.
- Allowed values
- MONTHLY
- QUARTERLY
- ANNUAL
- SEMI_ANNUAL
currencystringRequiredNo description yet.
- minimum length 3
- maximum length 3
included_unitsstringRequiredNo description yet.
modelenumRequiredNo description yet.
- Allowed values
- FLAT
- TIERED
- VOLUME
- SEAT_BASED
price_iduuidRequiredNo description yet.
product_iduuidRequiredNo description yet.
tier_modeenumRequiredNo description yet.
- Allowed values
- GRADUATED
- VOLUME
- GRADUATED
- Bracketed — each tier prices only its own slice (income-tax style).
- VOLUME
- Landed — the tier the total reaches prices every unit.
tiersarray of objectRequiredNo description yet.
3 child fields
unit_pricestringRequiredNo description yet.
flat_feestringOptionalCharged once when this tier is used at all.
- Default
- 0
limitstring or nullOptionalInclusive upper bound.
Nonemarks the final, unbounded tier.
unit_amountstringRequiredNo description yet.
meter_iduuid or nullOptionalThe meter this price rates. Required for metered prices.
usage_aggregationenum or nullOptionalNo description yet.
- Allowed values
- SUM
- MAX
- LAST
- UNIQUE_COUNT
- SUM
- Total consumption over the period.
- MAX
- Highest value seen — peak provisioning.
- LAST
- Value at period close — current state, e.g. storage.
- UNIQUE_COUNT
- Distinct subjects — monthly active users.
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. SendCREATE_PRICE. - 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.