POST
Créer une intention de paiement

Autorisations

Authorization
string
header
requis

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

En-têtes

idempotency-key
string
requis
Idempotency-Key
string

Clé d'idempotence (recommandée) pour éviter la création de doublons en cas de rejeu.

Corps

application/json
requestedCurrencyType
enum<string>
requis

Indique si le montant demandé est libellé dans une devise fiat (fiat) ou dans une cryptomonnaie (crypto). Détermine la manière dont currencyRequested est interprété.

Options disponibles:
fiat,
crypto
Exemple:

"fiat"

currencyRequested
string
requis

Devise du montant demandé. Si requestedCurrencyType vaut fiat, indiquez un code devise (XOF, EUR, USD). S'il vaut crypto, indiquez un code de cryptomonnaie (USDT.TRC20, BTC, USDT.BEP20).

Exemple:

"XOF"

amountRequested
string
requis

Montant à encaisser, exprimé dans currencyRequested. Chaîne de caractères, jamais un nombre JSON : un montant passé en number est arrondi par la précision flottante. Jusqu'à 18 décimales, et strictement supérieur à zéro.

Pattern: ^(?=.*[1-9])\d{1,18}(\.\d{1,18})?$
Exemple:

"25000"

acceptedCoins
string[]

Restreint la liste des cryptomonnaies proposées au client final au moment du paiement. Deux formats sont acceptés, et combinables dans la même liste :

  • Nom de la crypto seul (ex. USDT) : accepte tous les réseaux de cette crypto activés sur votre compte (USDT.TRC20, USDT.BEP20, USDT.ERC20, USDT.POLYGON…). Pratique pour laisser le client choisir son réseau sans les lister un par un.
  • Code réseau précis CRYPTO.RESEAU (ex. USDT.TRC20) : accepte uniquement ce réseau. Seuls les cryptos/réseaux actifs sur votre compte sont retenus ; une valeur inconnue ou inactive est ignorée. Si aucune n'est valide, la requête est rejetée (400). Champ omis : toutes les cryptomonnaies activées sur votre compte sont proposées.
Exemple:
merchantReference
string

Référence libre côté marchand (numéro de commande, identifiant ERP…). Reprise telle quelle dans les réponses de l'API, les webhooks et le tableau de bord.

Exemple:

"commande-4821"

returnUrl
string<uri>

URL vers laquelle le client final est redirigé une fois le paiement terminé.

Exemple:

"https://boutique.example.com/commande/4821/merci"

idempotencyKey
string

Clé d'idempotence. Rejouer la même clé retourne la demande de paiement déjà créée au lieu d'en créer une seconde — indispensable pour un retry réseau sûr. Peut aussi être transmise via l'en-tête Idempotency-Key.

Exemple:

"intent-2026-07-08-0001"

expiresInMinutes
number

Durée de validité du paiement, en minutes. Minimum 15. Au-delà de ce délai sans paiement complet, la demande expire. La durée est conservée et s'applique aussi après que le client a choisi sa cryptomonnaie. Omis : durée par défaut de la plateforme.

Plage requise: 15 <= x <= 10080
Exemple:

30

customerEmail
string<email>

Email du client final, pré-rempli sur la page de paiement et utilisé pour les notifications liées à ce paiement.

Maximum string length: 254
Exemple:

"client@example.com"

customerFirstName
string

Prénom du client final, pré-rempli sur la page de paiement.

Maximum string length: 80
Exemple:

"Awa"

customerLastName
string

Nom du client final, pré-rempli sur la page de paiement.

Maximum string length: 80
Exemple:

"Diallo"

collectCustomerInformation
boolean
défaut:true

