Introduction
L'API de paiement Atelier vous permet d'encaisser des paiements mobile money et carte bancaire depuis votre propre site ou application, en Afrique de l'Ouest et au-delà. Créez une clé API depuis votre tableau de bord, puis appelez nos endpoints REST.
URL de base
https://myateliers.store/api/public/v1Toutes les réponses sont en JSON et les montants sont exprimés en XOF (entiers, sans décimales).
Authentification
Chaque requête doit inclure votre clé API secrète. Elle est visible une seule fois à sa création : conservez-la côté serveur, ne l'exposez jamais dans du code client.
Authorization: Bearer atl_live_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/jsonL'en-tête X-API-Key est également accepté.
Frais & services
Pour l'utilisation via API, les frais de service sont de 10 % du montant, prélevés automatiquement sur chaque transaction réussie. Le champ net indique le montant qui vous revient.
| Service | Moyens de paiement |
|---|---|
| service_1 | Mobile money et carte bancaire |
| service_2 | Mobile money et carte bancaire |
Créer un paiement
POST /v1/payments
curl -X POST https://myateliers.store/api/public/v1/payments \
-H "Authorization: Bearer atl_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"description": "Commande #1024",
"customer": {
"name": "Awa Kone",
"email": "awa@example.com",
"phone": "+2250700000000"
},
"return_url": "https://monsite.com/merci",
"callback_url": "https://monsite.com/webhooks/atelier",
"metadata": { "order_id": "1024" }
}'Réponse 201 :
{
"success": true,
"data": {
"reference": "ATLM3F2K9XA1B2",
"checkout_url": "https://myateliers.store/pay/ATLM3F2K9XA1B2",
"amount": 5000,
"fee": 500,
"net": 4500,
"currency": "XOF",
"service": "service_1",
"status": "pending"
}
}Redirigez ensuite votre client vers checkout_url. À la fin du paiement, il est renvoyé sur votre return_url.
Vérifier un paiement
GET /v1/payments/{reference}
curl https://myateliers.store/api/public/v1/payments/ATLM3F2K9XA1B2 \
-H "Authorization: Bearer atl_live_xxx"{
"success": true,
"data": {
"reference": "ATLM3F2K9XA1B2",
"status": "paid",
"amount": 5000,
"fee": 500,
"net": 4500,
"currency": "XOF",
"customer": { "name": "Awa Kone", "email": "awa@example.com", "phone": "+2250700000000" },
"metadata": { "order_id": "1024" },
"created_at": "2026-01-05T10:00:00.000Z",
"paid_at": "2026-01-05T10:02:11.000Z"
}
}Statuts possibles : pending, paid, failed.
Lister les paiements
GET /v1/payments?limit=20
curl "https://myateliers.store/api/public/v1/payments?limit=20" \
-H "Authorization: Bearer atl_live_xxx"Webhooks
Si vous fournissez un callback_url, nous y envoyons une requête POST dès que le paiement est confirmé ou échoue.
{
"event": "payment.success",
"data": {
"reference": "ATLM3F2K9XA1B2",
"status": "paid",
"amount": 5000,
"fee": 500,
"net": 4500,
"currency": "XOF",
"service": "service_1",
"customer": { "name": "Awa Kone", "email": "awa@example.com", "phone": "+2250700000000" },
"metadata": { "order_id": "1024" }
}
}⚠️ Sécurité
Les webhooks ne sont pas encore signés. Vous DEVEZ impérativement vérifier le statut final via l'endpoint GET /v1/payments/{reference} dès réception avant de délivrer votre produit ou service.
Codes d'erreur
| HTTP | Code | Signification |
|---|---|---|
| 400 | invalid_json | Corps de requête illisible |
| 401 | unauthorized | Clé API absente, invalide ou révoquée |
| 404 | not_found | Transaction introuvable |
| 422 | validation_error | Paramètre manquant ou invalide |
| 502 | payment_error | Le service de paiement a refusé la demande |
Prêt à démarrer ?
Générez votre clé API en quelques secondes depuis votre tableau de bord et commencez à encaisser.