SET API (Platforms)
For B2B platforms (vertical software, marketplaces, payment service providers) that onboard their own merchants and want each merchant paid through accounts in the merchant's own name. The platform calls SET; each merchant is verified and becomes a customer in its own right.
The flow
- Name the merchant:
POST /v1/customers. In production the answer carries the hosted terms and verification links. - The merchant is verified (KYB):
GET /v1/customers/{id}reachesapproved, with thecurrenciesit may use. - Say how the merchant is paid, in one call:
POST /v1/payment_setupswithwaywallet,cash_outorbankand the merchant's details for that way. - Hand over
payTo: exactly what the merchant gives its payers. - Follow the money: webhooks or
GET /v1/events;GET /v1/reports/monthlyfor reconciliation.
The separate calls (bank accounts, Cash-Out Addresses, virtual accounts) stay available for platforms that want each step.
Currencies and rails
| Currency | Collect (virtual account) | Pay out (Cash-Out Address) | Endorsement |
|---|---|---|---|
| USD | ACH, wire, FedNow (account in the merchant's name) | ACH (default) or wire to the merchant's US account | base |
| EUR | Virtual IBAN, SEPA standard and instant | SEPA to the merchant's IBAN | sepa |
| GBP | UK sort code and account number, Faster Payments | Faster Payments to the merchant's UK account | faster_payments |
Stablecoins delivered or accepted: USDC on Base, Ethereum, Polygon, Arbitrum, Optimism, Avalanche and Solana; USDT on Ethereum and Solana; PYUSD; EURC on Base, Ethereum and Solana, each where the provider lists the route. RTP is not offered (FedNow is); USDT on Tron is not offered; no rate is ever locked.
Platforms stay out of the flow of funds
By default a platform never receives or holds its merchants' money:
- A destination wallet must be the merchant's own (
beneficiary: {type: "customer", …});{type: "platform"}is refused with403 platform_funds_not_allowed. - Every Cash-Out or Conversion Address needs a
returnAddressthe merchant controls; the platform cannot register a default return address.
SET switches platform funds on for one platform only after its own review of that platform's licences and programme (Platform oversight).
Compliance responsibilities
| SET | The platform | |
|---|---|---|
| Verifies the platform (KYB) | Yes | — |
| Verifies each merchant | Through hosted KYB/KYC; SET's own risk rating and screening on top | Its own programme, separately |
| Screens against sanctions lists | Every customer, owner and counterparty SET learns of | Its own customers |
| Names payers (Travel Rule) | Refuses movements without required data | Sends /sender for each payment it can identify |
| Monitors transactions, escalates and reports | Yes, under SET's programme | Yes, under its own |
| Answers requests for information | Collects from the platform within 5 business days | Must answer SET |
SET's programme stands on its own: it does not rely on the platform's programme to meet SET's obligations, and the platform's programme does not rely on SET's. See Compliance.
Calls
See the call list in the sidebar, grouped as Account, Customers, Payment setups, Bank accounts, Cash-Out Addresses, Virtual accounts, Deposits, Cash-Out payments, Conversion, Wallets, Return addresses, Events & webhooks, Tools and Sandbox. Wallets are custodial USDC wallets held by Bridge for a verified merchant, withdrawable only to that merchant's own bank; a merchant with only a bank account can use one as its own return address. SET Invoices are for merchant keys only (SET Merchant API).