Quand false, la page de paiement SAUTE l'étape de saisie des informations client et va directement au paiement. N'est autorisé que si vous fournissez ces informations vous-même : customerFirstName, customerLastName et customerEmail deviennent alors obligatoires (l'identité reste tracée pour un éventuel remboursement). Défaut true : la page collecte les informations.

Exemple:

false

metadata
object

Données arbitraires (paires clé/valeur) attachées à la demande de paiement. Restituées telles quelles dans les réponses de l'API et les webhooks. Limité à 64 Ko.

Exemple:
language
enum<string>

Langue de la page de paiement (widget) envoyée au client final. Omis, hérite de la langue par défaut du marchand.

Options disponibles:
fr,
en
Exemple:

"en"

autoSettlement
object

Reverse automatiquement ce paiement en monnaie fiat dès qu'il est complété : la crypto reçue est convertie, puis le montant est envoyé sur votre compte de règlement (mobile money, compte bancaire…). Sans ce champ, la crypto reste sur votre balance et vous déclenchez le reversement vous-même. À savoir : seuls les actifs convertibles vers votre devise de règlement sont éligibles, et selon votre configuration de frais une partie peut être collectée auprès du client au moment du paiement.

Réponse

Intention de paiement créée.

id
string
requis

Identifiant unique de l'intention de paiement.

status
string
requis

État courant de l'intention (waiting_address_selection, pending, confirming, completed, expired, unmatched, cancelled).

amountRequested
string
requis

Montant demandé exprimé dans la devise initiale — chaîne décimale.

currencyRequested
string
requis

Code de la devise initialement demandée (fiat ou crypto).

requestedCurrencyType
string
requis

Type de devise initialement demandée ("fiat" ou "crypto").

amountCryptoExpected
object | null
requis

Équivalent crypto figé après sélection de l'actif par le client. null tant que l'actif n'est pas choisi ou si la devise demandée est déjà une crypto.

assetCode
object | null
requis

Code de l'actif crypto choisi par le client (ex. "USDT.TRX"). null tant que l'actif n'est pas sélectionné.

acceptedCoins
string[]
requis

Liste des actifs crypto que ce paiement accepte (proposés au client).

totalAmountReceived
string
requis

Montant total reçu sur ce paiement — chaîne décimale.

amountNetMerchant
string
requis

Montant net cumulé revenant au marchand — chaîne décimale.

feeAmountTotal
string
requis

Frais totaux retenus par la plateforme — chaîne décimale.

amountInRange
object | null
requis

Montant reçu dans la fourchette acceptable (litige : portion acceptée).

amountRejected
object | null
requis

Montant reçu hors fourchette acceptable (litige : portion rejetée).

amountToRefund
object | null
requis

Montant à rembourser au client en cas de décision de remboursement.

feeAmountOnRange
object | null
requis

Frais appliqués à la portion acceptée.

feeAmountOnRejected
object | null
requis

Frais appliqués à la portion rejetée (utilisé lors d'un remboursement partiel).

source
string
requis

Origine de l'intention (api, dashboard, invoice, product, pos, ...).

merchantReference
object | null
requis

Référence libre fournie par le marchand pour rapprocher ce paiement.

invoiceId
object | null
requis

Identifiant de la facture associée, le cas échéant.

productId
object | null
requis

Identifiant du produit associé, le cas échéant.

posTerminalId
object | null
requis

Identifiant du terminal POS associé, le cas échéant.

irregularStatus
string
requis

Statut de litige éventuel (none, pending_decision, encashed, refunded). Différent du statut principal car un litige peut être ouvert sur un paiement déjà complété.

paymentResult
object | null
requis

Détail du résultat de paiement (montants reçus, écarts, ...).

customerRefundAddress
object | null
requis

Adresse de remboursement fournie par le client (masquée). null si non saisie ou pas encore connue.

irregularActionBy
object | null
requis

Identifiant de l'utilisateur ayant statué sur le litige (le cas échéant).

irregularActionAt
object | null
requis

Date à laquelle la décision de litige a été prise — ISO 8601.

irregularRefundPayoutId
object | null
requis

Identifiant du payout généré lors d'un remboursement de litige.

customerEmail
object | null
requis

Email du client (si pré-rempli ou saisi dans le widget).

returnUrl
object | null
requis

URL de redirection après paiement (passée par le marchand).

createdAt
string
requis

Date de création — ISO 8601.

expiresAt
string
requis

Date d'expiration de l'intention — ISO 8601.

URL du widget de paiement à présenter au client.

statusHistory
object[]
requis

Historique horodaté des transitions de statut.

payins
object[]
requis

Liste des dépôts entrants reçus sur cette intention.