neo-pays

Paiement instantané

Page générée depuis la spécification OpenAPI que la passerelle sert (GET /v1/openapi.json). Ne la modifiez pas à la main : elle est réécrite à chaque build.

Méthode Chemin Description
POST /v1/alias-claims Revendiquer un alias
PUT /v1/alias-claims/{claimId}/response Répondre à une revendication
POST /v1/alias-lookups Résoudre un alias
POST /v1/payouts/{id}/recall Rappeler un versement instantané
GET /v1/pi-aliases Vos alias enrôlés
POST /v1/pi-aliases Enrôler un alias
DELETE /v1/pi-aliases/{cle} Retirer un alias
PUT /v1/pi-aliases/{cle}/claim-response Répondre à une revendication d'alias
POST /v1/qr Émettre un QR EMVCo
POST /v1/rtp Demander un paiement (RTP)
PUT /v1/rtp/received/{end2endId}/response Répondre à une demande reçue
GET /v1/rtp/{id} Consulter une demande de paiement

POST /v1/alias-claims

Revendiquer un alias

Demande le transfert vers vous d'un alias détenu ailleurs.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
Idempotency-Key header non Clé d'idempotence propre à CETTE opération. Rejouer la même clé avec la même charge utile retourne l'originale ; la rejouer avec une charge utile différente est refusé (409).

Corps de la requête

Champ Type Requis Description
alias string oui L'alias revendiqué.

