Payouts

Payouts allow you to send funds from your wallet to recipients — whether that's an external bank account, a crypto wallet, or another Sznd user or business.

Payout Methods

MethodDescriptionRecipientQuote Type
Fiat PayoutSend to an external bank accountExternal beneficiaryWITHDRAWAL
Crypto PayoutSend USDC/USDT to an external crypto walletExternal wallet addressWITHDRAWAL (CRYPTO)
Internal TransferSend to another Sznd user or business via their tagSznd user/businessTRANSFER

How Payouts Work

All payout methods follow a similar pattern built on the Quotes API:

┌──────────┐       ┌───────────┐       ┌──────────────┐│ Your App │──1──▶ │  Sznd API │──2──▶ │  Recipient    ││          │◀──3── │           │       │  (Bank/Wallet)││          │◀──4── │  Webhook  │       │               │└──────────┘       └───────────┘       └──────────────┘

Fiat and Crypto Payouts

  1. Create a Beneficiary — Register the recipient's bank or wallet details via the Beneficiaries API.
  2. Create a Quote — Call POST /api/v1/client/quotes with quote_type: "WITHDRAWAL" and the beneficiary_id.
  3. Accept the Quote — Call POST /api/v1/client/quotes/{id}/accept to execute the payout.
  4. Webhook Notification — Receive a transaction webhook when the payout completes or fails. CAD Interac payouts to non-autodeposit beneficiaries may also receive an earlier PROCESSING webhook with interac_payout_instruction (security question/answer).

Internal Transfers

  1. Look Up Recipient — Find the Sznd user or business by their tag via GET /api/v1/client/users/by-tag.
  2. Create a Quote — Call POST /api/v1/client/quotes with quote_type: "TRANSFER" and the user_tag.
  3. Accept the Quote — Call POST /api/v1/client/quotes/{id}/accept to execute the transfer.
  4. Webhook Notification — Receive a transaction webhook with the transfer status.

Authentication

All payout endpoints require HMAC authentication. Include the following headers in every request:

http
x-api-key: <your-api-key>x-timestamp: <rfc3339-timestamp>x-signature: <hmac-sha256-signature>

For details on generating HMAC signatures, see the Authentication documentation.


Prerequisites

Before making payouts, ensure:

  1. Sufficient Wallet Balance — Your wallet must have enough funds to cover the payout amount plus fees.
  2. KYC Verified Customer — The customer on whose behalf you're transacting must be KYC verified (if required).
  3. Valid Beneficiary or User Tag — For fiat/crypto payouts, create a beneficiary first. For internal transfers, the recipient must have a Sznd account with a valid tag.

Next Steps