Skip to main content
Chaque requête ci-dessous utilise la clé API Bearer. user_id doit être l’identifiant du profil AshTech Pay propriétaire de cette clé. Un identifiant manquant renvoie 400 user_id_required; un identifiant qui ne correspond pas à la clé renvoie 403 user_id_mismatch. Les conversions immédiates et la création de règles de conversion automatique exigent aussi l’en-tête X-Transaction-PIN avec le PIN à 4 chiffres configuré dans le tableau de bord. Sans PIN configuré, l’API renvoie 428 TRANSACTION_PIN_SETUP_REQUIRED; sans l’en-tête, elle renvoie 428 TRANSACTION_PIN_REQUIRED. Un PIN incorrect renvoie 403 TRANSACTION_PIN_INVALID; après cinq erreurs, les opérations sont bloquées pendant 30 minutes. Gardez le PIN sur votre serveur et ne l’intégrez jamais dans le navigateur. Remplacez VOTRE_PIN_4_CHIFFRES dans les exemples par le PIN déjà configuré dans votre tableau de bord.

Quel wallet utiliser ?

  • Wallet source : utilisez wallet_currency dans la réponse de GET /v1/wallets?user_id=.... Cette route liste les wallets et soldes de ce profil, pas tous les wallets possibles par pays.
  • Pays de destination : chargez les pays actifs et leurs codes avec GET /v1/countries. Son champ currency est une devise ISO normalisée (XAF, XOF, etc.) et n’est pas toujours le code interne exact du wallet.
Pour une conversion, envoyez destination_country_code (par exemple CM ou TG), pas un code de wallet cible. AshTech Pay résout le wallet correspondant au pays et renvoie le code exact dans to_wallet_currency. L’API Direct ne fournit pas de route séparée qui liste les codes internes de wallet pour tous les pays.

Consulter les soldes

La réponse comprend le wallet principal et les wallets secondaires. wallet_currency est le code exact du wallet utilisé en interne (par exemple XAFG, XOFC ou XOFT); currency est son code ISO regroupé (XAF ou XOF).

Demander une conversion

  • from_currency doit être le code exact du wallet à débiter.
  • Consultez GET /v1/countries pour les codes pays acceptés. AshTech Pay résout destination_country_code vers le wallet exact du pays; ne passez pas un code cible choisi par le client.
  • reference est obligatoire et sert à rendre les reprises idempotentes. Une même référence avec des paramètres différents renvoie 409 reference_conflict.
  • notify_url est facultative et doit être une URL HTTPS publique. Les soldes insuffisants et les conversions sous le minimum configuré sont rejetés avant débit.
Une réponse 202 signifie que la demande est enregistrée et que le montant source a été débité. Le montant cible est crédité après le traitement asynchrone.

Suivre une conversion

Les états sont pending, completed ou cancelled. Une conversion annulée après création recrédite le wallet source. La même opération émet conversion.completed ou conversion.failed au webhook lorsqu’un notify_url est configuré.

Conversions automatiques

Une règle convertit automatiquement les fonds reçus dans le wallet source choisi vers le wallet exact associé au pays cible. Une règle active maximum est autorisée par devise source. Créer une règle :
Si le wallet source a déjà un solde, AshTech Pay tente immédiatement une première conversion. La réponse contient initial_conversion_id lorsqu’une demande a été créée; utilisez GET /v1/conversions/:id?user_id=... pour en suivre l’état. Les crédits ultérieurs dans ce wallet déclenchent la même règle. Lister les règles :
Supprimer une règle :
La suppression empêche les conversions automatiques futures; elle n’annule pas une conversion déjà en attente.