Developers

An API for every dollar that moves through your company.

One REST API. Four first-party SDKs. An MCP server for AI agents. Webhooks for every event. Sandbox parity with production.

99.997%
API uptime (90d)
78ms
p50 latency (US)
184
endpoints live
12k+
active API keys
Quickstart · 60 seconds

From curl to cash moved in one request.

One POST with a recipient, an amount, and a rail. We pick the fastest affordable route, handle FX, check compliance, and return a signed receipt. If it fails, we tell you exactly why.

Idempotency keys on every mutation
Versioned via header — no surprise breaks
Sandbox keys return real shape, fake money
Every error carries a doc URL + request ID
POST /v3/payouts cURLNodePythonGo
# send $4,800 to a vendor via ACH
curl https://api.payouts.com/v3/payouts \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: inv-2418-001" \
  -H "Payouts-Version: 2026-03-01" \
  -d '{
    "amount":       4800,
    "currency":     "USD",
    "recipient_id": "rcp_018a4f",
    "rail":         "ach",
    "metadata":     {"invoice": "INV-2418"}
  }'

# response · 201 Created
{
  "id":        "po_8fc042a...",
  "status":    "queued",
  "eta":       "2026-04-21T18:00Z",
  "fee":       0.35,
  "receipt":   "0x8f…c042"
}
Capabilities

Everything Payouts does, in the API.

$

Payouts

Create, cancel, refund on 26 rails across 140+ countries. Batch or single.

/v3/payouts

Recipients

KYC/KYB a vendor or beneficiary. Save for reuse. Tokenize bank creds.

/v3/recipients

Accounts

Open local accounts in 40 currencies. Transfer, convert, reconcile.

/v3/accounts

Cards

Issue virtual & physical cards. Set controls, fund, freeze, retire.

/v3/cards

Invoices

Create, send, track AR/AP invoices. Auto-match payments.

/v3/invoices
§

Tax

W-9/W-8 collection, TIN match, 1099 e-file, sales tax calc.

/v3/tax

Agents & Identity

Mint agent DIDs, scope permissions, audit every signed call.

/v3/agents

Onboarding

Hosted or embedded vendor onboarding. White-labelable.

/v3/onboarding

Reports & Events

Webhooks, event stream, GL sync, audit logs, exports.

/v3/events
API Reference

184 endpoints. One spec.

v3 · 2026-03-01 OpenAPI spec ↓

Payouts

Create, retrieve, cancel, and trace payouts across 38 rails. Status webhooks fire on every state change; idempotency keys are required on POST.

POST/v3/payoutsCreate a payout on any supported railGA
GET/v3/payoutsList payouts, paginated & filterableGA
GET/v3/payouts/:idRetrieve status, receipts, and rail eventsGA
PATCH/v3/payouts/:idUpdate memo, metadata, or scheduled dateGA
POST/v3/payouts/:id/cancelCancel a payout before it leaves the railGA
POST/v3/payouts/:id/reverseInitiate a return for a settled payoutGA
POST/v3/payouts/:id/retryRetry a failed payout on a fallback railGA
GET/v3/payouts/:id/traceWire-level trace incl. SWIFT GPI hopsGA
GET/v3/payouts/:id/receiptSigned PDF receipt with rail proofGA
GET/v3/payouts/:id/eventsFull event history for a single payoutGA
POST/v3/payouts/quoteQuote fees, FX, and ETA before sendingGA
POST/v3/payouts/simulateSandbox-only — simulate any rail outcomeGA
POST/v3/payouts/:id/disputeOpen a dispute for a settled payoutBETA
GET/v3/payouts/insightsAggregate metrics by rail / corridorBETA

Batches

Queue up to 10,000 payouts in one call. Atomic preflight, partial failures, CSV import, and resumable processing.

