Chaque réponse d'erreur comporte deux champs : error (lisible par machine, stable, ne change jamais d'une version à l'autre) et message (lisible par l'homme, peut être amélioré au fil du temps). Toujours allumer error dans votre code. Afficher message aux utilisateurs.

Format d'erreur

Toutes les réponses d'erreur suivent la même structure :

error response
{ "error": "error_code_here", "message": "Human-readable explanation" }

Certaines erreurs incluent des champs supplémentaires : ref (un identifiant de référence pour la tentative de délégation) et refund (détails concernant un remboursement automatique).

Erreurs de validation

Code d'erreurHTTPCauseRésolution
invalid_tx_hash400tx_hash n'est pas une chaîne hexadécimale de 64 caractères.Vérifiez le format du hachage. Il doit comporter exactement 64 caractères hexadécimaux, sans préfixe.
invalid_address400delegate_to n'est pas une adresse Tron valideValidez l'adresse avec TronWeb () avant d'appeler.
missing_signature400Aucune signature n'a été fournie dans la demande.Signez le message {tx_hash}:{delegate_to} avec tronWeb.trx.signMessageV2() du portefeuille qui a envoyé le TRX .
invalid_signature401La signature n'a pas pu être vérifiée.Assurez-vous d'avoir signé exactement {tx_hash}:{delegate_to} (hash hexadécimal en minuscules, deux-points, adresse Tron exacte).
signature_mismatch403L'adresse du signataire ne correspond pas à celle de l'expéditeur du paiement.La signature doit provenir du même portefeuille que celui ayant effectué le paiement TRX . Portefeuille différent = refus.

Erreurs de paiement

Code d'erreurHTTPCauseRésolution
payment_verification_failed404 / 400Le paiement sur la blockchain n'a pas pu être vérifié. message Ce champ décrit la cause spécifique.Causes fréquentes : transaction non encore confirmée (attendez 3 à 5 secondes et réessayez), adresse du destinataire incorrecte, transaction qui n’est pas un transfert TRX , montant inférieur au minimum de 4 TRX .
hash_already_used409Ce hachage de transaction a déjà été réclamé.Chaque code de hachage de paiement ne peut être utilisé qu'une seule fois. Veuillez effectuer un nouveau paiement pour une nouvelle délégation.

Erreurs de service

Code d'erreurHTTPCauseRésolution
delegation_failed400 / 500Le fournisseur n'a pas pu assurer la délégation énergétique.Si l'échec est survenu après la vérification de votre paiement, un remboursement automatique est en cours. Consultez la section « À vérifier ». refund objet. Sinon, réessayez ou contactez le support avec l'objet. ref IDENTIFIANT.
rate_limited429Trop de requêtes provenant de cette adresse IPRalentissez et réessayez. La limite est de 20 requêtes par seconde.
server_error500Erreur interne inattendueRéessayez dans quelques secondes. Si le problème persiste, contactez l'assistance. ref si disponible.

Gestion des erreurs dans le code

recommended error handling
const result = await fetch('https://api.tronnrg.com/delegate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: hash, delegate_to: addr, signature: sig }), }).then(r => r.json()); if (result.error) { switch (result.error) { case 'payment_verification_failed': // Most common: tx not yet indexed. Wait 3s and retry once. await new Promise(r => setTimeout(r, 3000)); return retry(hash, addr); case 'hash_already_used': // Already claimed. Don't retry. throw new Error('Duplicate delegation attempt'); case 'signature_mismatch': // Signer != payment sender. Sign with the same key. throw new Error('Signer does not match payment sender'); case 'delegation_failed': // Refund queued automatically if payment was verified. if (result.refund) console.log('Refund queued:', result.refund); break; default: console.error(result.error, result.message); } return; } // Success console.log('Delegated:', result.energy, 'energy'); console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan console.log('Ref:', result.ref);
Telegram WhatsApp