CHECKOUT
Réussir l’intégration de l’API Checkout de CinetPay
Page | 1
Table des matières
1. Note de version ............................................................................................................................................ 3
2. Présentation................................................................................................................................................. 4
3. Prérequis ...................................................................................................................................................... 4
4. Paiement ...................................................................................................................................................... 5
4.1. Initialisation de paiement .......................................................................................................................... 5
4.2. Page de paiement ...................................................................................................................................... 6
5. Notification .................................................................................................................................................. 7
5.1 Pourquoi la notification ? ........................................................................................................................... 7
5.2 Configurer l’url de notification .................................................................................................................... 7
6. Retour sur le site marchand.......................................................................................................................... 8
7. Mise à jour de la documentation.............................................................................................................. 9
8. Annexe 1 : Tableau de codes de l’api ...................................................................................................... 10
Page | 2
1. Note de version
Page | 3
2. Présentation
Ce tutoriel s’adresse à tous les marchands CinetPay qui veulent encaisser des fonds via le mobile money, les
cartes bancaires ou les wallets par des processus automatiques (Site internet, App mobiles etc…).
3. Prérequis
Avant de procéder à l’intégration de l’api de collecte de fonds, vous devez :
Page | 4
4. Paiement
URL https://api-checkout.cinetpay.com/v2/payment
Page | 5
Exemple {
"code": "ERROR_CODE",
Réponse :
"message": "ERROR_MESSAGE ",
Erreur "description": "ERROR_DESCRIPTION",
"api_response_id": "RESPONSE_ID_HERE"
}
NB : • Vous devez sauvegarder le payment_token dans votre base de données
Page | 6
5. Notification
5.1 Pourquoi la notification ?
Le lien/url de notification (notify_url) est appelé par CinetPay pour vous notifier de l’état d’un paiement.
Cette url doit être disponible pour accueillir des requêtes HTTP de type GET et POST.
Le notify_url doit être le seul mécanisme à implémenter pour synchroniser automatiquement les paiements
vers votre site marchand. CinetPay appellera ce lien après chaque update pour vous notifier du changement
de statuts pendant le déroulement d'une transaction.
A la fin d’un paiement, CinetPay appelle systématiquement l’url de notification pour le service concerné.
Cet appel a pour but d’informer le site marchand de l’état du paiement (même si le client ne revient pas sur
le site). Le marchand pourra ainsi valider sa commande si le paiement est vérifié et accepté.
NB : l’url de notification n’est pas nécessaire si vous n’avez pas besoin d’avoir le statut des paiements dans
votre base de données, car vous avez l’historique de vos paiements dans votre backoffice CinetPay.
Ex : Application de collecte de dons
NB :
• CinetPay ne vous enverra pas les informations sur le statut de la transaction pour éviter certaine faille
de sécurité comme le man in the middle.
• L’url de notification peut être appelée plusieurs fois.
• Il faudra toujours effectuer un appel à l’API de « Vérification de transaction » de paiement pour
avoir les vraies valeurs du paiement.
Pour vous assurer de l’intégrité des données que vous traitez, vous devez effectuer certaines vérifications :
- Votre url de notification doit être une api qui attend un appel en POST et en paramètre le
cpm_trans_id (Correspondant à la variable transaction_id) ;
- Après l’avoir obtenu, vous devez vérifier dans votre base de données que le statut du paiement
concerné est déjà à succès ;
- Si oui alors vous ne faites plus de mise à jour ;
- Si non vous devez faire un appel à l’api de vérification de transaction avec le cpm_trans_id, pour
obtenir le statut de la transaction chez CinetPay et mettre ainsi à jour le statut dans votre base de
données.
Page | 7
Nom Vérification de transaction
Description Utiliser cette requête pour avoir le statut d’un paiement
URL https://api-checkout.cinetpay.com/v2/payment/check
Après son paiement, le client sera redirigé vers l’url que vous avez soumis dans la variable return_url
définis à l’initialisation du paiement.
Le lien/url de retour (return_url) est appelé par CinetPay pour renvoyer le client sur votre site. Cette url
doit être disponible pour accueillir des requêtes HTTP de type GET et POST.
CinetPay ajoute en paramètre le payment_token qui vous permet d’identifier pour quel client le retour est
effectuer, vous pouvez ainsi affichez un message à vos utilisateurs après leur paiement pour les informer si
Page | 8
leur paiement est réussi ou non, cela est possible étant donné que vous avez le statut de la transaction via
votre url de notification (voir chapitre précédent).
Page | 9
8. Annexe 1 : Tableau de codes de l’api
Code Message
*00* SUCCES
*201* CREATED
*600* PAYMENT_FAILED
*602* INSUFFICIENT_BALANCE
*603* SERVICE_UNAVAILABLE
*604* OTP_CODE_ERROR
*608* MINIMUM_REQUIRED_FIELDS
*606* INCORRECT_SETTINGS
*609* AUTH_NOT_FOUND
*610* ERROR_PAYMETHOD_NOTFOUND
*611* ERROR_AMOUNT_TYPE
*612* ERROR_CURRENCY_NOTVALID
*613* ERROR_SITE_ID_NOTVALID
*614* ERROR_FORMAT_TRANSACTION_DATE
*615* ERROR_LANGUAGE_NOTVALID
*616* ERROR_PAGE_ACTION_NOTVALID
*617* ERROR_PAYMENT_CONFIG_NOTVALID
*618* ERROR_API_VERSION_NOTVALID
*619* ERROR_SIGNATURE_DONT_MATCHED
*620* ERROR_DOUBLE_PAYEMNT
*621* ERROR_OMPAY_UNAVAILABLE
*622* ERROR_MOMOPAY_UNAVAILABLE
*623* WAITING_CUSTOMER_TO_VALIDATE
*624* UNKNOWN_ERROR
*625* ABONNEMENT_OR_TRANSACTIONS_EXPIRED
*626* ERROR_FLOOZPAY_UNAVAILABLE
*627* TRANSACTION_CANCEL
*628* ERROR_AMOUNT_FORMAT
*635* ERROR_PHONE_NUMBER_NOT_FOUND
*636* ERROR_PHONE_NUMBER_NOT_SUPPORTED
*637* ERROR_PHONE_PREFIX_NOT_SUPPORTED
*641* ERROR_AMOUNT_TOO_LOW
*642* ERROR_AMOUNT_TOO_HIGH
*662* WAITING_CUSTOMER_PAYMENT
*663* WAITING_CUSTOMER_OTP_CODE
*664* WAITING_CUSTOMER_PAYMENT_AT_OPERATOR_SIDE
*804* OPERATOR_UNAVAILABLE
*807* DAILY_MAX_NUMBER_TRANSACTION_REACHED
Page | 10
*808* DAILY_MAX_AMOUNT_TRANSACTION_REACHED
*809* MONTHLY_MAX_AMOUNT_TRANSACTION_REACHED
*810* MONTHLY_MAX_NUMBER_TRANSACTION_REACHED
*811* WEEKLY_MAX_AMOUNT_TRANSACTION_REACHED
*812* WEEKLY_MAX_NUMBER_TRANSACTION_REACHED
Page | 11