Payca beta API — all operations
Every endpoint of the PayCA API as plain HTML: no JavaScript, no client-side rendering. 121 operations across 14 resource groups, specification version 1.0.0.
Health
Service liveness/health probe.
-
GET
/healthHealth check
Accounts
Operations for listing accounts and their balances.
-
GET
/v1/accountsRetrieve Accounts -
POST
/v1/accounts/admin-depositAdmin deposit (correction credit to an account) -
POST
/v1/accounts/admin-withdrawalAdmin withdrawal (write-off from an account) -
POST
/v1/accounts/offramp-depositOfframp deposit (master credit + transfer) -
GET
/v1/accounts/{id}/transactionsRetrieve Account Transactions -
GET
/v1/client/settingsWhat the calling client's accounts can do -
GET
/v2/accountsRetrieve Accounts with Enabled BINs -
GET
/v2/accounts/{accountId}/balanceRetrieve an account balance -
POST
/v2/accounts/{accountId}/exchange-quotePrice an exchange between two accounts -
POST
/v2/accounts/{accountId}/exchangesExchange between two accounts -
POST
/v2/accounts/{id}/topup/cardTop up an account using an external payment card -
GET
/v2/accounts/{id}/topup/{txId}Retrieve account card top-up status -
POST
/v2/accounts/{id}/withdraw/cardWithdraw funds from an account to an external payment card -
GET
/v2/accounts/{id}/withdraw/{txId}Retrieve account card withdrawal status
Cards
Issue, manage, and retrieve cards and details.
-
GET
/v1/cardsList Cards -
POST
/v1/cardsIssue a New Card -
GET
/v1/cards/{id}Retrieve Card by ID -
DELETE
/v1/cards/{id}Close Card -
GET
/v1/cards/{id}/decline-rateCard Decline Rate -
POST
/v1/cards/{id}/freezeFreeze Card -
GET
/v1/cards/{id}/sensitiveGet card sensitive info -
POST
/v1/cards/{id}/tokenizeStart Card Tokenization -
POST
/v1/cards/{id}/topupTop Up Card -
GET
/v1/cards/{id}/transactionsRetrieve Card Transactions -
POST
/v1/cards/{id}/unfreezeUnfreeze Card -
POST
/v1/cards/{id}/withdrawWithdraw from Card -
GET
/v2/accounts/{id}/transactionsRead versioned mixed account history -
POST
/v2/cardsAccept a buffered card issuance quote -
GET
/v2/cards/issue/capabilityRead selected client, source and programme admission -
POST
/v2/cards/issue/quoteQuote explicit buffered issuance -
GET
/v2/cards/operations/{operation_id}Read an accepted operation and its exact financial result -
GET
/v2/cards/{id}Read card balance separately from its buffer -
DELETE
/v2/cards/{id}Request provider-confirmed closure -
POST
/v2/cards/{id}/freezeFreeze with a manual or insufficient-funds reason while preserving buffer and other blocks -
POST
/v2/cards/{id}/topupAccept a buffered card funding quote -
POST
/v2/cards/{id}/topup/quoteQuote card-directed funding with at most fifty percent allocation -
GET
/v2/cards/{id}/transactionsRead versioned mixed card history -
POST
/v2/cards/{id}/unfreezeRemove the manual or insufficient-funds freeze reason -
POST
/v2/cards/{id}/withdrawWithdraw card principal without accessing the buffer
Transactions
Retrieve transactions and related activity.
-
GET
/v1/cards/transactions/{id}Retrieve Transaction
Deposits
Provider-independent account deposits (top-ups from outside Payca).
The funding provider is an internal routing decision and never appears in
the API. Statuses are normalised: a deposit reads as completed only once
settlement was confirmed AND the balance credit was recorded, so a browser
returning from a checkout page never means funds are available.
Integrations discover an available route, quote it, create an idempotent deposit order, redirect the payer to hosted checkout, and then use deposit status and webhooks to reconcile the final outcome.
-
POST
/v2/accounts/{accountId}/deposit-quoteQuote a deposit -
GET
/v2/accounts/{accountId}/depositsList deposits for an account -
POST
/v2/accounts/{accountId}/depositsCreate a deposit -
GET
/v2/accounts/{accountId}/deposits/{depositId}Retrieve a deposit -
GET
/v2/accounts/{accountId}/funding-optionsList funding options for an account
Webhooks
Configure and manage webhooks.
-
GET
/v1/webhooksList Webhooks -
POST
/v1/webhooksSet Webhook URL -
DELETE
/v1/webhooksDelete Webhook -
POST
/v1/webhooks/resendResend Webhooks
Sandbox
Endpoints for sandbox/testing flows.
-
POST
/sandbox/transactionsCreate sandbox transaction
Bins
Deprecated endpoints to retrieve BINs and fees.
-
GET
/v1/binsList the BIN catalog -
GET
/v1/bins/{bin}/capacityGet per-cardholder issuance capacity on a BIN -
GET
/v1/bins/{bin}/cardholder-registrationCan a new cardholder be registered on this BIN right now
Users
User management: create, update, and retrieve users and their accounts.
-
GET
/v1/usersList Users -
POST
/v1/usersCreate User -
POST
/v1/users/transferTransfer between Payca accounts -
GET
/v1/users/{id}Get User by ID -
GET
/v1/users/{id}/account/transactionsList User Account Transactions -
POST
/v1/users/{id}/accountsOpen a user account in another currency -
POST
/v1/users/{id}/binsUpsert User BIN -
GET
/v1/users/{id}/card/transactionsList User Card Transactions -
GET
/v1/users/{id}/cardholderGet User Cardholder -
POST
/v1/users/{id}/cardholderCreate User Cardholder -
PATCH
/v1/users/{id}/statusUpdate User Status
Cardholders
Cardholder management: list, get, create cardholders. Reference data for registration (cities, occupations, regions) and file upload.
-
GET
/v1/cardholdersList Client Cardholders -
GET
/v1/cardholders/citiesList Cardholder Cities -
POST
/v1/cardholders/filesUpload Cardholder File -
GET
/v1/cardholders/occupationsList Cardholder Occupations -
GET
/v1/cardholders/regionsList Cardholder Regions -
POST
/v1/cardholders/validateValidate a B2C Cardholder -
GET
/v1/cardholders/{id}Get Cardholder -
PATCH
/v1/cardholders/{id}Update Cardholder Data -
POST
/v1/cardholders/{id}/photosUpload Cardholder Photos -
POST
/v1/cardholders/{id}/retryRetry Submission of a Failed Cardholder -
POST
/v1/cardholders/{id}/submitSubmit Cardholder to Provider
KYC
KYC verification for B2C card issuance. Upload identity documents and selfie, submit for admin review, track status via webhooks.
-
GET
/v1/users/{id}/kycGet User KYC Status -
GET
/v1/users/{id}/kyc/documentsList KYC Documents -
POST
/v1/users/{id}/kyc/documentsUpload KYC Document -
GET
/v1/users/{id}/kyc/documents/{docId}Get KYC Document -
DELETE
/v1/users/{id}/kyc/documents/{docId}Delete KYC Document -
GET
/v1/users/{id}/kyc/documents/{docId}/contentDownload KYC Document Content -
PATCH
/v1/users/{id}/kyc/documents/{docId}/statusUpdate KYC Document Status (Admin) -
PATCH
/v1/users/{id}/kyc/notesUpdate User KYC Notes (Admin) -
PATCH
/v1/users/{id}/kyc/statusUpdate User KYC Status (Admin) -
POST
/v1/users/{id}/kyc/submitSubmit KYC for Review
Exchange
Exchange operations (rates, orders, withdrawals) and settlement balance queries.
-
POST
/v1/exchange/ordersCreate exchange order -
GET
/v1/exchange/orders/{orderId}Get exchange order status -
GET
/v1/exchange/ratesGet exchange rates -
GET
/v1/exchange/settlement/balanceGet settlement balance -
POST
/v1/exchange/settlement/check-increaseCheck settlement balance increase -
GET
/v1/exchange/withdrawal-destinationsList allowed withdrawal destinations -
POST
/v1/exchange/withdrawalsCreate fiat withdrawal -
GET
/v1/exchange/withdrawals/{withdrawalId}Get withdrawal status
Virtual IBAN
Dedicated IBANs for your company. A EUR IBAN receives SEPA payments and pays
out by SEPA. An IBAN bound to a stablecoin (EUR or USD, held in USDC or USDT)
converts what it receives into its asset; you withdraw in crypto to your
address book or sell for a SEPA payout. PayCA opens the IBANs for you after
your company verification and sets them up individually; until then every
call returns 403 capability_disabled. Fees, including monthly ones, are
deducted from the IBAN balance. Subscribe a webhook of type virtual_iban
(POST /v1/webhooks) for the events of stablecoin IBANs: see
VirtualIbanWebhook.
Step-by-step flow, statuses and error codes: Virtual IBAN guide.
-
GET
/v1/corporate-banking/{companyId}/accountGet virtual IBAN -
GET
/v1/corporate-banking/{companyId}/addressesList your withdrawal addresses -
GET
/v1/corporate-banking/{companyId}/crypto-accountsList your crypto accounts -
GET
/v1/corporate-banking/{companyId}/crypto-accounts/historyHistory of your crypto accounts -
GET
/v1/corporate-banking/{companyId}/crypto-accounts/{accountId}Get one crypto account -
POST
/v1/corporate-banking/{companyId}/crypto-accounts/{accountId}/crypto-payoutsWithdraw in crypto -
POST
/v1/corporate-banking/{companyId}/crypto-accounts/{accountId}/fiat-payoutsWithdraw to a bank account -
POST
/v1/corporate-banking/{companyId}/crypto-accounts/{accountId}/fiat-payouts/quoteQuote a withdrawal to a bank account -
POST
/v1/corporate-banking/{companyId}/crypto-accounts/{accountId}/usd-topupsTop up a crypto account from your USD account -
POST
/v1/corporate-banking/{companyId}/crypto-accounts/{accountId}/usd-transfersMove coins to your USD account -
GET
/v1/corporate-banking/{companyId}/crypto-payouts/{payoutId}Get a crypto withdrawal -
GET
/v1/corporate-banking/{companyId}/fiat-payouts/{payoutId}Get a withdrawal to a bank account -
GET
/v1/corporate-banking/{companyId}/ibansList your IBANs -
GET
/v1/corporate-banking/{companyId}/ibans/{ibanId}Get one IBAN -
POST
/v1/corporate-banking/{companyId}/ibans/{ibanId}/assetSwitch the coin of an IBAN -
GET
/v1/corporate-banking/{companyId}/ibans/{ibanId}/historyHistory of an IBAN -
POST
/v1/corporate-banking/{companyId}/payoutsPay out by SEPA -
GET
/v1/corporate-banking/{companyId}/payouts/{payoutId}Get a payout -
POST
/v1/corporate-banking/{companyId}/quoteQuote a payout -
POST
/v1/corporate-banking/{companyId}/transfersMove money to your own EUR account -
GET
/v1/corporate-banking/{companyId}/usd-topups/{topUpId}Get a top-up from your USD account -
GET
/v1/corporate-banking/{companyId}/usd-transfers/{transferId}Get a USD transfer
Payouts
-
GET
/v2/accounts/{accountId}/payout-optionsList payout options for an account -
POST
/v2/accounts/{accountId}/payout-quotePrice a payout without creating it -
GET
/v2/accounts/{accountId}/payoutsList payouts for an account -
POST
/v2/accounts/{accountId}/payoutsCreate a payout -
GET
/v2/accounts/{accountId}/payouts/{payoutId}Retrieve a payout