POST/v3/payouts/batchQueue up to 10,000 payouts in one callGA
GET/v3/payouts/batch/:idGet batch summary + per-row statusGA
GET/v3/payouts/batchList recent batches with progressGA
POST/v3/payouts/batch/:id/approveApprove and release a queued batchGA
POST/v3/payouts/batch/:id/cancelCancel a batch (only pending rows abort)GA
POST/v3/payouts/batch/preflightValidate a batch without sendingGA
POST/v3/payouts/batch/csvUpload a CSV; auto-mapped to schemaGA
GET/v3/payouts/batch/:id/errors.csvDownload per-row errors for re-uploadGA

FX & Conversions

Mid-market FX with 0.4% spread. Lock rates for 60s, schedule conversions, hedge with forwards.

POST/v3/conversionsFX between balances at mid-market + 0.4%GA
GET/v3/conversions/:idRetrieve a conversion + executed rateGA
GET/v3/conversionsList conversions, filterable by pairGA
POST/v3/conversions/quoteQuote a rate, locked for 60 secondsGA
GET/v3/fx/ratesLive mid-market rates · 87 currenciesGA
GET/v3/fx/rates/historyHistorical rate series for a pairGA
POST/v3/fx/forwardsLock an FX rate up to 12 months outBETA
POST/v3/fx/sweepsAuto-sweep balances above a thresholdBETA
DEL/v3/fx/forwards/:idCancel a pending forward contractBETA

Accounts & Balances

Open local accounts in 47 jurisdictions. Multi-currency balances with realtime ledger entries.

POST/v3/accountsOpen a local account (EUR, GBP, JPY, …)GA
GET/v3/accountsList accounts across currenciesGA
GET/v3/accounts/:idRetrieve account details + IBAN/ACHGA
PATCH/v3/accounts/:idUpdate nickname, metadata, allowed railsGA
DEL/v3/accounts/:idClose an account once balance hits zeroGA
GET/v3/balancesAll balances across currenciesGA
GET/v3/balances/:currencySingle-currency balance + holdsGA
GET/v3/balances/projectedProjected balance incl. pendingGA
POST/v3/accounts/:id/transfersInternal transfer between own accountsGA
GET/v3/accounts/:id/statementsMonthly statements as PDF / CSVGA
POST/v3/accounts/:id/fundingPull funds from a linked sourceGA
GET/v3/accounts/:id/holdsList active holds and their reasonsGA

Recipients

Create, screen, tokenize, and update payees. Re-screen automatically on detail changes.

POST/v3/recipientsCreate a recipient, run KYC/KYB, tokenize credsGA
GET/v3/recipientsList recipients, paginated & searchableGA
GET/v3/recipients/:idRetrieve recipient + screening stateGA
PATCH/v3/recipients/:idUpdate details — triggers re-screenGA
DEL/v3/recipients/:idSoft-delete a recipient (audit retained)GA
POST/v3/recipients/:id/methodsAttach a payout method (bank, card, wallet)GA
GET/v3/recipients/:id/methodsList a recipient's payout methodsGA
DEL/v3/recipients/:id/methods/:midRemove a payout methodGA
POST/v3/recipients/:id/verifyTrigger micro-deposit or instant verifyGA
GET/v3/recipients/:id/payoutsList payouts to a recipientGA
POST/v3/recipients/importBulk import via CSV with field mappingGA
POST/v3/recipients/:id/onboarding-linkGenerate a hosted onboarding URLGA
GET/v3/recipients/:id/auditFull change history for a recipientGA
POST/v3/recipients/:id/notesAttach internal notes / tagsGA
POST/v3/recipients/dedupeFind and merge duplicate recipientsBETA

KYC / KYB

Identity, business, and beneficial-owner screening. OFAC, PEP, sanctions, adverse media. Continuous monitoring.

