Developers

Payments API
for bank transfers, FX and payouts

One REST API for accounts, FX, payouts and stablecoins across 30+ corridors. Idempotency keys on every write, signed webhooks, and a free sandbox to test in.

OpenAPI 3.1·HMAC-signed webhooks·Free sandbox
// Node 18+ has fetch built in. No SDK needed.
// Your first call: who is this key for?
const res = await fetch('https://api.kwiikpay.io/api/v1/partner/me', {
  headers: { 'X-Api-Key': process.env.KWIIKPAY_API_KEY },
});

// Every v1 response: { success, status_code, message, data }
const { data } = await res.json();
console.log(data.customer_id, data.scopes);
What you get

Everything You Need in a Modern Payment Processing API

REST

Plain HTTP

Verb-based REST, predictable URLs, JSON in / JSON out. If you can curl, you can integrate.

Webhooks

Signed webhook events

Events such as deposit.received reach your endpoint signed with HMAC-SHA256. Failed deliveries are retried with exponential backoff.

Keys

Scoped API keys

Create keys in your dashboard under Settings, then API. Each key carries scopes and an IP allowlist, and goes in the X-Api-Key header.

Sandbox

A free sandbox

Build and test against the sandbox before any real money moves. Our team issues sandbox keys, normally the same business day.

Idempotency

Idempotency on every mutation

Pass an Idempotency-Key header. Retry safely; we return the original response.

OpenAPI

OpenAPI 3.1 spec

Versioned and machine-readable. Generate a client in the language you use.

API surface

Build Global Payment Integrations with One REST API

Paths are relative to https://api.kwiikpay.io/api/v1/partner. {customerId} is your own ID, which GET /me returns. The API reference lists every endpoint.

GET/meIdentify your API key: your customer ID and scopes
GET/customers/{customerId}/onboarding/statusCheck onboarding status before moving money
POST/customers/{customerId}/banking/accountsOpen a fiat account
GET/customers/{customerId}/banking/balanceRead your fiat balance
POST/customers/{customerId}/banking/beneficiariesAdd a beneficiary
POST/customers/{customerId}/banking/withdrawalsSend a payout to a beneficiary
POST/customers/{customerId}/banking/conversion-requestsConvert between currencies
POST/customers/{customerId}/payout-batchesSend many payouts in one batch
POST/customers/{customerId}/crypto/withdrawalsSend a stablecoin withdrawal
Questions

Payments API — FAQs

No. The KwiikPay API moves money by bank transfer and, for eligible customers, by stablecoin: accounts, FX conversion and payouts. It does not offer card acceptance.

Yes. Add a beneficiary, then create a withdrawal: GBP over Faster Payments, CHAPS or BACS, EUR over SEPA, and USD over ACH or wire, with SWIFT enabled per account and destination. Every write takes an Idempotency-Key, so a retry with the same key does not send the payment twice.

Yes, the same API. Convert between GBP, EUR and USD, and pay out across borders by SEPA or by wire, including SWIFT where it is enabled. KwiikPay’s wider network covers 30+ corridors and 80+ countries through regulated banking partners.

Request sandbox keys: the sandbox is free, and our team issues keys, normally the same business day. Production keys are created in your dashboard (Settings, then API) once your onboarding is approved; each key carries scopes and an IP allowlist.

API access and signed webhooks depend on your plan. The pricing page shows which plans include them.

Open your first IBAN today.

Open a multi-currency account, subject to KYB, screening and our risk appetite.

Talk to sales