Bank-grade encryption No KYC to buy Instant virtual cards
Early access: Gpaynow Card API v2 is in development and no card issuer is connected yet. Join the waitlist; no payment is taken until your access is approved. Request access
Developer hub · API v2.0.0-preview

Build with the Gpaynow Card API

Guides, API reference and code samples for issuing and managing virtual cards. REST over HTTPS, JSON in and out, Bearer-key auth, signed webhooks and a full test mode.

Base URLhttps://gpaynow.net/api/v2
terminal
# 1. Check your test key
curl https://gpaynow.net/api/v2/ping \
  -H "Authorization: Bearer gpn_test_..."

# 200 OK
{ "data": { "ok": true },
  "meta": { "request_id": "req_01HF7Q...",
            "environment": "test" } }
Quickstart

Issue a test card in 4 steps

Use a gpn_test_ key: test mode approves KYC instantly and uses simulated money. Send an Idempotency-Key on every POST so retries are safe.

  1. AuthenticateBearer key on every request
  2. Create a cardholderPOST /cardholders
  3. Pick a productGET /products
  4. Issue the cardPOST /cards
Step 1 · Authenticate
curl https://gpaynow.net/api/v2/ping \
  -H "Authorization: Bearer gpn_test_..."
Essentials

Conventions you'll use everywhere

EnvironmentKey prefixMoneyKYCRate limit
Testgpn_test_SimulatedApproved instantly60 / min
Livegpn_live_Real, from your balanceReal verificationBy plan (60–300 / min)
Webhooks

Verify every event

Each delivery has a Gpaynow-Signature: t=…,v1=… header. Compute HMAC-SHA256(secret, t + "." + raw_body), compare in constant time and reject events older than 5 minutes.

card.issued card.funded card.frozen card.terminated card.3ds_otp transaction.authorized transaction.cleared transaction.declined cardholder.kyc_approved balance.low All events →
verify signature
import crypto from "node:crypto";

export function verify(rawBody, header, secret) {
  const { t, v1 } = Object.fromEntries(header.split(",").map(p => p.split("=")));
  if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
  const expected = crypto.createHmac("sha256", secret)
    .update(`${t}.${rawBody}`).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(v1));
}
Tools & resources

Developer resources

Code samples Available

curl, Node.js, PHP and Python on every endpoint in the reference.

Sandbox Early access

Test keys and simulated money for approved early-access members.

OpenAPI spec At launch

Machine-readable spec for code generation and API clients.

Postman collection At launch

Every request ready to run against your test key.

Changelog

2.0.0-preview · 16 Oct 2026: first public preview of the v2 reference. Endpoints open to early-access members first.

Full changelog

Developer support

Stuck on an integration? Open a ticket from the contact page with your request ID (meta.request_id) and we'll trace it.

Plans and business questions: Card API pricing.

Sandbox access

Get your sandbox keys

Tell us what you are building. Approved early-access members receive gpn_test_ keys by email so they can integrate before launch.

  • Test keys with simulated money
  • Instant KYC approval in test mode
  • Webhook test events to your endpoint
  • Reply on WhatsApp, Telegram or email within 1–2 business days
Prefer to talk now? Message our team directly. We usually reply within minutes.
How should we contact you?
Plain text only: no files, code or HTML. By sending this form you agree that Gpaynow may contact you about the Card API. Live access requires business verification (KYB). See our privacy policy.

We may use cookies or any other tracking technologies when you visit our website, including any other media form, mobile website, or mobile application related or connected to help customize the Site and improve your experience.

Learn More Accept All