Skip to main content
When a disbursement reaches a final state (SUCCESS or FAILED), LauncX POSTs a JSON callback to your registered disbursement webhook URL from the outbound IPs. The disbursement webhook URL is configured separately from your payment webhook URL — disbursement callbacks are never sent to the payment URL. Both are signed with the same Callback Secret, so the verifier you built for Payment Webhooks works unchanged. Intermediate states (VERIFIED, REQUESTED) do not trigger callbacks, and you receive exactly one webhook per final transition.

Payload

Match deliveries to your records by withdrawalId, or — if you supplied reference_id at create — by referenceId, which echoes your own business reference so you don’t need to store our UUID. (reference echoes your Idempotency-Key.) A FAILED disbursement means no funds moved; the debited amount is returned to your wallet balance.

Verifying the signature

Each delivery includes an HMAC signature header: Compute the HMAC-SHA256 of the raw request body bytes (exactly as received — do not re-serialize) using your Callback Secret, hex-encode it, and compare against X-Callback-Signature. This is the same secret and scheme as Payment Webhooks — one verifier handles both.

Delivery & retries

  • Up to 4 attempts with backoff (immediate, 1s, 2s, 3s).
  • Any 2xx response is treated as success; respond 2xx quickly and process asynchronously.
  • Delivery is best-effort: if all attempts fail, the disbursement’s final status is unchanged — reconcile with Get a disbursement.