POST/v3/kyc/individualRun KYC on an individualGA
POST/v3/kyc/businessRun KYB on an entity + UBOsGA
GET/v3/kyc/:idRetrieve a screening resultGA
GET/v3/kyc/:id/documentsUnderlying docs & provider scoresGA
POST/v3/kyc/:id/rescreenForce a re-screen against current listsGA
POST/v3/kyc/:id/overrideCompliance override with reason codeGA
POST/v3/kyc/sanctions/checkStandalone OFAC / EU / UK / UN checkGA
POST/v3/kyc/pep/checkPEP & adverse-media screenGA
POST/v3/kyc/document/verifyVerify ID document authenticityGA
POST/v3/kyc/biometricLiveness + selfie matchGA
GET/v3/kyc/lists/versionCurrent sanctions list version + dateGA

Payment rails

Inspect rail availability, cutoffs, fees, and corridor health by recipient country.

GET/v3/railsList all 38 supported railsGA
GET/v3/rails/:railDetail: cutoffs, fees, ETAs, limitsGA
GET/v3/rails/:rail/healthLive health + last incidentGA
GET/v3/rails/availabilityWhich rails work for a given corridorGA
POST/v3/rails/routeSmart-route a payment to cheapest railGA
GET/v3/rails/cutoffsSame-day cutoffs by rail & tzGA
GET/v3/rails/corridorsAll supported send corridorsGA
GET/v3/rails/feesEffective fee table for your accountGA
POST/v3/rails/preferenceSet per-corridor rail preferencesBETA

Cards

Issue virtual and physical Visa/Mastercard cards. Per-card spend controls, MCC limits, single-use tokens.

POST/v3/cardsIssue a virtual or physical card with controlsGA
GET/v3/cardsList cards filtered by holder / statusGA
GET/v3/cards/:idRetrieve a card + masked PANGA
PATCH/v3/cards/:idUpdate spend cap, MCCs, statusGA
POST/v3/cards/:id/freezeFreeze a card immediatelyGA
POST/v3/cards/:id/unfreezeUnfreeze a frozen cardGA
DEL/v3/cards/:idPermanently terminate a cardGA
GET/v3/cards/:id/transactionsTransactions for a single cardGA
GET/v3/cards/:id/panPCI-scope full-PAN reveal (signed JWT)GA
POST/v3/cards/:id/replaceReplace a lost or stolen cardGA
POST/v3/cards/single-useIssue a one-time-use card tokenGA
POST/v3/cards/:id/3ds/verify3DS step-up verification challengeGA
GET/v3/cards/:id/auth-streamSSE stream of live auth attemptsBETA

Invoices

Draft, send, schedule, and reconcile invoices. Hosted pay-pages, Stripe-style line items, multi-currency.

POST/v3/invoicesDraft, send, or schedule an invoiceGA
GET/v3/invoicesList invoices with filtersGA
GET/v3/invoices/:idRetrieve an invoice + statusGA
PATCH/v3/invoices/:idEdit a draft invoiceGA
POST/v3/invoices/:id/sendSend a drafted invoiceGA
POST/v3/invoices/:id/voidVoid an invoice with audit reasonGA
POST/v3/invoices/:id/remindTrigger a reminder emailGA
POST/v3/invoices/:id/mark-paidManually reconcile to a payoutGA
GET/v3/invoices/:id/pdfDownload a hosted PDFGA
POST/v3/invoices/templatesCreate a reusable invoice templateGA
POST/v3/invoices/recurringRecurring invoice scheduleGA

Accounts receivable

Inbound payments, virtual accounts, dunning, and aging reports.

POST/v3/ar/virtual-accountsCreate a unique receiving IBAN/ACHGA
GET/v3/ar/virtual-accounts/:idRetrieve virtual account + activityGA
GET/v3/ar/incomingList inbound paymentsGA
POST/v3/ar/incoming/:id/matchMatch an incoming to an invoiceGA
POST/v3/ar/dunningConfigure a dunning sequenceGA
GET/v3/ar/agingAR aging report (current, 30/60/90)GA
POST/v3/ar/credit-notesIssue a credit note against an invoiceGA
GET/v3/ar/customers/:id/balanceCustomer outstanding balanceGA

