API reference¶
Every endpoint the API serves, generated from its source code: the routes, the request schemas, the response bodies, the error codes, and who may call each one. The API's test suite fails when an endpoint changes without its generated contract being updated, and this site is regenerated from that same source.
For how the pieces fit together, start with the guides. The same contract is available as an OpenAPI 3.1 document for client generators and API tools.
Reading an endpoint¶
- Auth:
API keymeansAuthorization: Bearer <key>. See Authentication. - Permission: the action your role must hold, and which roles hold it. See Team and API keys.
- KYB: the endpoint moves money, so your organization must have completed verification. Before that it answers
403 kyb_required. - Rate limit: which bucket the call draws from (below).
- Unknown fields: some request bodies reject a field they do not know with
400; the rest ignore it. Each endpoint says which. Check spelling either way: an ignored field is a silently missing one. - Always present: in a response table,
nomeans the field is left out when it does not apply.
Rate limits¶
Per organization and per bucket. Every authenticated response carries ratelimit-limit, ratelimit-remaining and ratelimit-reset. A batch costs one initiate token per item. Defaults:
| Bucket | Burst | Sustained, per second | Used by |
|---|---|---|---|
initiate |
30 | 5 | POST /transactions, POST /batches |
write |
60 | 10 | every other authenticated write |
read |
300 | 50 | every authenticated read |
More: Rate limits.
Roles and permissions¶
Each team member has a role. An endpoint that names a permission is refused with 403 forbidden for a role without it; every role may call an endpoint that names none. owner is the organization key itself and is never assigned.
| Permission | owner | admin | member | viewer | Endpoints |
|---|---|---|---|---|---|
beneficiary.manage |
yes | yes | yes | no | POST /treasury/beneficiaries |
member.invite |
yes | yes | no | no | POST /members/invitations, POST /members/:id/invitations |
member.manage |
yes | yes | no | no | PATCH /members/:id, DELETE /members/:id |
member.read |
yes | yes | no | no | GET /members |
payment.initiate |
yes | yes | yes | no | POST /quotes, POST /transactions, POST /batches |
recipient.manage |
yes | yes | yes | no | POST /recipients, PATCH /recipients/:id, DELETE /recipients/:id |
recipient.read |
yes | yes | yes | yes | GET /recipients |
treasury.move |
yes | yes | yes | no | POST /treasury/onramp, POST /treasury/onramp/pix, POST /treasury/withdrawals, POST /treasury/offramp, POST /treasury/onramp/:onRampId/simulate-payment, POST /treasury/onramps/simulate-wire, POST /wallets/:walletId/topup-eurc |
webhook.manage |
yes | yes | no | no | PUT /webhooks/endpoint, DELETE /webhooks/endpoint |
All endpoints¶
Discovery¶
| Endpoint | |
|---|---|
GET /health |
Liveness check |
GET /capabilities |
What this environment can do |
GET /me |
Who this API key belongs to |
Quotes and payments¶
| Endpoint | |
|---|---|
POST /quotes |
Get a firm, rate-locked quote |
POST /transactions |
Send a payment |
GET /transactions |
List your payments |
GET /transactions/:id |
A payment's status and timeline |
Batch payouts¶
| Endpoint | |
|---|---|
POST /batches |
Submit a batch payout |
GET /batches |
List your batches |
GET /batches/:batchId |
A batch, its item counts and a page of items |
Balance and wallets¶
| Endpoint | |
|---|---|
GET /balance |
Your USDC balance |
GET /wallets |
Your wallets |
GET /wallets/:walletId |
One of your wallets |
GET /wallets/:walletId/balances |
What the wallet provider reports a wallet holds |
GET /issuers/accounts |
Issuer accounts held for you |
GET /issuers |
The stablecoin issuers this environment supports |
POST /wallets/:walletId/transfers |
Move funds between your wallets (not available) |
POST /issuers/:issuerId/mint |
Mint a stablecoin at par (not available) |
POST /banking/wire-transfers |
Send an outbound wire (not available) |
Deposits¶
| Endpoint | |
|---|---|
GET /treasury/deposit-instructions |
Where to wire fiat, and the reference to quote |
GET /treasury/onramp/quote |
Price a wire deposit without starting one |
POST /treasury/onramp |
Open a wire deposit |
GET /treasury/onramps |
List your deposits |
GET /treasury/onramp/:onRampId |
A deposit's status and timeline |
GET /treasury/onramp/pix/quote |
Price a PIX deposit |
POST /treasury/onramp/pix |
Open a PIX deposit |
GET /treasury/crypto-deposit |
Where to send USDC on chain, and what each network costs |
Withdrawals and off-ramps¶
| Endpoint | |
|---|---|
GET /treasury/withdrawals/quote |
Price a USDC withdrawal to your own wallet |
POST /treasury/withdrawals |
Withdraw USDC to your own wallet |
GET /treasury/withdrawals |
List your withdrawals |
GET /treasury/withdrawals/:withdrawalId |
A withdrawal's status and timeline |
POST /treasury/beneficiaries |
Register a bank account an off-ramp can pay |
GET /treasury/beneficiaries |
Your registered beneficiaries |
GET /treasury/offramp/quote |
Price an off-ramp to a beneficiary |
POST /treasury/offramp |
Pay USDC out to a beneficiary's bank account |
GET /treasury/offramps |
List your off-ramps |
GET /treasury/offramp/:offRampId |
An off-ramp's status and timeline |
Recipients¶
| Endpoint | |
|---|---|
GET /recipients |
Your saved recipients |
POST /recipients |
Save a recipient |
PATCH /recipients/:id |
Edit a saved recipient |
DELETE /recipients/:id |
Delete a saved recipient |
Team and API keys¶
| Endpoint | |
|---|---|
GET /members |
Your team |
POST /members/invitations |
Invite a team member |
POST /members/:id/invitations |
Re-send an invitation |
POST /invitations/accept |
Accept an invitation |
PATCH /members/:id |
Change a member's role |
DELETE /members/:id |
Revoke a member |
POST /members/me/api-key |
Issue your own member API key |
POST /api-keys/rotate |
Rotate the organization API key |
Webhooks¶
| Endpoint | |
|---|---|
GET /webhooks/endpoint |
The registered webhook URL |
PUT /webhooks/endpoint |
Register or replace the webhook URL |
DELETE /webhooks/endpoint |
Stop webhook delivery |
Email notifications¶
| Endpoint | |
|---|---|
GET /notifications/preferences |
Which events you are emailed about |
PUT /notifications/preferences |
Choose which events you are emailed about |
POST /notifications/verify/send |
Email yourself a verification link |
Statements¶
| Endpoint | |
|---|---|
GET /statements |
Your fee statement for a period |
Sandbox tools¶
| Endpoint | |
|---|---|
POST /treasury/onramp/:onRampId/simulate-payment |
Make a provider-collected deposit's payment arrive (sandbox) |
POST /treasury/onramps/simulate-wire |
Make a wire arrive at our account, quoting your reference (sandbox) |
GET /treasury/sandbox-prefill |
Inputs the sandbox providers are proven to settle (sandbox) |
POST /wallets/:walletId/topup-eurc |
Top up a simulated EURC balance (sandbox) |