APINovasend
Paiement
Creer une session de paiement via l'API Wallet.
POST https://business.novasend.app/v1/payin/sessionsCrée une session d'intention de paiement sécurisée sans débit tant que le client n'a pas confirmé.
En-tête de la Requête
| Valeur | Description | Obligatoire |
|---|---|---|
| Authorization | Pour authentifier l'Api, Basic base64(api_key:api_client) | ✅ |
| X-Idempotency-Key | Cet en-tête garantit l'unicité de vos transactions. La valeur doit être un UUID | ✅ |
| Content-Type | application/json | |
| Accept-Language | Pour traduire les messages d'erreur, langues possibles: en, fr |
Requête
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
| reference | string | Identifiant unique de la transaction côté marchand (UUID recommandé). | ✅ |
| amount | number | Montant à payer (en unités entières, sans décimales). | ✅ |
| msisdn | string | Numéro de téléphone du client payeur (format E.164). | ✅ |
| customerName | string | Nom du client initiant le paiement. | |
| country | string | Code ISO du pays (CI, CM). | ✅ |
| action.successUrl | url | URL de redirection après une action réussie. | ✅ |
| action.failureUrl | url | URL de redirection après une action échouée. | ✅ |
{
"reference": "uuid-merchant",
"amount": 300,
"msisdn": "{{phoneNumber}}",
"customerName": "John Doe",
"country": "CI",
"action": {
"successUrl": "https://votre-url-de-success.com",
"failureUrl": "https://votre-url-de-failure.com"
}
}Réponse
{
"id": "pr_bakvkozbmqcmte1d8izelffjlz",
"type": "payin",
"reference": "0f3fed58-0590-434e-8a00-5d6cd3560382",
"status": "processing",
"confirmationRequired": true,
"confirmationStatus": "none",
"paymentUrl": "https://business.novasend.app/link/QGRD4D",
"customer": {
"name": "Joe",
"phoneNumber": "+225000000000"
},
"isDirect": false,
"payFee": false,
"createdAt": "2026-01-19T09:11:25.832Z",
"amount": 200,
"fee": 7,
"chargedAmount": 207,
"currency": "XOF",
"failure": null
}Interprétation de la Réponse
| Champ | Description |
|---|---|
| id | Identifiant unique de la session de paiement. |
| type | Type d'opération — ici payin pour un paiement entrant. |
| reference | Référence fournie par le marchand pour identifier le paiement. |
| status | Statut initial du paiement (processing, processed, expired, etc.). |
| confirmationRequired | Indique si une confirmation du client est requise avant l'exécution du paiement. |
| confirmationStatus | État actuel de la confirmation client (none, pending, accepted, declined). |
| paymentUrl | Lien web/deep link permettant au client de confirmer le paiement via son application Novasend. |
| isDirect | Indique si le paiement a été initié via un flux direct. |
| payFee | Indique si les frais de transaction sont pris en charge par le marchand. |
| createdAt | Date et heure de création de la session de paiement. |
| amount | Montant brut du paiement. |
| fee | Frais de service appliqués à la transaction. |
| chargedAmount | Montant total débité (montant + frais). |
| currency | Devise utilisée (ex. XOF, XAF). |
| failure | Détails de l'erreur en cas d'échec du paiement (null en cas de succès). |
customer
| Champ | Description |
|---|---|
| name | Nom du client. |
| phoneNumber | Numéro de téléphone du client (format international). |
Statut du paiement
GET https://business.novasend.app/v1/payin/{reference}Cet endpoint permet de consulter à tout moment l'état d'un paiement.
Réponse
{
"id": "pr_bakvkozbmqcmte1d8izelffjlz",
"type": "payin",
"reference": "0f3fed58-0590-434e-8a00-5d6cd3560382",
"status": "processing",
"confirmationRequired": true,
"confirmationStatus": "none",
"paymentUrl": "https://business.novasend.app/link/QGRD4D",
"customer": {
"name": "Joe",
"phoneNumber": "+225000000000"
},
"isDirect": false,
"payFee": false,
"createdAt": "2026-01-19T09:11:25.832Z",
"amount": 200,
"fee": 7,
"chargedAmount": 207,
"currency": "XOF",
"failure": null
}