Tax & 1099

TIN matching, e-filing, recipient consent flows, state filings. NEC, MISC, K, and 1042-S supported.

POST/v3/tax/tin-matchReal-time TIN/Name match against IRSGA
POST/v3/tax/w9Collect a W-9 with hosted formGA
POST/v3/tax/w8benCollect a W-8BEN / W-8BEN-EGA
GET/v3/tax/formsList collected tax formsGA
GET/v3/tax/forms/:idRetrieve a single tax formGA
POST/v3/tax/filingsE-file 1099-NEC / MISC / K for a tax yearGA
GET/v3/tax/filings/:idFiling status + IRS ack receiptGA
POST/v3/tax/filings/:id/correctFile a correction (1099-CORR)GA
POST/v3/tax/state-filingsState-level filings where requiredGA
POST/v3/tax/1042sForeign-payee 1042-S filingsGA
GET/v3/tax/recipients/:id/totalsYTD totals for a single recipientGA
POST/v3/tax/withholding/calcCalculate backup-withholding amountGA
POST/v3/tax/consentCapture e-delivery consentGA
GET/v3/tax/forms/:id/pdfHosted PDF of recipient copyGA

Agents

Mint scoped DIDs for AI agents. Spend caps, session windows, MCC allowlists, instant revocation.

POST/v3/agentsMint a scoped agent identity (DID)BETA
GET/v3/agentsList agents in your orgBETA
GET/v3/agents/:idRetrieve an agent + current scopeBETA
PATCH/v3/agents/:id/scopeTighten or extend an agent's permissionsBETA
DEL/v3/agents/:idRevoke an agent — freezes all pending txnsBETA
POST/v3/agents/:id/sessionsOpen a bounded execution sessionBETA
POST/v3/agents/:id/sessions/:sid/endEnd a session and seal the audit logBETA
GET/v3/agents/:id/transactionsAll txns initiated by an agentBETA
GET/v3/agents/:id/auditCryptographic audit log (hash-chained)BETA
POST/v3/agents/:id/credentials/rotateRotate signing keysBETA
POST/v3/agents/:id/approvalsStep-up: require human approval over $XBETA
GET/v3/agents/registryPublic registry lookup of an agent DIDBETA

Policies & scopes

Composable policies for agents, users, and API keys. Time, amount, geo, MCC, recipient-tag, and rail predicates.

POST/v3/policiesCreate a reusable policyGA
GET/v3/policiesList policiesGA
GET/v3/policies/:idRetrieve a policyGA
PATCH/v3/policies/:idEdit a policy (versioned)GA
DEL/v3/policies/:idArchive a policyGA
POST/v3/policies/:id/attachAttach to agents, users, or keysGA
POST/v3/policies/simulateDry-run a policy against a payoutGA
GET/v3/scopesCatalog of available scope stringsGA
POST/v3/policies/:id/testTest against a fixture corpusBETA

Events & webhooks

62 event types. HMAC-signed, retried for 72h. Filter by type, entity, or tag. SSE stream available.

GET/v3/eventsStream all webhook events as SSEGA
GET/v3/events/:idRetrieve a single eventGA
GET/v3/events/typesList all 62 event types + schemasGA
POST/v3/webhooksCreate a webhook subscriptionGA
GET/v3/webhooksList active webhook subscriptionsGA
PATCH/v3/webhooks/:idUpdate URL, filters, or secretGA
DEL/v3/webhooks/:idDelete a webhookGA
POST/v3/webhooks/:id/testSend a synthetic event payloadGA
GET/v3/webhooks/:id/deliveriesRecent delivery attempts + responsesGA
POST/v3/webhooks/:id/deliveries/:did/replayReplay a single deliveryGA

Reports & ledger

Double-entry ledger, exports, and finance-grade reports. Reconciles to the cent.

