Démarrage rapide
Maxiopak est une couche logicielle posée sur Stripe. Les paiements sont traités par Stripe, sous votre propre contrat marchand. Maxiopak orchestre, signe, mesure et présente.
Vous aurez besoin :
- D'un compte Stripe actif (sandbox ou production)
- D'une clé API Maxiopak (fournie après acceptation en beta)
- De Node.js 18+ ou Python 3.10+
Installation
# JavaScript
npm install @maxiopak/node
# Python
pip install maxiopak
Premier paiement
import Maxiopak from '@maxiopak/node';
const mx = new Maxiopak(process.env.MAXIOPAK_KEY);
const session = await mx.checkout.sessions.create({
amount: 23200, // en centimes
currency: 'eur',
customer_email: 'camille@maison-sauvage.com',
success_url: 'https://maison-sauvage.com/merci',
cancel_url: 'https://maison-sauvage.com/panier'
});
console.log(session.url); // redirigez le client ici
En sandbox, utilisez la carte test 4242 4242 4242 4242 avec n'importe quelle date future et CVC.
Authentification
Chaque appel API doit inclure votre clé secrète dans l'en-tête Authorization, préfixée par Bearer .
curl https://api.maxiopak.com/v1/sessions \
-H "Authorization: Bearer mxk_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json"
Deux jeux de clés sont émis : mxk_test_* pour la sandbox et mxk_live_* pour la production. Ne committez jamais vos clés en clair.
Référence API
L'API expose un ensemble réduit d'objets : sessions, payments, customers, refunds, events.
Créer une session de checkout
POST /v1/sessions
{
"amount": 23200,
"currency": "eur",
"payment_methods": ["card", "apple_pay", "google_pay", "sepa"],
"customer_email": "camille@maison-sauvage.com",
"metadata": { "order_id": "MS-10421" },
"success_url": "https://maison-sauvage.com/merci",
"cancel_url": "https://maison-sauvage.com/panier"
}
Récupérer un paiement
GET /v1/payments/pi_3OqXyZ...
Response 200
{
"id": "pi_3OqXyZ...",
"status": "succeeded",
"amount": 23200,
"currency": "eur",
"payment_method": "card",
"created": "2026-05-17T09:14:22Z"
}
Webhooks
Maxiopak émet des événements signés HMAC SHA-256 vers l'URL que vous configurez. Vérifiez la signature avant tout traitement.
POST https://votre-app.com/webhooks/maxiopak
Headers:
Maxiopak-Signature: t=1716...,v1=abc123...
Content-Type: application/json
Body:
{
"id": "evt_...",
"type": "payment.succeeded",
"data": { ... }
}
Événements principaux : session.created, payment.succeeded, payment.failed, refund.created, dispute.opened.
SDK
Deux SDK officiels sont maintenus, en miroir l'un de l'autre.
@maxiopak/node— TypeScript natif, ESM & CJSmaxiopak(Python) — typed, async-ready
Sandbox
La sandbox est gratuite, illimitée et activée par défaut. Toutes les requêtes signées avec mxk_test_* ne déclenchent aucun mouvement d'argent.
Erreurs
Toutes les erreurs renvoient un objet JSON normalisé.
{
"error": {
"type": "invalid_request",
"code": "amount_too_small",
"message": "Le montant minimum est de 50 centimes.",
"param": "amount"
}
}
Changelog
Voir la liste complète des évolutions API et SDK sur changelog.maxiopak.com.
