Skip to content
API documentation

Codes, event types and pages. Nothing leaves your browser.

Payments API

A multi-tenant payments API: customers, accounts, deposits, payouts, transfers, swaps and the compliance surfaces around them. Every response is enveloped, every list is cursor-paginated with no total, every mutation takes an Idempotency-Key, and every error carries a debugId that also appears in our log line.

97 operations across 82 paths, contract version 0.0.0. Everything on this site is generated from the repository that implements it — the reference from the committed contract, the catalogues from the code that raises and emits, the quickstart from the file a newcomer follows.

Start here

Start

  • QuickstartFrom nothing to a confirmed payout in mock mode, unassisted.
  • ConceptsMinor units, idempotency, cursor pagination, debugId.
  • TypeScript SDKInstall, the typed client, automatic idempotency and pagination.

Reference

  • API referenceEvery operation, generated from the contract itself.
  • Error catalogueEvery error code, its HTTP status, and whether retrying can help.
  • Event catalogueEvery event type we publish, its version and its payload.
  • Rate limitsOur caps, our windows, and what a 429 from us means.

Guides

  • IdempotencyThe four replay and conflict cases, and the headers that name them.
  • WebhooksSignature verification, the raw-body trap, and the attempt ladder.

Authentication

A bearer token on every call. Keys are prefixed pcp_sk_ (secret), pcp_rk_ (restricted) and pcp_pk_ (publishable); only the first two can move money, and only the last is safe in a browser.

curl http://127.0.0.1:8080/v1/whoami \
  -H "Authorization: Bearer pcp_sk_…"

The command-line tool is pcp. It arrives at M2 — until then the quickstart is curl and the typed TypeScript SDK.

What this API covers

  • accounts
  • activation
  • api_keys
  • bank_accounts
  • beneficiaries
  • challenges
  • counterparties
  • customer_sessions
  • customers
  • deposits
  • eligibility
  • events
  • exchange_rates
  • hosted
  • identity
  • identity_verifications
  • invitations
  • members
  • payouts
  • request_logs
  • swaps
  • test_helpers
  • transactions
  • transfers
  • usage
  • wallets
  • webhook_endpoints

Nothing on this site is transcribed. If a page and the platform disagree, the build fails — which is why the numbers above are safe to quote.