(00)

API reference

92 operations. Sandbox needs no approval.

One HTTPS API over verification, custody, accounts, payouts and standing conversion. Everything below is callable with a sandbox key, which moves no real money and is issued from the console without waiting for approval.

Base URL
https://api.skerry.xyz
Machine-readable
openapi.json
Keys
console.skerry.xyz
curl https://api.skerry.xyz/whoami \
  -H "Authorization: Bearer sk_test_…"

That is the quickest way to prove a key works: it answers with the partner, project, mode and scopes behind it. The environment comes from the key rather than the URL, so the same code runs against sandbox and live by swapping one value.

(01)

Conventions

True of every endpoint.

Authentication
Every call but `/` sends `Authorization: Bearer sk_test_…` or `sk_live_…`. The environment is in the key, not in a header, so the same code runs against sandbox and live by swapping one value.
Idempotency
Send `Idempotency-Key` on every POST. A repeat returns the first response rather than acting twice; a repeat with a different body is refused. This is how a retry after a timeout stays safe.
Errors
Failures are `{ error: { code, message, detail, request_id } }`. Branch on `code`, never on `message` — messages are written for people and will change.
Request id
Every response carries `x-request-id`. Keep it on anything you log: it is what lets us find one call out of millions.
Pagination
List endpoints return newest first and take `?limit=` and `?cursor=`. A response carrying `next_cursor` has more.
Amounts
Payments, refunds, settlements, conversions and ledger entries carry amounts as integer minor units (cents) beside a lowercase currency code. Payouts, rates and wallet balances predate this and use decimal strings.
Environments
A `sk_test_` key reaches only sandbox data and test money; a `sk_live_` key only live. Nothing is shared between them, ids from one are not found in the other, and sandbox-only helpers refuse a live key.
Rate limits
Reads are limited to 600 and writes to 120 per minute per key. Past that, 429 `rate_limited` with `Retry-After`. Every response carries `RateLimit-Limit` and `RateLimit-Remaining`.
Agents
Send `Skerry-Agent: <your agent id>` when an agent calls through a shared key, so spend policies bound to that agent apply and the audit trail names it.

(02)

Getting started

5 operations

The two calls worth making first. `/` needs no key and lists what exists; `/whoami` proves the key you were given works and says which environment it is in.

(03)

Customers

9 operations

A customer is a business you bring to the platform. It is verified in its own right, and everything else — wallets, accounts, payees — hangs off one.

(04)

Custody

9 operations

Where a customer's money sits. A wallet holds stablecoin; an account is fiat at a regulated institution; a card spends from one.

(05)

Paying out

8 operations

A payee is somewhere money can go; a payout sends it there. Quote first when the amount matters — a quote fixes the rate for a short window.

(06)

Standing conversion

2 operations

A standing order converts on a schedule rather than on a call, so a business can hold one currency and settle in another without writing a cron job.

(07)

Events and webhooks

6 operations

Most state changes arrive here rather than in a response, because verification and settlement finish long after the call that started them. Replay is deliberate: a missed delivery is recoverable without asking us.

(08)

Accepting payments

22 operations

Take card and wallet payments for a customer. The payer pays on a hosted page, so card details never reach Skerry or you. Amounts are integer minor units next to a currency code. Build orders from `payment.succeeded`, never from the payer's browser returning to your site.

(09)

Payers, saved methods and subscriptions

10 operations

A payer is someone who pays your customer. Save a method once, with their agreement, and charge it later or on a schedule. The agreement is the mandate. Card numbers are never returned.

(10)

Limits, agents and approvals

10 operations

Constrain what a key, or an agent acting through it, can move. A policy names the business accountable and the person who approved it, caps amounts, restricts destinations and currencies, and can require a person to approve large operations. A key that has ever had a policy stays restricted.

(11)

Conversion and ledger

5 operations

Convert a customer's own balance between currencies with a priced, expiring quote, and export the double-entry books for an accountant.

(12)

Sandbox

1 operations

Helpers that exist only with a test key, so an integration can be built and exercised without a browser or a bank.

(13)

Rewards and reporting

5 operations

What the platform pays on balances, and what this project has consumed against its plan.

(14)

Errors

30 codes.

Failures carry a stable code. Branch on that, never on the message — messages are written for people and will change.

Start

A sandbox key takes a minute and needs no approval.

Machine-readable

The same reference as OpenAPI 3.1, for a generator or an agent.