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"

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.