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

SET API (Platforms) · Transfers

Make a one-off transfer

POST/v1/transfers

Key scope: write · Success: 201

One movement that a fixed address does not cover: wire_to_usdc, a single wire paid in and delivered as USDC (for one invoice paid by wire), or wallet_to_swift, USDC from a customer's custodial wallet paid out in USD by SWIFT.

Headers

Idempotency-Key string
Optional. The same key and body run once; a replay answers with Idempotent-Replayed: true. Kept 24 hours.

Body

kind "wire_to_usdc" | "wallet_to_swift"required
Which transfer.
customer string
wire_to_usdc: the receiving customer.
to { wallet } | { asset, address, beneficiary }
wire_to_usdc: the customer's custodial wallet, or USDC on Base, Ethereum or Solana to an address with its beneficiary.
wallet string
wallet_to_swift: the paying customer's custodial wallet.
bankAccount | recipient string
wallet_to_swift: the customer's own USD bank account, or a USD bank recipient (a third party).
amount decimal stringrequired
US dollars. At least 1.00 must be delivered after SET's fee.
swiftReference string
wallet_to_swift: up to 4 lines (separated by \n) of at most 35 characters.
chargeBearer "sha" | "our" | "ben"
wallet_to_swift: who pays SWIFT charges. Default sha (shared).
externalId string
Your id; a retry with the same one returns the same transfer.
platformFeeBps integer
Platform keys: the platform's own fee, once SET allows it.

Notes

  • A wire in answers with depositInstructions, including a deposit message unique to this transfer that the wire must carry. They are re-read while the transfer awaits funds and never stored. SET's fee is the bank on-ramp fee.
  • A SWIFT payout's fee is the payout fee. Whether a bank account takes SWIFT is the provider's decision. Only the business's own key can send one; SET's operator cannot.
  • Events transfer.created, transfer.<state> (forward only), transfer.create_failed, transfer.trade_executed. SET re-reads open transfers every 10 minutes.

Errors

  • 400 body_invalid
  • 400 kind_invalid
  • 400 external_id_invalid
  • 400 amount_invalid
  • 400 amount_too_small
  • 400 asset_invalid
  • 400 address_invalid
  • 400 swift_reference_invalid
  • 400 charge_bearer_invalid
  • 400 currency_not_supported
  • 400 field_not_used
  • 400 transfer_refused
  • 404 wallet_unknown
  • 404 recipient_unknown
  • 404 bank_account_unknown
  • 409 verification_incomplete
  • 409 balance_too_low
  • 409 initiation_required
  • 403 operator_cannot_pay_out
  • 503 bridge_wallets_disabled
  • 502 transfer_refused
  • 401 api_key_required
  • 401 api_key_invalid
  • 401 api_key_wrong_mode
  • 403 scope_missing
  • 429 rate_limited

All codes: Errors.