SET Direct Deposit API
For platforms that pay people in USDC: bug bounty and audit platforms, contests and hackathons, contractor and creator payouts. The platform keeps paying USDC; a US payee who wants dollars receives them in their own bank.
How it works
- The payee signs in to SET Wallet, verifies their identity, links their own bank and gets a permanent Cash-Out Address on Base or Ethereum.
- The payee gives that address to the platform. The platform can check it with
GET /api/partner/address. - The platform pays it from a sender wallet it registered with SET, as it pays any wallet.
- SET reads the payment's sender on chain and submits the platform's legal details as the Travel Rule originator for that payout. The USDC is converted and paid to the payee's bank by ACH; SET's fee is withheld from the payout.
- The platform earns a share of SET's fee on every payout that reaches the bank, reported by
GET /api/partner/statement.
Payable Email extends this to payees who have no address yet: the platform pays an email address (POST /api/partner/payees).
Authentication
Authorization: Bearer set_partner_<32–64 characters>Partner keys are issued by SET when it registers the partner with its legal name, address and identifier (for the Travel Rule), its revenue share and its sender wallets. Answers never carry payee data: no names, emails, banks or wallet histories.
Rules built in
- A payout is attributed to a partner only when its sender is a wallet that partner registered, in the same mode. Anything else is
unknown_sender: recorded, alerted to SET's compliance owner, never guessed. - Direct Deposit takes USDC on Base and Ethereum (chains whose deposits name their sender on chain).
- The partner's share is basis points of each payout reported paid, capped at SET's fee on that payout, truncated to whole cents. SET pays it monthly.
- Payable Email: new payees are paid on Base only (their first send is sponsored); at least 2 USDC per payment; no maximum; a daily cap on new wallets per partner.
Compliance
The partner is SET's customer and passes SET's KYB. Each payee is a verified individual under SET's KYC policy before any dollar payout. A partner must not use Direct Deposit to pay people on behalf of another business, and must not pay a payee it has reason to believe is a sanctioned person or in a prohibited jurisdiction (Sanctions policy).
Calls
| Call | Does |
|---|---|
GET /api/partner/statement | A month's payouts and the partner's share |
GET /api/partner/address | Whether an address takes the partner's payouts |
POST /api/partner/payees | Pay an email address |
GET /api/partner/payees/{payeeId} | A payee's current status and address |
POST /api/partner/payments | Report a payment to a claimable payee |
GET /api/partner/payments | Payable Email payments and their state |
GET /api/partner/events | Every event, in order; GET /api/partner/events/{id} for one |
POST /api/partner/events/{id}/redeliver | Send an event to the webhook again |
POST /api/partner/webhook_test | A signed ping |
GET /api/partner/webhook_secret | The webhook URL and signing secret |
POST /api/partner/sandbox/payouts | Staging: a simulated payout, then /{id}/advance |
Events are signed exactly as on the SET API (Webhooks and events); every POST takes an Idempotency-Key.