SETSimple Easy Transactions
SET DocsAPI reference and complianceUpdated 2026-11-08
Browse: Overview

Environments and sandbox

Staging

Staging (https://wallet-staging.simpleeasytransactions.com) runs the same code as production against the provider's sandbox. No real money moves. Use set_test_ keys.

The provider's sandbox cannot complete hosted verification links or move money, so SET adds simulators under /v1/sandbox/* (staging only; production answers 404):

CallStands in for
POST /v1/sandbox/customers/{id}/approveThe customer completing KYB or KYC
POST /v1/sandbox/deposits {virtualAccount, amount, sender?} then /v1/sandbox/deposits/{id}/advanceA bank transfer into a virtual account, step by step
POST /v1/sandbox/cash_out_payments {cashOutAddress, amount, fromAddress?} then /{id}/advanceStablecoin into a Cash-Out Address and its payout
POST /v1/sandbox/conversion_payments then /{id}/advanceA conversion payment

Everything simulated is labelled "Sandbox:" and has sandbox: true. A sandbox deposit is never delivered, because nothing reached a chain.

What the sandbox does not do: currency endorsements are not checked (endorsement_required never appears), live deposit instructions are synthetic, and GET /v1/virtual_accounts/{id}/microdeposits is always empty.

A first run in staging

POST /v1/customers                 { "externalId": "test-1", "type": "business", "name": "Test Merchant LLC", "email": "test@example.com" }
POST /v1/sandbox/customers/{id}/approve
POST /v1/payment_setups            { "customer": "cus_…", "way": "wallet", "asset": "usdc-base", "address": "0x…",
                                     "beneficiary": { "type": "customer", "walletType": "self_custodied", "ownershipVerifiedAt": "2026-11-01T12:00:00Z" } }
POST /v1/sandbox/deposits          { "virtualAccount": "…", "amount": "250.00" }
POST /v1/sandbox/deposits/{id}/advance      (repeat until payment_processed)
GET  /v1/events

On Windows PowerShell 5.1, call with curl.exe (not the curl alias) or Invoke-RestMethod:

Invoke-RestMethod -Method Get -Uri https://wallet-staging.simpleeasytransactions.com/v1/ping -Headers @{ Authorization = "Bearer $env:SET_TEST_KEY" }

Local demo

The set-wallet-kit repository runs a fully simulated copy of the API on your own computer (npm run sandbox:api, then http://localhost:8788; npm run sandbox:merchant for the Merchant API and its order form). It runs SET's real API code with the provider simulated; nothing leaves the computer.

Going live

  1. SET completes KYB on your business and the platform oversight review (platforms) and you sign SET's terms.
  2. SET registers your legal details for the Travel Rule and issues a set_live_ key with your fee and webhook URL.
  3. Your merchants verify live; the sandbox approval call does not exist in production.
  4. Your first live movement is watched end to end by SET's compliance owner.