Pour tout paiement crypto, les trois informations client sont obligatoires :
customer.email, customer.firstName et customer.lastName. La requête est
refusée si l’une de ces valeurs manque ou n’est pas valide.
Une nouvelle collecte renvoie 202 Accepted avec une transaction en attente.
Voici le contrat de réponse exact. Les valeurs ci-dessous indiquent les types,
pas un paiement ni une adresse réels :
network est l’identifiant du réseau retourné par /v1/crypto/assets.
amount et currency reprennent le montant demandé; les champs *_usdt,
credited_amount et fee_amount contiennent les montants calculés par
l’API en USDT. L’adresse, le memo/tag, les frais et l’expiration sont des
valeurs produites à l’exécution : ne les inventez pas et ne lancez pas un
paiement réel uniquement pour découvrir la structure de la réponse.Le champ d’entrée reference est facultatif et limité à 191 caractères; il
est retourné sous merchant_reference. Un nouvel appel avec la même
reference et les mêmes paramètres peut renvoyer 200 OK avec
idempotent_replay: true. Dans ce cas, status reflète l’état déjà enregistré
et peut différer de pending. Si deux requêtes arrivent pendant que la
première crée encore l’adresse, la seconde peut renvoyer 202 pending sans
adresse. Consultez alors GET /v1/transaction/{transaction_id}?user_id=VOTRE_USER_ID pour récupérer
l’adresse dès qu’elle est prête; ne créez pas une nouvelle référence pour
relancer le paiement.
Les trois champs email, firstName et lastName sont obligatoires pour le Hosted Checkout crypto comme pour la Direct API. N’inventez jamais ces informations : demandez-les au payeur ou arrêtez la requête avec une erreur explicite.
La réponse fournit une adresse de paiement et, selon le réseau, un memo ou un tag. Conservez ces valeurs séparées et affichez le QR code côté application avec le format correspondant au réseau.
Un paiement crypto doit utiliser exactement le réseau retourné par l’API. Une adresse ou un réseau incorrect peut rendre les fonds irrécupérables.
L’adresse créée est temporaire. La réponse de création retourne expiresAt
pour le Hosted Checkout et expires_at dans le statut Direct API, sous forme
de date/heure ISO 8601 lorsque cette valeur est disponible. Le client
doit envoyer les fonds avant cette date.Indépendamment du compte à rebours affiché dans l’interface, AshTech Pay
considère une transaction Crypto restée pending comme expirée après 15
minutes. Le statut serveur et le webhook restent la source de vérité :
attendez la confirmation completed avant de livrer une commande et ne
réutilisez pas une adresse après son expiration.