SETSimple Easy Transactions
SET DocsAPI reference and complianceUpdated 2026-11-09
Browse: SET API (Platforms)

One-off transfers, funds requests and batched settlement

SET API and SET Merchant API · Live since 2026-11-09

Fixed addresses (virtual accounts, Cash-Out Addresses) suit money that arrives again and again. A one-off transfer covers the single movement they do not.

A wire in, delivered as USDC

POST /v1/transfers {kind: "wire_to_usdc", customer, amount, to: {wallet} | {asset, address, beneficiary}}

  • For a single invoice paid by wire. A payer who pays again and again should get a virtual account.
  • The answer carries depositInstructions, including a deposit message unique to this transfer, which the wire must carry. The instructions are re-read while the transfer awaits funds and are never stored.
  • The USDC goes to the customer's own custodial wallet, or to USDC on Base, Ethereum or Solana at an address with its beneficiary.
  • SET's fee is the bank on-ramp fee.

A wallet to SWIFT

POST /v1/transfers {kind: "wallet_to_swift", wallet, amount, bankAccount | recipient, swiftReference?, chargeBearer?}

  • USDC from the customer's custodial wallet, paid in US dollars by SWIFT. It goes to the customer's own USD bank account, or to a USD bank recipient (a third party).
  • swiftReference: up to 4 lines of at most 35 characters. chargeBearer: sha (shared, the default), our or ben.
  • Whether a bank account takes SWIFT is the provider's decision. Only the business's own key can send one.
  • SET's fee is the payout fee.

Follow it

GET /v1/transfers and GET /v1/transfers/{id}. Events: transfer.created, transfer.<state> (forward only), transfer.create_failed, transfer.trade_executed. SET re-reads open transfers every 10 minutes.

POST /v1/transfers/{id}/execute force-executes a stuck USDT-to-USD trade at the current market rate. Any other transfer answers 409 transfer_not_executable.

Funds requests

GET /v1/funds_requests?customer= lists requests that banks and financial institutions raised against one customer's deposits, for example to recall a payment. Each shows the deposit, whether fraud is alleged, the notice date, and the wire IMAD or ACH trace number.

Batched settlement on Cash-Out Addresses

POST /v1/cash_out_addresses {…, settlement: "batched"} would settle an address's payments in batches, spreading fixed bank fees across many payouts. It works on ach, wire, sepa, spei and bre_b.

It answers 409 batched_settlement_unavailable until SET switches it on. Addresses settle per_payment (the default) until then.