GET/v3/ledger/entriesStream double-entry ledger linesGA
GET/v3/ledger/balancesAccount-level balances at any timestampGA
GET/v3/ledger/journal/:idA journal entry with both legsGA
POST/v3/reportsSchedule a report (CSV/Parquet)GA
GET/v3/reports/:idReport status + signed download URLGA
GET/v3/reports/templatesBuilt-in templates (recon, AR, AP, tax)GA
POST/v3/exports/quickbooksPush entries to QuickBooks OnlineGA
POST/v3/exports/netsuitePush journal entries to NetSuiteGA
POST/v3/exports/xeroSync to XeroGA
GET/v3/recon/:idReconciliation status for a windowGA
POST/v3/recon/runTrigger an ad-hoc reconciliationBETA

Auth & keys

API keys, OAuth, mTLS, scoped tokens, and IP allowlists.

POST/v3/keysCreate a scoped API keyGA
GET/v3/keysList API keys (last4 only)GA
DEL/v3/keys/:idRevoke an API keyGA
POST/v3/keys/:id/rotateRotate without downtime (grace window)GA
POST/v3/oauth/tokenExchange grant for an access tokenGA
POST/v3/oauth/introspectIntrospect a token's scopes & ttlGA
POST/v3/auth/sessionsMint a short-lived dashboard sessionGA
POST/v3/auth/ip-allowlistManage org-wide IP allowlistGA

Org & admin

Org settings, members, roles, audit log, SSO, and SCIM provisioning.

GET/v3/orgRetrieve current orgGA
PATCH/v3/orgUpdate org settingsGA
POST/v3/org/membersInvite a memberGA
GET/v3/org/membersList org membersGA
PATCH/v3/org/members/:idChange role / permissionsGA
DEL/v3/org/members/:idRemove a memberGA
POST/v3/org/rolesCreate a custom roleGA
GET/v3/org/auditOrg-wide audit log (signed)GA
POST/v3/org/ssoConfigure SAML / OIDC SSOGA
POST/v3/scim/v2/UsersSCIM 2.0 user provisioningGA
184 endpoints · 18 resources · OpenAPI 3.1 Download spec ↓  ·  Postman collection ↓  ·  Changelog →
SDKs · First-party, four languages

Generated from the spec. Always current.

TypeScript / Node

v8.2.1 · 412k/wk
npm i @payouts/sdk

Python

v8.2.0 · 184k/wk
pip install payouts

Ruby

v8.1.4 · 42k/wk
gem install payouts

Go

v8.2.0 · 28k/wk
go get github.com/payouts-com/go

Java, .NET, and PHP are in public beta · see client libraries →

Webhooks & Events

Every state change, pushed.

62 event types. Delivered over HTTPS or SSE. Signed with HMAC-SHA256. Retried with exponential backoff for 72 hours. Filterable by type, entity, or tag.

payout.created
payout.sent
payout.settled
payout.failed
invoice.paid
invoice.overdue
recipient.kyc.updated
tax.1099.filed
agent.spend_cap_hit
agent.revoked
account.balance.low
compliance.flag.raised
event · payout.settled
{
  "id":       "evt_0x8f40a2c...",
  "type":     "payout.settled",
  "version":  "2026-03-01",
  "created":  1734567890,
  "data": {
    "payout_id":   "po_8fc042a...",
    "amount":      4800,
    "currency":    "USD",
    "rail":        "ach",
    "recipient_id": "rcp_018a4f",
    "settled_at":   1734567884,
    "receipt":      "0x8f…c042"
  },
  "signature": "sha256=4a2b…"
}
System status

All systems operational.

99.997% uptime · last 90 days
API · api.payouts.com
30 days agoToday
Dashboard · app.payouts.com
30 days agoToday
MCP server · mcp.payouts.com
30 days agoToday
ACH / RTP rails
30 days agoToday
Wire / SWIFT
30 days agoToday
FX · Conversions
30 days agoToday
Start building

Sandbox keys. No card required.

Create free account Read the full reference