Paiement CIB/Edahabiya
Accepter les paiements CIB/Edahabiya
Créez une transaction de paiement sécurisée en utilisant la passerelle de paiement CIB/Edahabiya avec prise en charge de la signature chiffrée et de la vérification de sécurité.
Point de terminaison API
GET
https://sofizpay.com/make-cib-transaction/Générateur d’URL
Lorsque keep_return_url = False, vous recevrez un callback signé pour vérifier la validité de la transaction.
URL générée :
http
https://sofizpay.com/make-cib-transaction/?account=GDNS27ISCGOIJFXC6CM4O5SVHVJPSWR42QEBWUFF24N5VVHGW73ZSJNQ&amount=150.75&full_name=Ahmed+Ben+Ali&phone=%2B213555123456&email=ahmed.benali%40example.com&return_url=https%3A%2F%2Fmystore.com%2Fpayment-callback&webhook_url=https%3A%2F%2Fmystore.com%2Fapi%2Fcib-webhook&invoice_id=INV-2026-001&language=en&memo=Order+%2312345&redirect=yes&keep_return_url=TrueParamètres de la requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
account | string | Obligatoire | Votre compte Sofizpay pour recevoir les paiements |
amount | number | Obligatoire | Montant du paiement en Dinar Algérien |
full_name | string | Obligatoire | Nom complet du client |
phone | string | Obligatoire | Numéro de téléphone du client (de préférence au format international) |
email | string | Obligatoire | Adresse e-mail du client |
return_url | string (URL) | Optionnel | L’URL de redirection après le paiement |
webhook_url | string (URL) | Optionnel | URL optionnelle (HTTP/HTTPS) pour recevoir des notifications webhook asynchrones sur le statut du paiement |
invoice_id | string | Optionnel | ID de facture optionnel pour lier le paiement à une facture existante |
language | string | Optionnel | Langue de la passerelle CIB ('ar' par défaut) |
memo | string | Optionnel | Note optionnelle pour la transaction (tronquée à 28 octets) |
redirect | 'yes' | 'no' | Obligatoire | Indique si la redirection automatique doit être effectuée ou non |
keep_return_url | 'True' | 'False' | Optionnel | Si True, le callback sera signé et la redirection inclura la signature chiffrée |
Réponse réussie (200)
Lorsque la transaction est créée avec succès
json
{
"success": true,
"transaction_id": "600aed3b-8dd2-490c-8e45-9b81267b1f2b",
"cib_transaction_id": "2517039448",
"payment_url": "https://cib.satim.dz/payment/merchants/SATIM/payment_ar.html?mdOrder=HNsBw1u4An3Q44BCJ7LI",
"amount": "150.75",
"status": "pending_user_transfer_start",
"more_info_url": "https://sofizpay.com/sep24/transaction/more_info?id=600aed3b-8dd2-490c-8e45-9b81267b1f2b",
"webhook_url": "https://mystore.com/api/cib-webhook",
"cib_response": {
"errorCode": "0",
"orderId": "isezBL9uLxWRBIBE56T7",
"formUrl": "https://cib.satim.dz/payment/merchants/SATIM/payment_ar.html?mdOrder=HNsBw1u4An3Q44BCJ7LI"
}
}Réponse d’erreur (400)
Lorsqu’il y a des paramètres invalides ou manquants
json
{
"status": "error",
"message": "Invalid or missing parameters."
}Notifications Webhook et Événements
Fournissez un paramètre webhook_url lors de l'initialisation d'une transaction pour recevoir des notifications instantanées de serveur à serveur dès que le statut de la transaction change.
L'URL du webhook doit utiliser le protocole HTTP ou HTTPS et contenir un nom de domaine valide.
Lorsque le paiement est approuvé ou refusé sur la passerelle CIB/Edahabiya, SofizPay envoie une requête HTTP POST à votre URL webhook avec le contenu JSON suivant :
cib.payment.updated (payment_status: "success")
json
1{
2 "event": "cib.payment.updated",
3 "payment_status": "success",
4 "transaction_id": "bb979126-4e55-49dd-8ecc-a1d59867d2b0",
5 "cib_transaction_id": "5965287001",
6 "order_id": "satim_order_a1b2c3d4",
7 "order_number": 5965287001,
8 "order_status": 2,
9 "amount": 150000,
10 "currency": "012",
11 "error_code": null,
12 "error_message": null,
13 "action_code": null,
14 "action_code_description": null,
15 "resp_code": "00",
16 "resp_code_desc": "Approved",
17 "message": "https://your-domain.com/api/webhook/success1500005965287001",
18 "signature": "MEQCIFz8v982hfkjdsf983274hfkjsdf...=="
19}Champs du Payload Webhook
| Paramètre | Type | Description |
|---|---|---|
event | string | Identifiant du type d'événement, toujours 'cib.payment.updated' |
payment_status | 'success' | 'failed' | Statut du paiement : 'success' ou 'failed' |
transaction_id | string (UUID) | Identifiant unique de transaction généré par SofizPay (UUID) |
cib_transaction_id | string | Numéro de commande de transaction CIB/Edahabiya (SATIM) |
order_id | string | Identifiant de commande SATIM |
order_number | number | Numéro de commande numérique SATIM |
order_status | number | Code de statut SATIM (ex. : 2 pour approuvé/déposé, 6 pour refusé) |
amount | number | Montant en centimes (ex. : 150000 = 1500.00 DZD) |
currency | string | Code numérique de devise ISO 4217 (012 pour DZD) |
error_code | number | null | Code d'erreur bancaire en cas d'échec (ou null si succès) |
error_message | string | null | Message d'erreur descriptif de la banque (ou null si succès) |
action_code | number | null | Code d'action bancaire (ex. : 116 pour fonds insuffisants) |
action_code_description | string | null | Description du code d'action bancaire |
resp_code | string | Code de réponse bancaire ('00' pour Approuvé, '05' pour Refusé) |
resp_code_desc | string | Description du code de réponse ('Approved' ou 'Declined') |
message | string (URL/text) | Chaîne de vérification concaténée utilisée pour vérifier la signature |
signature | string (Base64) | Signature cryptographique encodée en Base64 pour authentifier les données |
CIB/Edahabiya Sandbox - Documentation de l'environnement de test
Le CIB/Edahabiya Sandbox est un environnement de test qui simule la passerelle de paiement SATIM CIB/Edahabiya. Il permet aux développeurs frontend de tester l'ensemble du flux de transaction de dépôt CIB/Edahabiya sans se connecter au véritable système de paiement SATIM.
Pour afficher les transactions Sandbox dans l'application SofizPay, vous devez d'abord activer le 'Mode Test' (Testing Mode) dans les paramètres de l'application.
CIB/Edahabiya Sandbox - Documentation de l'environnement de test - 1. Créer une transaction CIB/Edahabiya
GET
GET sofizpay.com/make-cib-transaction/Crée une transaction de dépôt CIB/Edahabiya fictive et renvoie une URL de paiement.
Cartes de test
| Numéro de carte | Expiration | CVV | Résultat |
|---|---|---|---|
6280581001234567 | 12/28 | 123 | Approuvé |
6280581009876543 | 12/29 | 456 | Approuvé |
L'utilisation de tout OTP autre que 123456 entraînera une erreur "Code OTP invalide", quelle que soit la carte utilisée.
Meilleures pratiques de sécurité
Utilisez HTTPS pour les URLs de retour
Ajoutez un paramètre order_id interne dans votre URL de retour (ex. ?order_id=12345) pour faciliter le suivi et la réconciliation
Lors de la réception du callback, enregistrez le cib_transaction_id avec votre order_id interne dans votre base de données
Après l'enregistrement, récupérez le cib_transaction_id à partir de votre order_id interne, puis vérifiez le statut de la transaction en appelant l'endpoint de vérification de transaction CIB/Edahabiya avec ce cib_transaction_id