Confirmer un paiement (mode A)
Mode A (vous encaissez) : déclare votre encaissement. Le contrat est émis dans la même réponse.
POSThttps://api.coveraf.com/v1/souscriptions/{id}/confirmer-paiement
SignéIdempotentRéponse JSON 201Sandbox et production
Cette déclaration vous engage
La prime déclarée est due à OPTIMUS AFRICA selon votre convention (relevé de reversement). Un plafond de primes non reversées peut s'appliquer à votre compte : au-delà, erreur plafond_encours_atteint.
Réservé au mode A
Votre compte doit être en mode « vous encaissez ». Voir Mode A.
En-têtes
| En-tête | Obligatoire | Valeur |
|---|---|---|
Authorization | oui | Bearer suivi de votre clé API (cvr_test_... ou cvr_live_...). |
Content-Type | oui | application/json |
X-Coveraf-Timestamp | oui | Heure actuelle, horodatage Unix en secondes. |
X-Coveraf-Signature | oui | v1= suivi du HMAC-SHA256 de la requête. Comment signer |
Idempotency-Key | oui | Identifiant unique de l'opération (UUID). Idempotence |
Paramètres de chemin
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
id | texte | oui | Identifiant de la souscription (sou_...). |
Corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
reference_transaction | texte | oui | Votre référence de l'encaissement, 4 à 100 caractères (lettres, chiffres, - _ . : /). Une référence ne sert qu'une fois. |
operateur | « orange » | « mtn » | « moov » | « wave » | « djamo » | « autre » | oui | Moyen utilisé pour encaisser le client. |
montant | entier, FCFA | oui | Exactement montant_a_payer.montant de la souscription. |
date_paiement | instant ISO 8601 | non | Heure de l'encaissement. Maintenant par défaut. Ni dans le futur, ni avant la souscription. |
Exemple de requête
IDEMPOTENCY_KEY=$(uuidgen) ./coveraf.sh POST /v1/souscriptions/sou_bd4094da89da4a2e0e6078de/confirmer-paiement '{"reference_transaction":"OM-13733933","operateur":"orange","montant":12980}'Les fonctions appelCoveraf, appel_coveraf et le script coveraf.sh signent la requête pour vous : téléchargez-les.
Réponse
{
"id": "sou_8a1ab1eb752f13c8f09bb0b6",
"objet": "souscription",
"environnement": "test",
"statut": "payee",
"devis_id": "dev_68e56446d4b5c6875911f178",
"montant_a_payer": {
"montant": 12980,
"devise": "XOF"
},
"mode_paiement": "encaissement_partenaire",
"date_effet_prevue": "2026-11-04",
"souscripteur": {
"nom": "KONE",
"prenom": "Awa",
"telephone": "+2250701020304"
},
"reference_partenaire": "CMD-2026-0042",
"paiement": null,
"contrat": {
"numero": "TEST-CVR-API-MW2EDTG6-F92441FC41",
"adresse": "/v1/contrats/TEST-CVR-API-MW2EDTG6-F92441FC41"
},
"expire_le": "2026-11-19T17:35:33.439+00:00",
"payee_le": "2026-11-04T17:35:36.2+00:00",
"cree_le": "2026-11-04T17:35:33.887733+00:00"
}Description de chaque champ : modèle Souscription.
Erreurs possibles
| Code | HTTP | Signification |
|---|---|---|
mode_paiement_incompatible | 403 | Ce mode de paiement n'est pas celui prévu pour votre compte. |
montant_incorrect | 422 | Le montant encaissé ne correspond pas au montant de la souscription. |
reference_deja_utilisee | 409 | Cette référence de transaction a déjà servi pour une autre souscription. |
souscription_deja_payee | 409 | Cette souscription est déjà payée : son contrat est émis. |
souscription_expiree | 410 | Cette demande de souscription a expiré (son devis n'est plus valable). Demandez un nouveau devis. |
emission_en_cours | 409 | Ce paiement est déjà en cours de traitement. Consultez GET /v1/souscriptions/{id} dans quelques secondes. |
plafond_encours_atteint | 403 | Plafond de primes encaissées non reversées atteint. Effectuez un reversement à OPTIMUS AFRICA pour continuer. |
validation | 422 | Certaines données sont manquantes ou incorrectes. Voir erreur.details. |
S'y ajoutent les erreurs communes à tous les appels (clé, signature, limite de débit, service) : voir Codes d'erreur.