DealSleek API · Billing

Preview

Amend Subscription

Apply a verified same-cycle price or quantity amendment and create Finance-review draft charge and credit documents.

POST/api/v1/billing/dispatch

Authorization

Minimum role
FinanceThe caller must hold this role or a higher one.
Action
AMEND_SUBSCRIPTION

Headers

  • AuthorizationstringRequired

    Access token of the signed-in user, as a Bearer token. It identifies the user, their role and the workspace.

  • X-CQRS-ActionstringRequired

    Names the command to run. Must be AMEND_SUBSCRIPTION for this endpoint.

  • Content-TypestringRequired

    Always application/json.

  • X-Idempotency-KeystringOptional

    A key you choose that is unique to this attempt. A command repeated with the same key is not applied a second time.

  • X-Correlation-IdstringOptional

    Your own identifier for the request. Returned in the x-correlation-id response header; generated when you leave it out.

Request body

  • current_statusenumRequired

    No 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_elapsedintegerRequired

    Days 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_periodintegerRequired

    No description yet.

    at least 0
  • new_cycleenumRequired

    No description yet.

    Allowed values
    • MONTHLY
    • QUARTERLY
    • ANNUAL
    • SEMI_ANNUAL
  • new_period_amountstringRequired

    Period price of the plan being taken.

  • new_quantityintegerRequired

    No description yet.

    at least 1
  • old_cycleenumRequired

    No description yet.

    Allowed values
    • MONTHLY
    • QUARTERLY
    • ANNUAL
    • SEMI_ANNUAL
  • old_period_amountstringRequired

    Period price of the plan being left.

  • old_quantityintegerRequired

    No description yet.

    at least 1
  • proration_behaviorenumRequired

    No 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_iduuidRequired

    No description yet.

  • expected_versioninteger or nullOptional

    No description yet.

  • new_price_iduuid or nullOptional

    No 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.

  • successbooleanRequired

    true when the command was applied.

  • error_messagestringRequired

    Empty when the command was applied.

  • projected_stateobjectOptional

    The record as it stands after the command.

  • event_payloadobjectOptional

    The event the command recorded.

  • insightsarray of objectOptional

    Advisory notes about the result. Each has a code, a message and an impact number.

Errors

Every error carries an HTTP status. Where it also carries a code, branch on the code, not on the message.

  • 400X-CQRS-Action is missing or names a command this route does not accept. Send AMEND_SUBSCRIPTION.
  • 400DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types.
  • 401The access token is missing, expired or not valid.
  • 401L1_AUTHThe caller's role is below finance or the caller has no access to this record.
  • 403L1_POLICYA business rule refused the command. The message names the rule.
  • 409L1_VERSIONexpected_version is not the record's current version. Read the record again, then retry.
  • 409L1_IDEMPOTENCYA command with this idempotency key was already applied.
  • 409CONFLICTThe command would duplicate a record that must be unique.
  • 500L3_COMMITThe command was valid but could not be saved.
Generated from the API contract · revision 007b75ac0754a359