SETSimple Easy Transactions

Not a developer? The SET API overview covers what it does, why platforms buy it and what it costs.

SET API · FOR DEVELOPERS

SET API technical reference: base URL, keys, routes, currencies and signed webhooks.

A REST API over HTTPS with JSON bodies, called server to server at https://wallet.simpleeasytransactions.com/v1/ with an Authorization: Bearer key. A set_test_ key works only in SET's sandbox and a set_live_ key only in production. Each key is shown once; SET stores only its SHA-256 hash. Errors are JSON with a stable code, and every event is listed at GET /v1/events and, once the platform gives SET a webhook URL, sent there signed with HMAC-SHA256.

KEYS AND REQUESTS

How the SET API is called.

THE FLOW, AND ONE CALL PER WAY

Name the merchant, then one call per way.

  1. 01

    Name the merchant

    POST /v1/customers {externalId, type, name, email} returns Bridge's hosted terms and verification links for the merchant.

  2. 02

    The merchant passes verification

    The merchant completes Bridge's business verification. GET /v1/customers/{id} shows approved and the currencies Bridge approved it for.

  3. 03

    Say how the merchant wants to be paid, with its details

    One POST /v1/payment_setups carries the way and what the merchant gives for it: its wallet for way 1, its bank account for ways 2 and 3.

  4. 04

    Hand the merchant what its payers pay into

    The answer's payTo is that: the virtual account's bank details for ways 1 and 3, or the Cash-Out Address for way 2, with the merchant's details.

Every way needs a merchant Bridge has approved for the currencies it uses.

WayCallsNotes
Collect to a walletPOST /v1/payment_setups {customer, way: "wallet", currency?, asset, address, beneficiary}Creates a virtual account. payTo: its bank details. The platform or merchant supplies the wallet and says whose it is (beneficiary).
Cash out stablecoinPOST /v1/payment_setups {customer, way: "cash_out", bankAccount, chain?, stablecoin?, rail?, reference?}Links the bank and creates the Cash-Out Address. payTo: the address, its chain and minimum, and the bank it pays.
Collect to the bankPOST /v1/payment_setups {customer, way: "bank", currency?, bankAccount, chain?, stablecoin?, rail?, reference?}Links the bank, creates the Cash-Out Address, and opens a virtual account pointed at it. payTo: the account's bank details. currency is what payers send; by default the bank's own.
Convert cryptoPOST /v1/conversion_addresses {customer, chain, currency, destination: {asset, address, beneficiary}}Only the pairs listed at GET /v1/conversion_routes are opened.

ROUTES

Every route. Each takes and returns JSON.

Method and pathWhat it does
GET /v1/pingWhich platform, key prefix, scopes and mode the key belongs to.
POST /v1/customersOnboard a merchant: returns Bridge's hosted terms and verification links; endorsements picks base (USD), sepa (EUR) and faster_payments (GBP).
GET /v1/customers/{id}The merchant's verification status, each currency's endorsement and what Bridge still needs, read from Bridge.
POST /v1/customers/{id}/endorsementsBridge's hosted link to approve an existing merchant for another currency.
POST /v1/return_addressesRegister the platform's return address once: where Bridge returns a payment it cannot pay out. GET reads it back.
POST /v1/payment_setupsOne call per way: how the merchant wants to be paid and its wallet or bank details in; everything that way needs created, and payTo, what the merchant's payers pay into, out.
POST /v1/bank_accountsAdd the merchant's own bank account: US (routing and account number), IBAN for euros, or UK sort code and account number for pounds.
POST /v1/cash_out_addressesA permanent Cash-Out Address: USDC or EURC sent to it is paid to that bank by ACH, wire, SEPA or Faster Payments.
POST /v1/cash_out_addresses/{id}Move an address to another of the merchant's bank accounts in the same currency.
POST /v1/virtual_accountsOpen a virtual account in USD, EUR or GBP that delivers each payment as stablecoin to a named wallet, or to the merchant's Cash-Out Address.
POST /v1/virtual_accounts/{id}/deactivateStop an account taking payments; /reactivate opens it again.
GET /v1/virtual_accounts/{id}/microdepositsVerification deposits another app or bank sent to check the account before linking it, read from Bridge.
GET /v1/depositsPayments into the merchant's virtual accounts, with who sent each one.
POST /v1/deposits/{id}/senderName the payer for the Travel Rule.
GET /v1/cash_out_paymentsPayments into Cash-Out Addresses and their payout to the bank, with the amount and rate Bridge paid.
POST /v1/cash_out_payments/{id}/senderName the payer of a Cash-Out payment for the Travel Rule.
GET /v1/conversion_routesEvery stablecoin pair a Conversion Address may convert, with Bridge's minimum.
POST /v1/conversion_addressesA permanent address that converts stablecoin, or moves it across chains, to a named wallet.
GET /v1/conversion_paymentsPayments into Conversion Addresses, with amounts in and out, the rate and on-chain delivery.
GET /v1/exchange_ratesBridge's current rate between USD, EUR, GBP and other currencies, with an estimate for an amount. Not a quote: Bridge offers no rate lock.
GET /v1/eventsEvery event for the platform, in order; also sent as signed webhooks to the platform's URL.
POST /v1/events/{id}/redeliverSend one event to the webhook again.
POST /v1/webhook_testA signed ping event to the platform's webhook.
GET /v1/webhook_secretThe platform's webhook URL and signing secret.
GET /v1/reports/monthlyA month's deposits and Cash-Out payments per currency: gross, fees and paid out, as exact decimal sums.
POST /v1/sandbox/depositsSandbox only: a simulated deposit, so the whole flow can be tested before any money moves.
POST /v1/sandbox/cash_out_paymentsSandbox only: a simulated payment into a Cash-Out Address and its payout.

