DealSleek API · Billing

Preview

Create Success Fee Agreement

Register the terms outcomes are judged by: rate, qualifying floor, fee cap, clawback recovery and verification window.

POST/api/v1/billing/dispatch

Authorization

Minimum role
FinanceThe caller must hold this role or a higher one.
Multi-factor sign-in
Required. The access token must come from a session that completed multi-factor sign-in.
Action
CREATE_SUCCESS_FEE_AGREEMENT

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 CREATE_SUCCESS_FEE_AGREEMENT 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

  • account_iduuidRequired

    No description yet.

  • agreementobjectRequired

    A success-fee arrangement on an account — the terms outcomes are judged by.

    15 child fields
    • account_iduuidRequired

      No description yet.

    • clawback_recovery_factornumberRequired

      No description yet.

    • iduuidRequired

      No description yet.

    • is_activebooleanRequired

      No description yet.

    • minimum_qualifying_valuenumberRequired

      No description yet.

    • rate_percentnumberRequired

      No description yet.

    • tenant_iduuidRequired

      No description yet.

    • trigger_typeenumRequired

      What counts as the billable outcome.

      Allowed values
      • DEAL_WON
      • REVENUE_RECOGNIZED
      • MILESTONE_VERIFIED
      • ATTRIBUTED_CONVERSION
      DEAL_WON
      A deal reached CLOSED_WON. Fast, and the most reversible.
      REVENUE_RECOGNIZED
      Revenue was recognised under ASC 606 — slower, far harder to undo.
      MILESTONE_VERIFIED
      A delivery milestone was verified (see deals VERIFY_ERP_FULFILLMENT).
      ATTRIBUTED_CONVERSION
      A conversion attributed to campaign activity.
    • verification_daysintegerRequired

      No description yet.

      at least 0
    • beneficiary_account_iduuid or nullOptional

      No description yet.

    • fee_capnumber or nullOptional

      Uncapped should be a deliberate choice: an uncapped percentage of an unusually large outcome produces an invoice nobody intends to send.

    • fee_floornumber or nullOptional

      No description yet.

    • governing_contract_iduuid or nullOptional

      No description yet.

    • tier_modeenumOptional

      No description yet.

      Allowed values
      • GRADUATED
      • VOLUME
      Default
      GRADUATED
      GRADUATED
      Bracketed — each tier prices only its own slice (income-tax style).
      VOLUME
      Landed — the tier the total reaches prices every unit.
    • tiersarray of objectOptional

      Populated for tiered arrangements — larger outcomes at lower marginal rates, the usual shape for placement and brokerage fees.

      3 child fields
      • unit_pricestringRequired

        No description yet.

      • flat_feestringOptional

        Charged once when this tier is used at all.

        Default
        0
      • limitstring or nullOptional

        Inclusive upper bound. None marks the final, unbounded tier.

  • agreement_iduuidRequired

    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 CREATE_SUCCESS_FEE_AGREEMENT.
  • 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, the session has not completed multi-factor sign-in, or the caller has no access to this record.
  • 403L1_POLICYA business rule refused the command. The message names the rule.
  • 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