All systems operational · 99.99% uptime

Developers

One API. Every rail.

Move money across ACH, wire, SEPA, and RTP through a single, predictable REST API. Every write is idempotency-keyed and signed, every state change emits a webhook, and a full sandbox lets you simulate rails before you touch real funds.

Quickstart

Create a payout in one call.

Built for builders

Everything you need to ship payouts.

Predictable REST

Resource-oriented, idempotency-keyed, HMAC-signed requests with scoped API keys. No surprises, no replay risk.

First-class SDKs

Typed SDKs for Node, Python, Go, and Ruby, generated from the same spec that powers the API reference.

Signed webhooks

Every state change — created, sent, settled, returned — arrives as a signed event you can verify and replay.

Safe retries

Idempotency keys make every write safe to retry. Duplicate runs are impossible, even across timeouts.

Full sandbox

Simulate every rail, force returns and delays, and run test payouts before a single real cent moves.

Reconciled ledger

Pull a fully reconciled ledger via API, or stream events straight into your warehouse.

The API surface

Six resources cover the whole settlement lifecycle. Everything else is a webhook.

Payouts & runs

POST /v1/payouts creates a run of one or a million items; GET /v1/runs/:id tracks it through created → sent → settled, with per-item states and partial-failure semantics — one bad payout never blocks a run.

Recipients

POST /v1/recipients validates account and routing details up front and screens every recipient against sanctions lists before any rail is touched. Onboard via API or a hosted flow.

Balances & funding

GET /v1/balances shows your segregated 1:1 balance per currency; POST /v1/funding prefunds a run or arms just-in-time debits from your operating account.

Ledger

GET /v1/ledger returns the immutable, line-level record — every disbursement matched to its return, fee, and bank statement line. Export as CSV or JSON, or stream it into your warehouse.

Webhook endpoints

POST /v1/webhook_endpoints registers a signed destination. Events: payout.created, payout.sent, payout.settled, payout.returned, run.completed, status.changed.

Sandbox controls

POST /v1/sandbox/simulate forces the scenarios you need to handle before go-live: an R01 return, a rail outage with failover, a delayed settlement window. Test keys never touch a real rail.

Reference notes

The fine print, up front.

Errors

Conventional HTTP codes with a machine-readable body: error.code, error.message, and the offending param on validation failures. 4xx means fix the request, 5xx means retry idempotently — never re-key.

Rate limits

600 reads and 120 writes per minute per key by default, with Retry-After on 429. Batch endpoints count one request per call, not per item — a million-payout run is one write.

Idempotency & versioning

Every write requires an Idempotency-Key; same key within 24h returns the original response. The API version is pinned in the path (/v1); within a version, changes are additive only.

Start building on latchpay.

Request access to get sandbox keys, the full API reference, and an engineer to help you ship your first settlement run.