Lists take limit and filters such as customer and createdSince. Single objects are read at /{id} on each collection. Writes need the write scope.

CURRENCIES AND ASSETS

Dollars, euros, pounds and stablecoins.

TRAVEL RULE

Beneficiaries and senders.

STATES AND FEES

How a payment moves, and what it shows.

EVENTS AND WEBHOOKS

Every change, in order, signed.

SANDBOX

Test the whole flow before money moves.

A set_test_ key runs against SET's staging Worker, which runs the production code with Bridge's sandbox. Bridge, word for word: “there is no real money movement in Sandbox” and “no webhook events will be sent”. So SET simulates what Bridge's sandbox cannot: POST /v1/sandbox/customers/{id}/approve, POST /v1/sandbox/deposits, POST /v1/sandbox/cash_out_payments and POST /v1/sandbox/conversion_payments, each with an /advance step, and signed webhooks reach your server. Everything simulated is labelled “Sandbox:” and no money moves.

RULES AND LIMITS

Every rule and limit, plainly.

WHAT BRIDGE SAYS

The rules it runs on, in Bridge's own words.

“KYC Links support individual and business customers from all over the world (US + international)”

Each merchant completes Bridge's own business verification on Bridge's hosted page.

Bridge KYC Links guide
“Third party payments in most states except for New York and Texas”

Bridge's rail-specific rules for who may pay a merchant's account.

Bridge rail-specific requirements
“a permanent payment route which ties a blockchain address to either a fiat or blockchain address”

A merchant's Cash-Out Address and a Conversion Address are Bridge liquidation addresses.

Bridge liquidation address guide
“the customer for POBO accounts, otherwise the Bridge legal entity. Senders should match this name”

Bridge, on the beneficiary name of euro and pound virtual accounts.

Bridge create a virtual account

QUESTIONS

What developers ask first.

How does a platform call the SET API?

A REST API over HTTPS with JSON bodies, called server to server at https://wallet.simpleeasytransactions.com/v1/ with an Authorization: Bearer key. A set_test_ key works only in SET's sandbox and a set_live_ key only in production. Each key is shown once; SET stores only its SHA-256 hash. Errors are JSON with a stable code, and every event is listed at GET /v1/events and, once the platform gives SET a webhook URL, sent there signed with HMAC-SHA256.

Is the SET API the same as ServiceNow's Import Set API or Windows API sets?

No. The SET API is the payments API of Simple Easy Transactions (SET), a Missouri company. It is not ServiceNow's Import Set API, a REST API that loads records into ServiceNow staging tables and transforms them; not Microsoft's Windows API sets, which organize Win32 APIs into functional groups; and not an API for the Secure Electronic Transaction (SET) card protocol of the 1990s.

FINE PRINT

Who provides what, and our sources.

Conversion and payouts are provided by Bridge, not by SET. “Services for U.S. residents are provided, where applicable, by Bridge Building Inc. (NMLS ID 2450917).” (Bridge website footer)

The SET API is the payments API of Simple Easy Transactions (SET), a Missouri company. It is not ServiceNow's Import Set API, a REST API that loads records into ServiceNow staging tables and transforms them; not Microsoft's Windows API sets, which organize Win32 APIs into functional groups; and not an API for the Secure Electronic Transaction (SET) card protocol of the 1990s.

Every provider fact on this page was opened 2026-11-05: