Endpoint : Génération de Lien de Paiement
Cet endpoint vous permet de créer un lien de paiement unique que vous pouvez partager avec vos clients.
Authentification
L'authentification se fait via une clé API fournie dans l'en-tête : Authorization: Bearer VOTRE_CLÉ_API.
Type de requête : POST
URL d’appel : https://paylink.pixelinnov.net/api/create-link
Paramètres du Corps de la Requête (Body)
| Paramètre | Description |
|---|---|
| type | Définit le type de lien : `0` pour un montant fixe (utilise `amount`), `1` pour un montant variable (utilise `amount_min` et `amount_max`). |
| amount | Montant de la transaction. |
| amount_min | Montant minimum . |
| amount_max | Montant maximum . |
| description | Description de l'achat ou du service. |
| services | Tableau d'objets définissant les pays et opérateurs autorisés. |
| callback_url | URL où rediriger le client après le paiement. |
| customer_name | Nom complet du client. |
| customer_email | Adresse email du client. |
| allow_comment | Autoriser le client à laisser un commentaire (true/false). |
| comment_titles | Titres pour les champs de commentaire (tableau de chaînes). |
| expired_at | Date et heure d'expiration du lien (format YYYY-MM-DD HH:MM:SS). |
Précisions sur les paramètres
Gestion des montants avec le champ `type`
- `type: 0` (Montant Fixe) : Pour un paiement unique. Le champ `amount` est alors obligatoire.
- `type: 1` (Montant Variable) : Pour permettre au client de choisir un montant. Les champs `amount_min` et `amount_max` sont alors obligatoires.
Format de la date `expired_at`
Le format de date attendu est YYYY-MM-DD HH:MM:SS. Si ce champ est omis, le lien n'expirera pas.
L'objet `services`
Ce tableau définit les options de paiement à proposer au client.
| Paramètre | Description |
|---|---|
| countryCode | Code du pays sur 2 caractères (ISO 3166-1 alpha-2). |
| operatorNames | Tableau de noms d'opérateurs pour restreindre le choix. |
Exemple Complet : Options Avancées
{
"type": 0,
"amount": 5,
"description": "Achat crédit téléphonique",
"customer_name": "eudes",
"callback_url": "https://votresite.com/confirmation",
"expired_at": "2025-09-15T23:59:59Z",
"allow_comment": true,
"comment_titles": ["Numéro client", "Référence"],
"services": [
{
"countryCode": "CI",
"operatorNames": ["Orange", "Wave"]
},
{
"countryCode": "SN",
"operatorNames": ["Wave"]
}
]
}Clarification sur l'OTP
Le paramètre `om_otp` n'est pas utilisé lors de la création du lien de paiement. La validation par OTP, si nécessaire, se fait par le client final sur la page de paiement générée par le lien.
Exemple de Réponse (Succès)
Si la requête est valide, l'API retourne une réponse avec le statut et le lien de paiement généré.
{
"data": {
"id": 424,
"p_id": 93,
"customer_name": "Confort_XAFf",
"token": "************************************************************",
"link": "pay.paylink.sn/payment/v1/************************************************************",
"type": "0",
"amount": 200,
"amount_min": 0,
"amount_max": 0,
"created_at": "2025-09-10T08:36:38.000+00:00",
"expired_at": null,
"updated_at": "2025-09-10T08:36:38.000+00:00",
"is_active": 1
},
"message": "link is generated success ...",
"statut_code": 200
}Endpoint : Reversement (Payout)
Cet endpoint est utilisé pour initier un transfert d'argent (cash-out) depuis votre compte partenaire vers le compte mobile money d'un bénéficiaire.
Authentification
L'authentification se fait via votre clé API partenaire, fournie dans l'en-tête (header) de la requête. Le format attendu est : Authorization: Bearer VOTRE_CLÉ_API.
⏳ Important : Temps de Réponse Variable
Cet endpoint ne retourne pas une réponse immédiate. Il attend activement le statut final de la transaction (Succès ou Échec) pendant un maximum de 20 secondes.
Nous vous conseillons de configurer un timeout d'au moins 30 secondes sur votre client HTTP pour éviter les erreurs de connexion expirée.
Le champ `state` dans la réponse
Le champ `state` dans la réponse finale peut avoir 3 valeurs :
- SUCCESSFUL : Le reversement a été effectué avec succès.
- FAILED : Le reversement a échoué.
- PENDING : Le statut final n'a pas pu être obtenu après 20 secondes. Le statut final sera notifié plus tard sur votre URL d'IPN si elle est configurée.
URL complète :
https://paylink.pixelinnov.net/api/public-reversement
Paramètres du Corps de la Requête
| Paramètre | Description |
|---|---|
| destination | Numéro de téléphone du destinataire. |
| amount | Montant de la transaction. |
| country_code | Code ISO du pays (ex: 'CI', 'SN', 'ML', 'BF', 'BJ', 'GC', 'TG', 'CM'). |
| operator_name | Nom de l'opérateur en minuscules (ex: 'orange', 'wave'). |
| recipient_name | Nom complet du bénéficiaire. |
Exemple de Requête (cURL)
curl --location 'https://paylink.pixelinnov.net/api/public-reversement' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer VOTRE_CLÉ_API' \
--data '{
"destination": "0778261090",
"country_code": "CI",
"operator_name": "wave",
"amount": 20,
"recipient_name": "Nom du Bénéficiaire"
}'Exemple de Réponse (Succès)
{
"success": true,
"message": "Reversement public enregistré.",
"reversement": {
"_id": "68c15298a5cf56d6867b448f",
"userId": "6890c8068dc2bddee412bf5c",
"client_name": "reversement pub paylink",
"destination": "0778261090",
"operator_name": "wave",
"country_code": "CI",
"amount": 20,
"transaction_id": "PIXPAY_19275913",
"state": "SUCCESSFUL",
"createdAt": "2025-09-10T10:27:36.658Z"
}
}Intégration WordPress / WooCommerce
Acceptez les paiements Pixpay sur votre boutique WooCommerce en quelques minutes grâce à notre plugin officiel.
Prérequis techniques
- WordPress version 5.0 ou supérieure
- WooCommerce version 3.0 ou supérieure
- Version PHP 7.2 ou supérieure
Installation du Plugin
La méthode la plus simple consiste à utiliser le gestionnaire d'extensions WordPress.
- 1.Connectez-vous à votre administration WordPress.
- 2.Allez dans Extensions > Ajouter.
- 3.Cliquez sur Téléverser une extension en haut de la page.
- 4.Sélectionnez le fichier pixpay-gateway.zip téléchargé et cliquez sur Installer maintenant.
- 5.Une fois installé, cliquez sur Activer.
Configuration API
Allez dans WooCommerce > Réglages > Paiements et sélectionnez Pixpay Gateway.
Clé API Pixpay
Copiez votre clé depuis votre dashboard Pixpay et collez-la ici.
Mode Test
Activez cette option pour simuler des transactions sans débit réel durant le développement.
Redirections & Webhooks
Les URL de retour et les Webhooks sont configurés automatiquement par le plugin. Ne les modifiez que si vous avez une configuration spécifique.
Validation & Tests
- Ajoutez un produit au panier et procédez au paiement.
- Choisissez Pixpay comme méthode de paiement.
- Vérifiez que la commande passe au statut 'En cours' ou 'Terminée' dans WooCommerce.
Vérification du Hash
Pour garantir l'authenticité des notifications IPN, un hash est inclus.
🔐 Comment vérifier le hash ?
- Concaténation:
cléAPI + transaction_id - Hachage: Appliquez l’algorithme
SHA256. - Vérification: Comparez le résultat avec le hash reçu.
Ce mécanisme sécurise vos traitements.
Statut des transactions
Cette API n'est pas le canal dédié pour l'obtention des statuts. Vous devez configurer dans votre payload un lien fonctionnel pour recevoir les statuts.
À utiliser avec parcimonie (abus = blocage).
URL : https://proxy-coreapi.pixelinnov.net/api_v1/transaction/status
Verbe : POST
Content-Type : application/json
Corps de la requête :
{
"api_key": "xxx",
"transaction_ids": "xxx"
}Exemple de réponse :
{
"data": {
"transaction_id": "EFB.001158",
"amount": 3005,
"benefice": 3005,
"comission": 0,
"destination": "0777321219",
"fee": 0,
"error": "",
"service_id": 10,
"customer_name": "easytransfert",
"state": "FAILED",
"custom_data": "custom_data",
"ipn_url": "",
"provider_id": null,
"created_at": "2022-09-27T07:07:47.000+00:00",
"updated_at": "2022-09-27T07:07:47.000+00:00",
"p_last_wallet_amount": "xxx",
"p_new_wallet_amount": null,
"p_id": 1,
"hash": null
},
"message": "",
"statut_code": 200
}Liste des Erreurs (Paiement & Reversement)
Votre requête ne contient pas l'en-tête `Authorization` requis avec votre clé API.
La clé API (`Bearer` token) que vous avez fournie n'est pas valide ou n'est associée à aucun partenaire.
Vous avez utilisé une méthode HTTP autre que POST pour appeler l'endpoint.
Un champ obligatoire est manquant dans votre requête de reversement. Le champ exact (ex: `amount`, `destination`) sera précisé dans la réponse.
Le tableau `services`, qui définit les pays et opérateurs, est manquant ou vide dans votre requête de création de lien.
Une erreur est survenue lors de la communication avec le service de génération de lien. La réponse reçue était incomplète.
Une erreur interne est survenue sur nos serveurs. Si le problème persiste, veuillez contacter le support.
Moyens de paiement
| Pays | Moyen de paiement | Description | Devise | Statut |
|---|---|---|---|---|
| Côte d'Ivoire | OM | Orange Money CI | XOF | OK |
| MOMO | MTN Mobile Money CI | |||
| FLOOZ | Moov Money CI | |||
| WAVE | WAVE CI | |||
| VISAM | VISA/MasterCard | |||
| Sénégal | WAVE | WAVE SN | XOF | OK |
| OM | Orange Money SN | |||
| FREE | Free Money SN | |||
| VISAM | VISA/MasterCard | |||
| Mali | OM | Orange Money Mali | XOF | OK |
| FLOOZ | Moov Money Mali | |||
| VISAM | VISA/MasterCard | |||
| Burkina Faso | OM | Orange Money Burkina | XOF | OK |
| FLOOZ | Moov Money Burkina | |||
| VISAM | VISA/MasterCard | |||
| Bénin | MOMO | MTN Mobile Money Bénin | XOF | OK |
| FLOOZ | Moov Money Bénin | |||
| VISAM | VISA/MasterCard | |||
| Guinée Conakry | MOMO | MTN Mobile Money Guinée | GNF | OK |
| OM | Orange Money Guinée | |||
| Togo | TMONEY | Tmoney Togo | XOF | OK |
| FLOOZ | Moov Money Togo | |||
| VISAM | VISA/MasterCard | |||
| Cameroun | OM | Orange Money Cameroun | XAF | OK |
| FLOOZ | Moov Money Cameroun | |||
| VISAM | VISA/MasterCard |
Gammes de montants par pays
| Pays | Montant Min | Montant Max | Devise |
|---|---|---|---|
| Côte d'Ivoire | 200 | 1 500 000 | XOF |
| Sénégal | 200 | 200 000 (si compte plafonné) 2 000 000 (si compte déplafonné) | |
| Togo | 500 | 1 500 000 | |
| Bénin | 500 | 1 500 000 | |
| Mali | 500 | 1 500 000 | |
| Burkina Faso | 500 | 1 500 000 | |
| Cameroun (XOF) | 500 | 1 500 000 | |
| Cameroun (XAF) | 500 | 1 500 000 | XAF |
| Guinée | 1 000 | 15 000 000 | GNF |
Codes USSD par pays/opérateur
| Pays | Opérateur | Syntaxe | Note |
|---|---|---|---|
| Côte d'Ivoire | Orange Money CI | #144*82# | Paiement par code OTP |
| Mtn Mobile Money CI | *133# | À composer après réception du SMS de débit | |
| Moov money CI | NON | Confirmation par code secret après réception du SMS push | |
| Wave CI | NON | Confirmation par QR Code | |
| Sénégal | Orange Money SN | #144#391# | Paiement par code OTP |
| EXPRESSOSN | *444*3*3# | À composer après réception du SMS de débit | |
| FreeSn | NON | Confirmation par code secret après réception du SMS push | |
| Wave SN | NON | Confirmation par QR Code | |
| Mali | Orange Money ML | #144#77# | Paiement par code OTP |
| Moov Money ML | NON | Confirmation par code secret après réception du SMS push | |
| Togo | Tmoney TG | NON | Confirmation par code secret après réception du SMS push |
| Flooz TG | NON | Confirmation par code secret après réception du SMS push | |
| Benin | Moov BJ | *855*7*8# | Confirmation par code secret après réception du SMS push |
| MTN BJ | NON | Confirmation par code secret après réception du SMS push | |
| Burkina Faso | Orange Money BF | *144*4*6*100# | Paiement par code OTP |
| Moov money BF | *555*6# | Confirmation par code secret après réception du SMS push | |
| Cameroun | Orange Money CM | #150*50# | Confirmation par code secret après réception du SMS push |
| Express union CM | NON | Confirmation depuis l'application | |
| Mtn Money CM | *126# | Confirmation par code secret après réception du SMS push | |
| RD Congo | Orange Money CD | NON | Confirmation par code secret après réception du SMS push |
| M PESA CD | NON | Confirmation par code secret après réception du SMS push | |
| Airtel Money CD | NON | Confirmation par code secret après réception du SMS push | |
| Guinée | Orange Money ML | #144#, Choix option 4 et l'option 2 | Paiement par code OTP |
| MTN GN | NON | Confirmation par code secret après réception du SMS push |