Documentation API
Intégrez IZIflow Africa à votre application en quelques minutes. Notre API REST moderne vous permet d'accepter tous les moyens de paiement africains avec une seule intégration.
Introduction
L'API IZIflow Africa vous permet d'accepter des paiements de vos clients à travers toute l'Afrique. Nous supportons les paiements Mobile Money (Orange Money, MTN Money, Moov Money, Wave, etc.), les cartes bancaires, et les portefeuilles électroniques.
https://api.IZIflow/v1Sandbox:
https://sandbox.api.IZIflow/v1
Démarrage rapide
Voici un exemple simple pour créer un paiement:
curl -X POST https://api.IZIflow/v1/payments \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"currency": "XOF",
"method": "orange_money",
"phone": "+221701234567",
"description": "Achat en ligne"
}'
Authentification
Toutes les requêtes API doivent être authentifiées avec votre clé API. Vous pouvez obtenir votre clé API depuis votre tableau de bord après inscription.
Incluez votre clé API dans l'en-tête Authorization de chaque requête:
Authorization: Bearer YOUR_API_KEY
Moyens de paiement supportés
IZIflow Africa supporte une large gamme de moyens de paiement à travers l'Afrique. Voici les principaux services disponibles:
Paiement par carte de crédit (Canada)
Acceptez les paiements par carte Visa, Mastercard et Amex au Canada via Moneris.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
amount |
number | Oui | Montant en dollars (ex: 100.50) |
currency |
string | Oui | CAD (Dollar canadien) |
credit_card |
string | Oui | Numéro de carte (13-19 chiffres) |
expiry_month |
string | Oui | Mois d'expiration (MM) |
expiry_year |
string | Oui | Année d'expiration (YY) |
cvd |
string | Recommandé | Code CVV (3-4 chiffres) |
customer_email |
string | Non | Email du client |
description |
string | Non | Description de la transaction |
Exemple de requête (PHP)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.iziflow.com/v1/payments/card');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
]);
$data = [
'amount' => 100.50,
'currency' => 'CAD',
'credit_card' => '4242424242424242',
'expiry_month' => '12',
'expiry_year' => '25',
'cvd' => '123',
'customer_email' => '[email protected]',
'description' => 'Achat produit',
];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
if ($result['success']) {
echo "✅ Paiement approuvé : " . $result['data']['authorization'];
} else {
echo "❌ Paiement refusé";
}
Exemple de requête (cURL)
curl -X POST https://api.iziflow.com/v1/payments/card \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 100.50,
"currency": "CAD",
"credit_card": "4242424242424242",
"expiry_month": "12",
"expiry_year": "25",
"cvd": "123",
"customer_email": "[email protected]",
"description": "Achat produit"
}'
Réponse de succès (200)
{
"success": true,
"message": "Transaction completed successfully",
"data": {
"payment_id": "pay_a1b2c3d4e5f6",
"transaction": {
"number": "123456789",
"amount": "100.50",
"currency": "CAD"
},
"authorization": "AUTH123",
"card_type": "Visa",
"status": "completed",
"created_at": "2024-03-22T10:30:00Z"
}
}
• Visa :
4242424242424242• Mastercard :
5454545454545454• Amex :
378282246310005Expiration : N'importe quelle date future (ex: 12/25)
CVD : N'importe quel 3-4 chiffres (ex: 123)
• Ne jamais logger les numéros de carte complets
• Toujours utiliser HTTPS
• Valider CVD et AVS quand possible
• Stocker uniquement les 4 derniers chiffres
Documentation technique complète
Pour des exemples avancés et la documentation interactive Swagger, consultez notre documentation Moneris →
Créer un paiement
Pour initier une transaction, envoyez une requête POST au endpoint /payments avec les détails du paiement.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
amount |
number | Oui | Montant en centimes (ex: 5000 = 50.00) |
currency |
string | Oui | Code devise ISO (XOF, XAF, USD, EUR, etc.) |
method |
string | Oui | Moyen de paiement (voir liste ci-dessus) |
phone |
string | Conditionnel | Numéro de téléphone (requis pour Mobile Money) |
description |
string | Non | Description de la transaction |
metadata |
object | Non | Données personnalisées (max 16 clés) |
callback_url |
string | Non | URL de redirection après paiement |
Exemple de requête
{
"amount": 5000,
"currency": "XOF",
"method": "orange_money",
"phone": "+221701234567",
"description": "Achat produit #12345",
"metadata": {
"order_id": "ORD-12345",
"customer_id": "CUST-789"
},
"callback_url": "https://monsite.com/success"
}
Réponse de succès (200)
{
"status": "success",
"data": {
"payment_id": "pay_a1b2c3d4e5f6",
"amount": 5000,
"currency": "XOF",
"status": "pending",
"method": "orange_money",
"created_at": "2024-02-15T10:30:00Z",
"payment_url": "https://pay.IZIflow/p/a1b2c3d4"
}
}
Vérifier un paiement
Vous pouvez vérifier le statut d'un paiement à tout moment en utilisant son ID.
Exemple de réponse
{
"status": "success",
"data": {
"payment_id": "pay_a1b2c3d4e5f6",
"amount": 5000,
"currency": "XOF",
"status": "completed",
"method": "orange_money",
"phone": "+221701234567",
"created_at": "2024-02-15T10:30:00Z",
"completed_at": "2024-02-15T10:31:23Z",
"metadata": {
"order_id": "ORD-12345"
}
}
}
Statuts possibles
| Statut | Description |
|---|---|
pending |
Paiement en attente de confirmation |
processing |
Paiement en cours de traitement |
completed |
Paiement complété avec succès |
failed |
Paiement échoué |
cancelled |
Paiement annulé |
Webhooks
Les webhooks vous permettent de recevoir des notifications en temps réel lorsqu'un événement se produit sur votre compte IZIflow Africa.
Événements disponibles
payment.created- Un nouveau paiement a été créépayment.completed- Un paiement a été complétépayment.failed- Un paiement a échouépayment.cancelled- Un paiement a été annulérefund.created- Un remboursement a été créé
Structure du webhook
{
"event": "payment.completed",
"timestamp": "2024-02-15T10:31:23Z",
"data": {
"payment_id": "pay_a1b2c3d4e5f6",
"amount": 5000,
"currency": "XOF",
"status": "completed"
}
}
Gestion des erreurs
L'API utilise des codes HTTP standards pour indiquer le succès ou l'échec d'une requête.
Codes de réponse HTTP
| Code | Signification | Description |
|---|---|---|
200 |
OK | La requête a réussi |
400 |
Bad Request | Paramètres invalides ou manquants |
401 |
Unauthorized | Clé API invalide ou manquante |
404 |
Not Found | Ressource non trouvée |
429 |
Too Many Requests | Limite de taux atteinte |
500 |
Internal Server Error | Erreur serveur |
Format des erreurs
{
"status": "error",
"error": {
"code": "invalid_request",
"message": "Le paramètre 'amount' est requis",
"param": "amount"
}
}
SDKs & Librairies
Nous proposons des SDKs officiels pour faciliter l'intégration dans vos applications.
Exemple avec Laravel
use IZIflow\Laravel\Facades\IZIflow;
$payment = IZIflow::createPayment([
'amount' => 5000,
'currency' => 'XOF',
'method' => 'orange_money',
'phone' => '+221701234567',
]);
if ($payment->success) {
return redirect($payment->payment_url);
}