← Home
W3Pay developers
Card validation, immediate charges, scheduled (deferred) charges, refunds. Powered by W3 identity; every request is scoped to the caller's org.
Access
Sign in with your W3 account to use the interactive tester and view your org's logs and payments.
Authenticate
- Mint an API key in the Admin Dashboard → API Keys tab, or via the CLI:
pnpm mint-api-key --org <org> --name <name>
The secret (w3pay_sk_...) is shown once — store it securely.
- Send the key on every
/api/v1/payments/* request:
Authorization: Bearer w3pay_sk_...
Idempotency-Key: <uuid> // for POSTs
Scopes: payment:read grants GET access; payment:write grants POST and DELETE access.
Keys are org-scoped — org_id is derived from the key automatically.
Card validation
POST /api/v1/cards/validate
{ "pan": "4242424242424242", "expMonth": 12, "expYear": 2028, "cvv": "123" }
Immediate payments
POST /api/v1/payments // create (pspToken from client-side tokenization)
GET /api/v1/payments // list — filters: status, currency, from, to, limit, cursor
GET /api/v1/payments/:id // status of a single payment
POST /api/v1/payments/:id/refund // refund (currently manual-only for axo)
Amount is in the smallest unit (agorot for ILS). Supported currencies: ILS, USD, EUR, GBP.
Deferred (scheduled) payments
POST /api/v1/payments/deferred // store card-on-file, charge on billing_date
GET /api/v1/payments/deferred // list — filters: status, from, to, limit, cursor
GET /api/v1/payments/deferred/:id // status of a single deferred payment
DELETE /api/v1/payments/deferred/:id // cancel before it runs
Cards are validated locally at create time (Luhn + BIN + expiry + CVV). PSP-side validity is checked when the scheduler charges on the billing day. A successful charge fires a signed webhook to your webhook_url.