Developer Overview & Quick Start — Payment Gateway API | AQ Pay

One API.Every provider behind it.

Predictable REST resources, idempotent writes, signed webhooks and a sandbox that simulates providers, declines and 3DS. Integrate once; routing decides the rest.

node · create a payment
const payment = await tpp.payments.create({
  amount: 12800,
  currency: "EUR",
  payment_method: { token: "tok_…" },
  routing: { profile: "eu-cards-default" },
  merchant_id: "mer_sample_01",
}, { idempotencyKey: "order-8841" });

// payment.status → "authorized"
// payment.route  → { provider: "acquirer_a", attempt: 1 }
API overview

Six concepts cover the whole API.

{{ c.path }}{{ c.t }}{{ c.d }}
Quick start

First sandbox payment in four steps.

Click a step to view it. Everything here runs against the sandbox — no real money, simulated providers.

{{ step.file }}sandbox
{{ step.code }}

{{ step.note }}

Sandbox

Simulate providers, declines and cascades.

The sandbox is a separate environment with its own keys. Test card numbers and amounts trigger specific outcomes so you can exercise your error handling, 3DS flows and webhook consumers before go-live.

TriggerOutcome
{{ t.k }}{{ t.v }}
Integration guides

Guides by integration shape.

{{ g.t }}{{ g.d }}{{ g.status }}
SDKs

Thin, generated clients — the REST API is the source of truth.

Server libraries wrap authentication, idempotency and retries; the web component handles hosted fields. Published libraries will be listed here with versions as they ship.

{{ k.n }}