Money movement,
Hold, convert and send money in 38 currencies, take payments and issue cards from your own product. One REST API, typed SDKs and a sandbox that behaves like production.
npm i @pocket/node
pip install pocket
import Pocket from "@pocket/node";
const pocket = new Pocket(process.env.POCKET_KEY);
// Same key, same transfer: retries never pay twice
const transfer = await pocket.transfers.create(
{
amount: 2500_00,
source_currency: "EUR",
target_currency: "RON",
recipient: "rcp_8Hc2Lq",
reference: "Invoice 2026-114",
},
{ idempotencyKey: "inv-2026-114" },
);
console.log(transfer.status); // "paid"Six APIs. One set of keys.
/v1/accounts
Accounts
Open balances, fetch statements and issue local account details per customer.
/v1/transfers
Transfers
Send money to 160 countries at the real rate, with live status for every leg.
/v1/payments
Payments
Accept cards, wallets and bank payments through hosted or embedded checkout.
/v1/payouts
Payouts
Pay up to 5,000 recipients in a single batch, with per-item results.
/v1/cards
Cards
Issue virtual and physical cards with spending controls set in code.
FX
Quote and lock rates for up to 48 hours, then convert on your schedule.
API uptime over the last 12 months
median response time in Europe
official SDKs: Node, Python, Go, Java
duplicate payments with idempotency keys
Every change in state fires a signed webhook. Retries back off for 72 hours, and you can replay any event from the dashboard.
{
"id": "evt_4Kq81mZ",
"type": "transfer.paid",
"created": "2026-10-14T14:02:11.274Z",
"data": {
"id": "tr_9fJ2xP",
"amount": 250000,
"source_currency": "EUR",
"target_amount": 1238501,
"target_currency": "RON",
"status": "paid"
}
}From sandbox to live money.
Step 1
Get sandbox keys
Sign up and get test keys straight away. No sales call, no contract.
Step 2
Test cards, accounts and every failure case, with webhooks to localhost.
Step 3
Go live
Swap the keys once your business account is verified. Same code, real money.
