Quauryx/Documentation
// API v1 · STABLE

Intégrez en quelques heures.

Quickstart, référence API, SDKs, webhooks et sandbox. La doc qu'on aurait aimé lire quand on était nous-mêmes ingénieurs.

Quickstart // 5 min

Créez votre première session checkout en moins de 5 minutes. Vous aurez besoin d'un processeur de paiement déjà en place et de votre clé API Quauryx (disponible dans le dashboard une fois la beta activée).

1. Installer le SDK

terminal
SH
# npm
$ npm install @quauryx/node

# yarn
$ yarn add @quauryx/node

# pnpm
$ pnpm add @quauryx/node

2. Créer une session

checkout.ts
TS
import { Quauryx } from '@quauryx/node';

const quauryx = new Quauryx(process.env.QUAURYX_KEY!);

const session = await quauryx.checkout.create({
  amount: 4990,                // en cents
  currency: 'eur',
  customer: 'cus_8fa72b',
  methods: ['card', 'apple_pay', 'sepa', 'klarna'],
  ml_scoring: true,
  retry_strategy: 'smart',
  return_url: 'https://shop.acme.io/done',
});

// → 201 Created · 142ms
// → session.url = 'https://pay.quauryx.io/c/8fa72bcc'

3. Rediriger l'utilisateur

handler.ts
TS
export default async function handler(req, res) {
  const session = await createCheckout(req.body);
  res.redirect(302, session.url);
}
i

C'est tout. Quauryx orchestre la session, la 3DS, le scoring fraude et le routing vers votre processeur. Vous recevrez un webhook checkout.completed dès paiement validé.

Authentification // Bearer

L'API Quauryx utilise des clés bearer. Vous avez deux jeux distincts : test pour la sandbox, live pour la production. Ne partagez jamais une clé live côté client.

request
CURL
$ curl https://api.quauryx.io/v1/checkout/sessions \
    -H "Authorization: Bearer qx_live_4f2a8…" \
    -H "Content-Type: application/json" \
    -H "Idempotency-Key: req_8fa72b" \
    -d '{"amount":4990,"currency":"eur"}'

Toutes les requêtes doivent passer en HTTPS. L'en-tête Idempotency-Key est recommandé pour toute mutation : il garantit qu'une requête répétée n'aboutit qu'à une seule opération.

Sandbox // gratuit · illimité

L'environnement sandbox réplique 100% du comportement live, y compris webhooks, scoring ML et latence p95. Idéal pour les tests d'intégration et les pipelines CI.

  • Cartes test : 4242 4242 4242 4242 (succès), 4000 0000 0000 9995 (decline)
  • Webhook delivery : 100% fidèle, retry exponentiel inclus
  • Scoring ML : modèle réel, scores reproductibles

Checkout Sessions // resource

Une session représente une intention de paiement orchestrée. Elle inclut le routage, le scoring, les retries et la finalisation côté processeur.

POST/v1/checkout/sessions

Paramètres

ChampTypeDescription
amountinteger

Montant en plus petite unité monétaire (centimes pour EUR).

currencystring

Code ISO-4217 sur 3 lettres (eur, usd, gbp…).

customerstring

Identifiant client Quauryx ou de votre processeur. Optionnel pour les guests.

methodsstring[]

Liste des méthodes activées. Par défaut : toutes celles disponibles pour la devise.

ml_scoringboolean

Active le scoring anti-fraude ML. Par défaut true sur Glow et Nova.

retry_strategystring

off, basic, ou smart pour le retry intelligent.

return_urlstring

URL de redirection après paiement. Doit être HTTPS.

Exemple de réponse

201 Created
JSON
{
  "id": "session_8fa72bcc",
  "object": "checkout.session",
  "amount": 4990,
  "currency": "eur",
  "status": "open",
  "url": "https://pay.quauryx.io/c/8fa72bcc",
  "expires_at": 1721854320,
  "created": 1721850720,
  "livemode": true
}

Customers // resource

Les objets Customer stockent les profils acheteurs, leurs méthodes de paiement tokenisées et l'historique de scoring. Synchronisés en bidirectionnel avec votre processeur.

GET/v1/customers/:id
POST/v1/customers

Refunds // resource

Les remboursements sont relayés au processeur avec idempotence native. Vous pouvez rembourser partiellement, déclencher en webhook, ou planifier.

POST/v1/refunds
refund.ts
TS
await quauryx.refunds.create({
  payment_intent: 'pi_3Nx9aB…',
  amount: 2490,
  reason: 'requested_by_customer'
});

Codes d'erreur // HTTP semantics

Quauryx suit la sémantique HTTP standard. Les codes 4xx indiquent une erreur côté requête, les 5xx un incident côté plateforme.

CodeTypeDescription
400invalid_request

Paramètres manquants ou mal formés.

401unauthenticated

Clé API manquante ou invalide.

402payment_declined

Paiement refusé par l'émetteur ou le scoring fraude.

404not_found

Ressource inexistante.

409idempotency_conflict

Clé d'idempotence déjà utilisée avec corps différent.

429rate_limited

Trop de requêtes. Backoff exponentiel recommandé.

503service_unavailable

Plateforme dégradée. Voir status.quauryx.io.

Webhooks // événements

Quauryx envoie des webhooks signés HMAC-SHA256 pour chaque événement clé. Retry exponentiel sur 72h, dead letter queue accessible.

payload.json
EVENT
{
  "id": "evt_8fa9c1",
  "type": "checkout.completed",
  "created": 1721850921,
  "data": {
    "session_id": "session_8fa72bcc",
    "amount": 4990,
    "fraud_score": 12,
    "method": "apple_pay"
  }
}

Signatures HMAC // sécurité

Chaque webhook contient un en-tête Quauryx-Signature. Vérifiez-le systématiquement avant de traiter l'événement.

verify.ts
TS
import { verifyWebhook } from '@quauryx/node';

const event = verifyWebhook({
  payload: req.rawBody,
  signature: req.headers['quauryx-signature'],
  secret: process.env.QUAURYX_WEBHOOK_SECRET!
});

// → throws QuauryxSignatureError si invalide

SDKs officiels // 4 langages

SDKs maintenus en interne, releases mensuelles, typage strict. Open source sur GitHub.

  • @quauryx/node — TypeScript / JavaScript, Node 18+, Deno, Bun
  • quauryx-python — Python 3.10+, async natif
  • quauryx-go — Go 1.21+, context-aware
  • quauryx-ruby — Ruby 3.1+, threadsafe
i

Pas votre langage ? L'API REST est totalement documentée en OpenAPI 3.1. Vous pouvez générer un SDK custom en quelques minutes.