Skip to main content
POST
Exécuter une opération de paiement
C’est l’appel qui débite l’instrument de paiement de l’initiateur et crédite celui du bénéficiaire, via un service proposé par un contributeur. Tous les appels précédents du parcours (solde, frais, OTP) servent à préparer celui-ci.

Avant d’appeler

1

Vérifiez le solde de l'initiateur

GET /wallets/{referenceWallet}/balance — le solde doit couvrir le montant et les frais si le mode d’application est ADDITION.
2

Calculez les frais

GET /services/{referenceService}/fees vous donne montantFrais et surtout modeApplication, qui change le montant à envoyer ici.
3

Obtenez puis validez un OTP

Générez l’OTP, faites-le saisir par l’usager, puis transmettez-le dans authData.

Montant et frais : la subtilité à connaître

Le champ montant correspond au montant à débiter hors frais lorsque le mode est ADDITION. Le comportement diffère selon ce que retourne le calcul de frais :
Ne réutilisez pas aveuglément le montant saisi par l’utilisateur : en mode ADDITION, le débit réel dépasse ce montant. Assurez-vous que le solde le couvre et que l’utilisateur en est informé avant validation.

Désigner le bénéficiaire

Deux cas de figure, selon que le bénéficiaire est déjà connu de GIMpay ou non :
Renseignez refInstrumentPaiementBeneficiaire avec la référence GIMpay de son instrument de paiement.

Points de vigilance

statutOperation peut valoir INITIEE, ENCOURS ou SUSPENDUE : l’opération n’est pas finalisée. Ne considérez comme définitifs que SUCCES, ECHOUE, ANNULEE et EXTOURNE. En cas d’échec, raisonEchec en donne le motif.Pour un suivi asynchrone, renseignez callbackUrl : GIMpay y notifiera l’évolution de l’état.

Réponses

Le corps utile arrive dans body, à l’intérieur de l’enveloppe commune { message, status, body, timestamp }. Consultez le glossaire pour les valeurs de statutOperation et natureOperation. En cas d’erreur, un 400 signale une donnée incorrecte ou indisponible (solde insuffisant, OTP invalide…), un 404 une entité introuvable. Voir la référence des codes d’erreur.

Et ensuite ?

Annuler une opération

PUT /operations/{referenceOperation}/cancel pour extourner une opération.

Consulter l'historique

GET /wallets/{referenceWallet}/operations et /movements.

Authorizations

Authorization
string
header
required

Jeton émis par POST /api/v1/auth/token.

Headers

requestId
string
required

Clé anti-doublon, unique par opération.

Body

application/json
libelle
string
required

Libellé de l'opération

Example:

"Paiement facture électricité"

montant
number<double>
required

Montant de l'opération

Example:

15000

refInstrumentPaiementInitiateur
string
required

Réference de l'instrument de paiement utilisé par l'initiateur de l'opération

typeOperation
enum<string>
required

P = particulier, B = business, G = gouvernement.

Available options:
P2P,
P2B,
P2G,
B2B,
B2P,
B2G,
G2P,
G2B
refService
string
required

La référence du service concerné par l'opération

refContributeurBeneficiaire
string
required

La référence du contributeur émetteur de l'instrument de paiement du bénéficiaire

refInstrumentPaiementBeneficiaire
string

Réference de l'instrument de paiement utilisé par le bénéficiare de l'opération

msisdnBeneficiaire
string

Numéro mobile money du bénéficiaire (typo msisdn conforme au contrat).

panBeneficiaire
string

Le numéro de carte bancaire du bénéficiaire

compteBeneficiaire
string

Le numéro de compte du bénéficiaire

codeClientBeneficiaire
string

Le code client du bénéficiaire

refContributeurInitiateur
string

La référence du contributeur émetteur de l'instrument de paiement de l'initiateur

authData
string

Donnée d'authentification (ex. OTP).

callbackUrl
string

URL de callback pour l'opération

Response

Opération exécutée.

Enveloppe standard de toutes les réponses (sauf auth).

message
string

Message technique décrivant le résultat de l'appel.

status
integer

Code de statut HTTP de la réponse.

timestamp
string<date-time>

Horodatage de la réponse.

body
object