A payment operations API you'll enjoy building on.
One versioned REST API for money movement, ledgering and accounts. Integer cents, idempotent writes, signed webhooks, and errors that tell you exactly what was wrong. Authenticate with a header and create a payment in four lines.
Everything you need to integrate.
API reference
The full /v1 surface — payment orders, ledger, virtual accounts, counterparties, balances and webhooks — with request shapes and code snippets. →
Events & webhooks
Every event type we emit, when it fires, the payload shape, and how to verify HMAC signatures and dedupe at-least-once delivery. →
SDKs & libraries
The drop-in embed SDK for end-customer apps, plus an OpenAPI document you can generate a typed client from in any language. →
Sandbox & test data
How test keys route to simulated rails that settle and return like the real thing — so you build against realistic money without moving any. →
Versioning & lifecycle
What's additive vs breaking, how /v1 and a future /v2 run side by side, and our deprecation policy. →
Changelog
Dated, categorised API and webhook changes — additions, changes and fixes — so you always know what moved. →
Authenticate
# tenant-scoped secret key in a header curl https://api.digitaltreasury.com/v1/balances \ -H "X-API-Key: dt_live_..."
Create a payment
POST /v1/payment-orders Idempotency-Key: inv_8842_pay { "direction": "Credit", "rail": "Ach", "amountCents": 250000, "counterpartyName": "Acme Carrier" }
The details that make an integration hold up.
Idempotent by default
Every write takes an Idempotency-Key. Retry a timeout and get the same result — never a duplicate. How it works →
Signed, durable webhooks
HMAC-signed, outbox-backed, at-least-once delivery with lossless secret rotation. Verify signatures →
Integer cents, typed rails
Money is never a float and a rail is never a bare string. The same request shape works for ACH and for USDC.
Read the ledger
Pending, posted and available balances plus full entry history per account — reconciliation is a read, not a nightly job.
A sandbox that behaves
Simulated rails settle and return like the real thing, and a built-in test-event sink lets you confirm your webhook endpoint before you go live. See the sandbox →
OpenAPI & snippets
A versioned /v1 surface with an OpenAPI document and copy-paste snippets in cURL, C#, Python and Node.