Réponses

  • 201 — Revendication déposée (PiClaim)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 409 — Clé d'idempotence rejouée avec une charge utile différente (Error)
  • 422 — Requête recevable mais refusée : champ manquant, corridor fermé, solde insuffisant (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

PUT /v1/alias-claims/{claimId}/response

Répondre à une revendication

La réponse à une revendication, par son identifiant.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
claimId path oui L'identifiant de la revendication.

Corps de la requête

Champ Type Requis Description
accept boolean oui

Réponses

  • 200 — OK (PiClaim)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

POST /v1/alias-lookups

Résoudre un alias

Interroge l'annuaire : à qui appartient cet alias ?

⚠️ Le nom retourné est celui que l'annuaire détient. Il est comparé à ce que vous affirmez lors d'un envoi : un écart fait refuser l'opération par le schéma.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Corps de la requête

Champ Type Requis Description
alias string oui

Réponses

  • 200 — OK (PiLookup)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

POST /v1/payouts/{id}/recall

Rappeler un versement instantané

Demande le rappel d'un versement déjà parti. Le schéma transmet la demande au bénéficiaire ; un rappel n'est jamais un droit de reprise.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
id path oui Identifiant interne, référence de l'opération, ou votre propre client_ref.

Corps de la requête

Champ Type Requis Description
reason string oui

Réponses

  • 200 — OK (Operation)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

GET /v1/pi-aliases

Vos alias enrôlés

Les alias de paiement enrôlés pour vos comptes auprès de l'annuaire du schéma.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Réponses

  • 200 — OK (PiAliasList)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

POST /v1/pi-aliases

Enrôler un alias

Enrôle un alias auprès de l'annuaire.

⚠️ UN alias par compte : un enrôlement supplémentaire est refusé, et un alias orphelin bloque le compte.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
Idempotency-Key header non Clé d'idempotence propre à CETTE opération. Rejouer la même clé avec la même charge utile retourne l'originale ; la rejouer avec une charge utile différente est refusé (409).

Corps de la requête

Champ Type Requis Description
account_ref string non Le compte à enrôler. Vide = le compte principal.
type string oui La sorte d'alias : numéro mobile, code marchand, identifiant court.
value string oui La clé de l'alias, pour les types qui en portent une.

Réponses

  • 201 — Alias enrôlé (PiAlias)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 409 — Clé d'idempotence rejouée avec une charge utile différente (Error)
  • 422 — Requête recevable mais refusée : champ manquant, corridor fermé, solde insuffisant (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

DELETE /v1/pi-aliases/{cle}

Retirer un alias

Retire l'alias de l'annuaire. Le compte reste ; c'est l'adressage qui disparaît.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
cle path oui La clé de l'alias.

Réponses

  • 204 — Retiré
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

PUT /v1/pi-aliases/{cle}/claim-response

Répondre à une revendication d'alias

Quelqu'un revendique un alias que vous détenez : cette réponse accepte ou refuse le transfert.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
cle path oui La clé de l'alias revendiqué.

Corps de la requête

Champ Type Requis Description
accept boolean oui Accepter le transfert, ou le refuser.

Réponses

  • 200 — OK (PiAlias)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

POST /v1/qr

Émettre un QR EMVCo

Un QR statique ou dynamique au format EMVCo : le payeur le scanne avec son application et paie.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
Idempotency-Key header non Clé d'idempotence propre à CETTE opération. Rejouer la même clé avec la même charge utile retourne l'originale ; la rejouer avec une charge utile différente est refusé (409).

Corps de la requête

Champ Type Requis Description
asset_id integer oui
amount_minor string non Montant en UNITÉS MINEURES, en chaîne de caractères. Jamais un nombre à virgule flottante : les deux perdent des centimes. Le nombre de décimales de l'actif est donné par GET /v1/assets.
client_ref string non
description string non

Réponses

  • 201 — QR émis (PiQr)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 409 — Clé d'idempotence rejouée avec une charge utile différente (Error)
  • 422 — Requête recevable mais refusée : champ manquant, corridor fermé, solde insuffisant (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

POST /v1/rtp

Demander un paiement (RTP)

Une demande de paiement adressée à un payeur : il la voit et la confirme chez lui. Rien n'est débité sans son accord.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
Idempotency-Key header non Clé d'idempotence propre à CETTE opération. Rejouer la même clé avec la même charge utile retourne l'originale ; la rejouer avec une charge utile différente est refusé (409).

Corps de la requête

Champ Type Requis Description
asset_id integer oui
amount_minor string oui Montant en UNITÉS MINEURES, en chaîne de caractères. Jamais un nombre à virgule flottante : les deux perdent des centimes. Le nombre de décimales de l'actif est donné par GET /v1/assets.
alias string oui L'alias du payeur.
client_ref string non
description string non

Réponses

  • 201 — Demande émise (Operation)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 409 — Clé d'idempotence rejouée avec une charge utile différente (Error)
  • 422 — Requête recevable mais refusée : champ manquant, corridor fermé, solde insuffisant (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

PUT /v1/rtp/received/{end2endId}/response

Répondre à une demande reçue

Accepter ou refuser une demande de paiement qui vous est adressée.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
end2endId path oui L'identifiant de bout en bout de la demande.

Corps de la requête

Champ Type Requis Description
accept boolean oui

Réponses

  • 200 — OK (Operation)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

GET /v1/rtp/{id}

Consulter une demande de paiement

L'état de la demande et, une fois acceptée, l'opération qui la règle.

ⓘ Famille réservée aux comptes dont le produit « paiement instantané » est activé ; les autres reçoivent 403. Le paiement instantané est le système de la BCEAO, sur lequel Mikaty SN SA est participant.

Paramètres

Nom Emplacement Requis Description
id path oui Identifiant interne, référence de l'opération, ou votre propre client_ref.

Réponses

  • 200 — OK (Operation)
  • 401 — Clé API manquante ou rejetée (Error)
  • 403 — La clé ne porte pas le scope requis, ou le compte n'est pas actif (Error)
  • 429 — Budget de requêtes de la clé épuisé (300/min) — honorer Retry-After (Error)

Schémas

Les formes renvoyées par les opérations ci-dessus.

PiClaim

Champ Type Description
claim_id string
alias string
status string

Error

Champ Type Description
error object
error.code string
error.message string

PiLookup

Champ Type Description
alias string
nom string
participant string

Operation

Une opération monétaire — encaissement, versement, remboursement, virement ou rééquilibrage. Le même objet dans les cinq familles.

Champ Type Description
id string L'identifiant public de l'opération. C'est celui des chemins /v1/payments/{id}.
ref string Notre référence interne, lisible. Distincte de l'identifiant : citez-la au support.
client_ref string La référence que vous avez fournie à la création, rendue telle quelle.
kind string payin | payout | withdrawal | refund | chargeback | adjustment | transfer | rebalance. Le même objet sert les cinq familles ; ce champ dit laquelle.
status string L'état détaillé du rail. ⚠️ Pour décider si l'argent est arrivé, lisez outcome : status porte le détail du parcours et son vocabulaire dépend du rail.
outcome string pending | succeeded | failed | cancelled | expired | reversed. Le seul champ sur lequel fonder une décision métier.
asset_id integer L'actif de l'opération, par son identifiant (GET /v1/assets).
amount_minor string Le montant BRUT en unités mineures, en chaîne de caractères.
fee_minor string Les frais prélevés, en unités mineures.
net_minor string Le net en unités mineures : amount_minor moins fee_minor.
platform_id integer La plateforme qui a porté l'opération. Absent tant qu'un encaissement hébergé attend que le payeur choisisse.
is_test boolean Vrai pour une opération créée avec une clé de test. Aucun argent réel ne bouge.
payment_url string La page de paiement hébergée, quand le rail en fournit une. Absent tant que la soumission n'a pas abouti.
deeplink string Le lien profond vers l'application du rail, quand il en fournit un.
qrcode_url string Le QR à présenter au payeur, quand le rail en fournit un.
risk Risk État du contrôle des risques (FRAML). Absent si l’opération n’a pas été évaluée — ce qui n’est pas la même chose que « clear ». Le webhook sortant et cette lecture rendent le même bloc.
risk.status string held : les fonds ne sont pas partis. review : le paiement a suivi son cours, quelque chose est examiné. clear : rien à signaler.
risk.case_ref string Référence du dossier opérationnel, à citer auprès du support. Null lorsque la retenue relève d’un examen de conformité.
risk.case_kind string Accompagne case_ref ou rien du tout.
risk.reason string Le seul texte que ce bloc porte, et il est identique pour toute retenue.
risk.signals object[] Signaux produit, consultatifs. Absent s’il n’y en a aucun.
risk.signals[].code string
risk.signals[].detail_fr string
amount_refunded_minor string Encaissements seulement : la somme des remboursements ABOUTIS, en unités mineures.
amount_refund_pending_minor string Encaissements seulement : la somme des remboursements EN COURS, en unités mineures.
amount_refundable_minor string Encaissements seulement : ce qui peut être remboursé MAINTENANT, en unités mineures — le montant d'origine moins les remboursements aboutis et en cours, ou "0" quand la règle de remboursement n'en permet plus aucun (encaissement non abouti, délai Wave dépassé après un remboursement partiel…).
refund_count integer Encaissements seulement : le nombre de remboursements non échoués.
partial_refund_deadline string Encaissements Wave seulement : jusqu'à quand un remboursement partiel est possible (RFC 3339). Absent pour les autres rails, ou quand les remboursements partiels Wave sont désactivés.

PiAliasList

Champ Type Description
data PiAlias[]
data[].cle string
data[].type string
data[].account_ref string
data[].status string
page integer
per_page integer

PiAlias

Champ Type Description
cle string
type string
account_ref string
status string

PiQr

Champ Type Description
payload string La chaîne EMVCo à encoder.
qrcode_url string