POST
Créer un transfert interne

Autorisations

Authorization
string
header
requis

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

Corps

application/json
assetCode
string
requis

Cryptomonnaie à transférer, par exemple USDT.TRC20, USDT.BEP20 ou BTC. Le destinataire est crédité dans le même actif.

Maximum string length: 32
Pattern: ^[A-Z0-9_.\-]{1,32}$
Exemple:

"USDT.TRC20"

amount
string
requis

Montant à transférer, en unités de l'actif. Chaîne de caractères, jamais un nombre JSON : un montant crypto passé en number est arrondi par la précision flottante.

Exemple:

"75.25"

destinationType
enum<string>
requis

Comment le marchand destinataire est désigné. internal_email exige destinationEmail, internal_merchant_id exige destinationMerchantId.

Options disponibles:
internal_email,
internal_merchant_id
Exemple:

"internal_email"

destinationEmail
string<email>

Adresse email du compte marchand destinataire. Requis — et uniquement pris en compte — lorsque destinationType vaut internal_email.

Maximum string length: 255
Exemple:

"compta@boutique-exemple.com"

destinationMerchantId
string<uuid>

Identifiant du compte marchand destinataire. Requis — et uniquement pris en compte — lorsque destinationType vaut internal_merchant_id.

Exemple:

"3f1b2c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"

note
string

Note libre attachée au transfert, visible dans votre historique.

Maximum string length: 255
Exemple:

"Règlement partenaire"

merchantReference
string
obsolète

Obsolète : utilisez note. Référence libre côté marchand.

Maximum string length: 255
Exemple:

"facture-4821"

idempotencyKey
string

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

Maximum string length: 120
Pattern: ^[A-Za-z0-9_.\-:]+$
Exemple:

"internal-transfer-2026-07-08-0001"

totpCode
string

Code TOTP à 6 chiffres, issu de votre application d'authentification. Requis uniquement pour les appels authentifiés par session utilisateur (dashboard) ; les appels par clé API n'en ont pas besoin.

Pattern: ^[0-9]{6}$
Exemple:

"123456"

feeBearer
enum<string>

Qui supporte les frais de ce transfert, pour cet appel uniquement.

  • merchant : vous absorbez les frais ; le marchand destinataire reçoit amount en entier.
  • customer : les frais sont prélevés sur le montant ; le marchand destinataire reçoit amount moins les frais. Omis, ce champ retombe sur la configuration de votre compte (merchant par défaut). Les transferts entre marchands de la plateforme sont généralement sans frais.
Options disponibles:
merchant,
customer
Exemple:

"merchant"

Réponse

Transfert interne créé.

id
string
requis

Identifiant unique du payout.

merchantReference
object | null
requis

Référence libre attachée par le marchand (optionnelle).

payoutType
string
requis

Catégorie du payout : retrait crypto standard, transfert interne entre marchands, remboursement d'un paiement, ou leg crypto d'un settlement.

amount
string
requis

Montant brut envoyé — chaîne décimale (préserve la précision).

assetCode
string
requis

Code de l'actif crypto (USDT.TRC20, BTC, …).

destinationAddress
string
requis

Adresse de destination — adresse blockchain, email interne ou identifiant d'un autre compte IzichangePay selon destinationType.

destinationType
string
requis

Type de destination : adresse blockchain, email interne ou identifiant d'un autre compte marchand de la plateforme.

destinationMemo
object | null
requis

Mémo/tag requis pour les chaînes memo-type (XRP, TON, Stellar).

feeAmount
string
requis

Frais facturés par IzichangePay — chaîne décimale.

networkFeeAmount
object | null
requis

Frais réseau (gas) effectivement payés à la blockchain — chaîne décimale, renseigné après diffusion.

networkFeeAssetCode
object | null
requis

Asset dans lequel les frais réseau ont été payés : le BASE COIN de la chaîne (ex. TRX pour un retrait USDT.TRC20, BNB pour USDT.BEP20), jamais l'asset du retrait. À utiliser pour libeller networkFeeAmount.

networkFeeUsdEquivalent
object | null
requis

Contre-valeur USD des frais réseau, pour comparer des frais payés dans des monnaies natives différentes. Indicatif de reporting : rien n'est facturé en USD. Renseigné seulement à la CONFIRMATION, quand le coût réel est constaté on-chain — null tant que le payout n'est pas confirmé.

txid
object | null
requis

Hash de la transaction on-chain, vérifiable sur un explorateur de blocs. Renseigné une fois la transaction diffusée : null tant que le retrait n'a pas atteint la chaîne, et sur ce qui n'y arrive jamais (transferts internes, confirmations manuelles hors-chaîne).

Exemple:

"9f4c1a2b3d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"

txUrl
object | null
requis

URL de la transaction sur un explorateur de blocs, pré-résolue par le serveur. null si le hash n'est pas encore connu ou si aucun explorateur n'est configuré pour cet actif.

Exemple:

"https://tronscan.org/#/transaction/9f4c1a2b3d5e6f70"

status
string
requis

Statut courant du payout (pending, approved, confirmed, failed, etc.).

failureReason
object | null
requis

Message d'erreur sécurisé pour les payouts non finalisés (échec, en attente d'examen). null pour les payouts en bonne marche.

feeBearer
string
requis

Indique qui supporte les frais : le marchand (montant débité = amount + fee) ou le client (sur les remboursements).

kytStatus
object | null
requis

Statut du contrôle KYT (Know Your Transaction) si applicable.

createdAt
string
requis

Date de création — ISO 8601.

updatedAt
string
requis

Date de dernière mise à jour — ISO 8601.

statusHistory
object[]
requis

Historique des transitions de statut, chaque entrée comportant le statut, l'horodatage, la source et une note éventuelle.