Aller au contenu principal

Intégration de Hosted Checkout

Hosted Checkout est une page de paiement prête à l’emploi hébergée par Volet.com.

Pour découvrir la page que verront vos clients, ouvrez la page Hosted Checkout pour les développeurs.

Votre application crée une demande de paiement et redirige le client vers Hosted Checkout. Le client effectue le paiement, Volet.com envoie une notification de statut à votre serveur, puis redirige le client vers votre site.

Hosted Checkout prend en charge :

Avant l’intégration, créez et configurez une passerelle Hosted Checkout dans votre compte. Voir Créer une passerelle de paiement.

Parcours de paiement​

  1. Le client passe commande sur votre site.
  2. Votre site génère une demande de paiement et affiche un bouton ou un lien de paiement.
  3. Le client clique sur Payer et est redirigé vers Hosted Checkout.
  4. Le client effectue le paiement.
  5. Volet.com envoie une notification de statut du paiement à votre Status URL.
  6. Votre système met à jour le statut de la commande.
  7. Hosted Checkout affiche la page de résultat du paiement.
  8. Le client peut ensuite cliquer sur Continuer et est redirigé vers votre Success URL ou votre Failed URL.
Merchant website
│
▼
Hosted Checkout
│
▼
Payment
│
▼
Status URL
│
▼
Merchant backend
│
▼
Customer redirect

Pour un paiement réussi, la page de résultat indique l’identifiant de la transaction et les informations de paiement. Pour un paiement échoué ou annulé, elle affiche le message d’erreur ou d’annulation correspondant.

La Success URL et la Failed URL peuvent être configurées dans les paramètres de Hosted Checkout ou transmises dynamiquement dans la demande de paiement.

remarque

Appuyez-vous toujours sur les notifications de la Status URL pour mettre à jour le statut des commandes. Ne vous fiez pas uniquement aux redirections du navigateur.

La Success URL et la Failed URL ne doivent pas servir à déterminer le statut final du paiement.

Démarrage rapide avec Hosted Checkout​

Étape 1. Créer la demande de paiement​

Point de terminaison Hosted Checkout​

https://account.volet.com/api/public/payment-gateway

Paramètres obligatoires​

Pour créer un paiement, envoyez un formulaire HTML en POST au point de terminaison ci-dessus. La demande de paiement doit contenir les paramètres obligatoires suivants :

ParamètreDescription
ac_account_emailAdresse e-mail de votre compte Volet.com
ac_sci_nameNom du Hosted Checkout
ac_amountMontant du paiement
ac_currencyDevise du paiement (par exemple USD, EUR)
ac_order_idIdentifiant unique de votre commande
ac_signSignature numérique

Pour la liste complète des paramètres pris en charge, voir Paramètres de la demande de paiement.

remarque

Chaque demande de paiement doit utiliser un ac_order_id unique.

Ne réutilisez pas un identifiant de commande pour des paiements différents.

Signature de la requête​

Générez le paramètre ac_sign en calculant le hash SHA-256 de la chaîne suivante :

ac_account_email:ac_sci_name:ac_amount:ac_currency:secret:ac_order_id

où secret est le mot de passe défini lors de la création du Hosted Checkout.

Exemple de chaîne :

[email protected]:Store:100.00:USD:password:123

Hash SHA-256 :

eb9e7f491df701fe7d71c74551ae9e4226dfbed7e3a9cc4916e242d3c09f718e

Transmettez le hash obtenu dans le paramètre ac_sign.

Envoyer la demande de paiement​

Envoyez le formulaire HTML au point de terminaison Hosted Checkout avec la méthode POST.

Exemple de demande de paiement​

<form method="POST" action="https://account.volet.com/api/public/payment-gateway">
<input type="hidden" name="ac_account_email" value="[email protected]">
<input type="hidden" name="ac_sci_name" value="Store">
<input type="hidden" name="ac_amount" value="100.00">
<input type="hidden" name="ac_currency" value="USD">
<input type="hidden" name="ac_order_id" value="123">
<input type="hidden" name="ac_sign" value="eb9e7f491df701fe7d71c74551ae9e4226dfbed7e3a9cc4916e242d3c09f718e">
<button type="submit">VoletPay</button>
</form>

Étape 2. Traiter les notifications de paiement​

Lorsque le statut du paiement change, Volet.com envoie une notification à votre Status URL.

La notification est envoyée en GET ou en POST, selon la configuration de votre Hosted Checkout.

Elle contient les paramètres suivants :

ParamètreDescription
ac_transferIdentifiant de la transaction Volet.com
ac_transaction_statusStatut du paiement
ac_order_idIdentifiant de votre commande
ac_amountMontant initial du paiement
ac_merchant_amountMontant crédité sur votre compte
ac_merchant_currencyDevise de règlement
ac_start_dateDate et heure de la transaction
ac_sci_nameNom du Hosted Checkout
ac_src_walletPortefeuille du client
ac_dest_walletPortefeuille du marchand
ac_buyer_emailAdresse e-mail du client (si disponible)
ac_hashHash de la signature de la notification

Pour la liste complète des paramètres disponibles, voir Paramètres de la notification de paiement.

Avant de mettre à jour le statut de la commande, vérifiez la signature ac_hash pour confirmer que la notification provient bien de Volet.com.

attention

Ne marquez pas une commande comme payée sur la base des redirections du client.

Attendez toujours une notification valide sur la Status URL et vérifiez la signature ac_hash avant de mettre à jour le statut de la commande.

Exemple de notification envoyée à votre Status URL :

<form method="POST" action="https://merchant.example.com/status">
<input type="hidden" name="ac_transfer" value="235f9d0b-b48f-462c-9949-621c4930490c">
<input type="hidden" name="ac_transaction_status" value="COMPLETED">
<input type="hidden" name="ac_order_id" value="123">
<input type="hidden" name="ac_amount" value="100.00">
<input type="hidden" name="ac_merchant_amount" value="100.00">
<input type="hidden" name="ac_merchant_currency" value="USD">
<input type="hidden" name="ac_start_date" value="2026-06-23 12:30:00">
<input type="hidden" name="ac_sci_name" value="Store">
<input type="hidden" name="ac_src_wallet" value="USD123456789012">
<input type="hidden" name="ac_dest_wallet" value="USD210987654321">
<input type="hidden" name="ac_buyer_email" value="[email protected]">
<input type="hidden" name="ac_hash" value="4ceab247ca917e0142b1a99015beaed9310cd6a85ab3bacf08ba44d5ac03590b">
</form>

Vérifier la signature de la notification​

Pour vérifier la notification, calculez le hash SHA-256 à partir des valeurs ci-dessous et comparez-le à l’ac_hash reçu.

La chaîne de signature est construite dans cet ordre :

ac_transfer:ac_start_date:ac_sci_name:ac_src_wallet:ac_dest_wallet:ac_order_id:ac_amount:ac_merchant_currency:password

où password est le mot de passe Hosted Checkout configuré pour la passerelle.

Exemple de chaîne :

235f9d0b-b48f-462c-9949-621c4930490c:2026-06-23 12:30:00:Store:USD123456789012:USD210987654321:123:100.00:USD:password

Calculez le hash SHA-256 de cette chaîne :

4ceab247ca917e0142b1a99015beaed9310cd6a85ab3bacf08ba44d5ac03590b

Comparez le hash calculé à l’ac_hash reçu. Les valeurs doivent être identiques avant toute mise à jour du statut de la commande.

Une fois la signature vérifiée, mettez à jour la commande correspondante dans votre système avec le statut de paiement reçu.

Étape 3. Tester l’intégration​

Avant d’accepter des paiements réels, vérifiez :

  • La redirection du client vers Hosted Checkout.
  • La finalisation d’un paiement réussi.
  • La réception des notifications sur la Status URL.
  • La validation de la signature des notifications.
  • La mise à jour du statut des commandes.
  • Les redirections vers la Success URL et la Failed URL.
  • Le traitement des paiements échoués.

Adresses IP des serveurs de notification​

Si votre infrastructure utilise des listes d’IP autorisées ou des règles de pare-feu, autorisez les requêtes entrantes provenant des serveurs de notification Volet.com suivants :

  • 13.61.247.159

Configuration avancée​

Les sections ci-dessous décrivent des fonctionnalités facultatives et des scénarios d’intégration avancés.

Présélectionner le moyen de paiement​

Par défaut, Hosted Checkout affiche une page de choix du moyen de paiement.

Vous pouvez présélectionner un moyen de paiement dans la demande avec le paramètre ac_ps. Dans ce cas, Hosted Checkout ouvre directement l’écran de paiement correspondant et saute l’étape de choix du moyen de paiement.

Ajoutez les champs suivants aux paramètres de votre demande de paiement :

  1. Ouvre directement la page de connexion au compte Volet.com :
<input type="hidden" name="ac_ps" value="VOLET">
  1. Ouvre directement la page de paiement en USDT sur Tron :
<input type="hidden" name="ac_ps" value="USDTETHER">
<input type="hidden" name="ac_ps_protocol" value="TRON">
  1. Ouvre directement la page de paiement en Bitcoin :
<input type="hidden" name="ac_ps" value="BITCOIN">

C’est utile lorsque le client a déjà choisi un moyen de paiement sur votre site avant d’être redirigé vers Hosted Checkout.

Langue​

Utilisez le paramètre ac_client_lang pour définir la langue de l’interface Hosted Checkout.

Exemple :

<input type="hidden" name="ac_client_lang" value="en">

Si aucune langue n’est indiquée, Hosted Checkout utilise la langue par défaut disponible pour le client.

Champs personnalisés​

Vous pouvez inclure jusqu’à 10 champs personnalisés dans une demande de paiement.

Volet.com ne traite pas ces champs et les renvoie tels quels dans les notifications de la Status URL et les redirections du client.

Usages typiques :

  • Identifiant du client
  • Identifiant de l’abonnement
  • Numéro de facture interne
  • Commentaire

Exemple :

<input type="hidden" name="customer_id" value="12345">
<input type="hidden" name="subscription_id" value="sub_987">
<input type="hidden" name="invoice_no" value="INV-2026-001">
<input type="hidden" name="comment" value="Premium plan">

Sous-marchands​

Utilisez le paramètre ac_submerchant_url pour indiquer le site du marchand pour le compte duquel le paiement est traité.

Exemple :

<input type="hidden" name="ac_submerchant_url" value="https://merchant.example.com">

Cette option s’adresse aux agrégateurs de paiement, aux marketplaces et aux plateformes qui traitent des paiements pour d’autres marchands.

remarque

Toutes les exigences de conformité, d’activités interdites et de vérification applicables aux marchands s’appliquent également aux sous-marchands.

Remplacer les URL​

Les paramètres suivants peuvent être indiqués directement dans la demande de paiement :

  • ac_success_url
  • ac_success_url_method
  • ac_fail_url
  • ac_fail_url_method
  • ac_status_url
  • ac_status_url_method

Exemple :

<input type="hidden" name="ac_success_url" value="https://merchant.example.com/payment-success">
<input type="hidden" name="ac_success_url_method" value="GET">
<input type="hidden" name="ac_fail_url" value="https://merchant.example.com/payment-failed">
<input type="hidden" name="ac_fail_url_method" value="GET">
<input type="hidden" name="ac_status_url" value="https://merchant.example.com/payment-status">
<input type="hidden" name="ac_status_url_method" value="POST">

Les valeurs transmises dans la requête remplacent les URL par défaut configurées pour la passerelle Hosted Checkout.

C’est utile lorsque plusieurs sites, boutiques, applications, bots ou agents IA utilisent la même passerelle Hosted Checkout.

Vous pouvez aussi générer des URL de succès, d’échec et de callback différentes pour chaque commande sans créer plusieurs passerelles Hosted Checkout.

Désactiver les signatures​

Le paramètre ac_sign est facultatif si les signatures numériques sont désactivées dans les paramètres de Hosted Checkout.

Nous recommandons néanmoins vivement d’utiliser les signatures en production pour vérifier l’authenticité des requêtes et empêcher toute altération des données.

Les requêtes non signées ne doivent servir qu’aux tests et au développement.

Référence Hosted Checkout​

Paramètres de la demande de paiement​

La demande de paiement est un formulaire HTML que votre application envoie à Hosted Checkout.

Elle contient les informations de paiement, les données du marchand, les URL de redirection et les paramètres de configuration facultatifs nécessaires au traitement du paiement.

Le tableau ci-dessous liste tous les paramètres pris en charge.

ParamètreObligatoireFormatDescriptionExemples
ac_account_emailOuiChaîneAdresse e-mail de votre compte Volet.com.[email protected]
ac_sci_nameOuiChaîne (max. 50 caractères)Nom du Hosted Checkout.My Store
ac_amountOuiNombre décimalMontant de la demande de paiement. La précision décimale dépend de la devise choisie. Les décimales en trop sont tronquées automatiquement.100.00, 49.0302, 0.12345678
ac_currencyOuiCode de deviseDevise de la demande de paiement.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL
ac_order_idOuiChaîne (max. 64 caractères ; "A-z", "-", "_", "0-9")Identifiant unique de la commande du marchand.123456, baf419d9-6c82-4175-b870-5541b0ff3794
ac_signConditionnelChaîne hexadécimale (SHA-256)Signature de la requête, utilisée pour vérifier l’intégrité de la demande de paiement. Obligatoire si la vérification de la signature des requêtes est activée pour le Hosted Checkout.36b4c9ad29b61d1c5996e3ef1a3af0c3194e19713613b6bf26a9b905b8019225
ac_psNonChaîne (ID du moyen de paiement)Moyen de paiement présélectionné à l’ouverture de Hosted Checkout.VOLET, USDTETHER, USD_COIN, BITCOIN, ETHEREUM, RIPPLE, TRON, LITECOIN, TON, SOL, BNB, MATIC (pour POLYGON), AVAX
ac_ps_protocolConditionnelChaîne (ID de blockchain ou de protocole)Réseau blockchain présélectionné. Obligatoire lorsque ac_ps vaut USDTETHER, USD_COIN ou BNB ; facultatif sinon.ETHEREUM, TRON, BINANCE_SMART_CHAIN, MATIC (pour POLYGON), SOLANA, AVALANCHE, OPTIMISM, ARBITRUM, TON
ac_commentsNonChaîne (max. 255 caractères)Description complémentaire du paiement, affichée au client et non modifiable.Payment for Order #1234
ac_success_urlNonChaîne (max. 100 caractères)Remplace la Success URL configurée.https://merchant.example.com/success
ac_success_url_methodNonGET, POSTMéthode HTTP de la redirection vers la Success URL. Remplace la configuration du Hosted Checkout.GET
ac_fail_urlNonChaîne (max. 100 caractères)Remplace la Failed URL configurée.https://merchant.example.com/failed
ac_fail_url_methodNonGET, POSTMéthode HTTP de la redirection vers la Failed URL. Remplace la configuration du Hosted Checkout.POST
ac_status_urlNonChaîne (max. 100 caractères)Remplace la Status URL configurée.https://merchant.example.com/status
ac_status_url_methodNonGET, POSTMéthode HTTP des notifications envoyées à la Status URL. Remplace la configuration du Hosted Checkout.POST
ac_client_langNonChaîne (code de langue)Langue de la page Hosted Checkout.en
ac_submerchant_urlNonChaîne (max. 100 caractères)URL du site du sous-marchand. Utilisée pour les intégrations de plateformes et obligatoire pour certaines catégories de marchands.https://seller.example.com
Champs personnalisés (par exemple buyer_email, client_email)NonJusqu’à 10 valeurs de type chaîne (max. 100 caractères chacune)Champs supplémentaires définis par le marchand, renvoyés tels quels dans les notifications de la Status URL et les redirections du client. Utilisez-les pour rapprocher les paiements de vos commandes, clients, factures ou autres enregistrements internes.[email protected], #INV-12345, user_1001

Exemple​

<form method="POST" action="https://account.volet.com/api/public/payment-gateway">
<input type="hidden" name="ac_account_email" value="[email protected]">
<input type="hidden" name="ac_sci_name" value="My Store">
<input type="hidden" name="ac_amount" value="100.00">
<input type="hidden" name="ac_currency" value="USD">
<input type="hidden" name="ac_order_id" value="order_123456">
<input type="hidden" name="ac_sign" value="36b4c9ad29b61d1c5996e3ef1a3af0c3194e19713613b6bf26a9b905b8019225">

<input type="hidden" name="ac_ps" value="USDTETHER">
<input type="hidden" name="ac_ps_protocol" value="ETHEREUM">
<input type="hidden" name="ac_comments" value="Payment for Order #123456">

<input type="hidden" name="ac_success_url" value="https://merchant.example.com/payment-success">
<input type="hidden" name="ac_success_url_method" value="GET">
<input type="hidden" name="ac_fail_url" value="https://merchant.example.com/payment-failed">
<input type="hidden" name="ac_fail_url_method" value="GET">
<input type="hidden" name="ac_status_url" value="https://merchant.example.com/payment-status">
<input type="hidden" name="ac_status_url_method" value="POST">

<input type="hidden" name="ac_client_lang" value="en">
<input type="hidden" name="ac_submerchant_url" value="https://seller.example.com">

<!-- Custom fields -->
<input type="hidden" name="customer_id" value="customer_12345">
<input type="hidden" name="customer_email" value="[email protected]">
<input type="hidden" name="invoice_id" value="INV-2026-001">
<input type="hidden" name="subscription_id" value="sub_98765">
<input type="hidden" name="merchant_internal_id" value="seller_456">

<button type="submit">Pay with Volet.com</button>
</form>

Paramètres de paiement réussi​

Après un paiement réussi, Hosted Checkout redirige le client vers votre Success URL et transmet les informations de paiement avec la méthode de redirection configurée.

Le tableau ci-dessous décrit tous les paramètres disponibles.

ParamètreFormatDescriptionExemples
ac_src_walletChaîneNuméro du portefeuille du client utilisé pour le paiement.USDT123456789012
ac_dest_walletChaîneNuméro du portefeuille du marchand ou portefeuille de règlement.USD123456789012
ac_amountNombre décimalMontant de la demande de paiement.100.00, 0.12500000
ac_merchant_amountNombre décimalMontant crédité sur le compte du marchand.100.00
ac_merchant_currencyCode de deviseDevise de règlement.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL
ac_feeNombre décimalFrais de traitement prélevés sur le paiement.0.50
ac_buyer_amount_without_commissionNombre décimalMontant payé par le client hors frais à sa charge, le cas échéant.100.00
ac_buyer_amount_with_commissionNombre décimalMontant total payé par le client, frais à sa charge compris.100.50
ac_buyer_currencyCode de deviseDevise utilisée par le client pour effectuer le paiement.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL, BNB, AVAX, POL
ac_transferUUIDIdentifiant unique de la transaction Volet.com.235f9d0b-b48f-462c-9949-621c4930490c
ac_sci_nameChaîneNom du Hosted Checkout.My Store
ac_start_dateYYYY-MM-DD HH:mm:ss (UTC)Date et heure de création du paiement.2026-06-23 12:30:00
ac_order_idChaîneIdentifiant de commande du marchand fourni dans la demande de paiement.123456, baf419d9-6c82-4175-b870-5541b0ff3794
ac_psChaîne (ID du moyen de paiement)Moyen de paiement utilisé par le client.VOLET, USDT, USDC, BTC, ETH, TRX, SOL
ac_transaction_statusStatutStatut final du paiement. Valeurs possibles : PENDING, PROCESS, COMPLETED, CANCELED.COMPLETED
ac_buyer_emailChaîne (adresse e-mail)Adresse e-mail du client, si disponible.[email protected]
ac_buyer_verifiedBooléenIndique si le compte du client est vérifié.true, false
ac_commentsChaîneCommentaire fourni dans la demande de paiement.Order #123456
Champs personnalisésChaîneChamps définis par le marchand, renvoyés tels quels depuis la demande de paiement.customer_id, invoice_id, subscription_id

Exemple​

<form method="POST" action="https://merchant.example.com/payment-success">
<input type="hidden" name="ac_src_wallet" value="USDT210987654321">
<input type="hidden" name="ac_dest_wallet" value="USD123456789012">
<input type="hidden" name="ac_amount" value="100.00">
<input type="hidden" name="ac_merchant_amount" value="99.50">
<input type="hidden" name="ac_merchant_currency" value="USD">
<input type="hidden" name="ac_fee" value="0.50">
<input type="hidden" name="ac_buyer_amount_without_commission" value="100.00">
<input type="hidden" name="ac_buyer_amount_with_commission" value="100.00">
<input type="hidden" name="ac_buyer_currency" value="USDT">
<input type="hidden" name="ac_transfer" value="235f9d0b-b48f-462c-9949-621c4930490c">
<input type="hidden" name="ac_sci_name" value="My Store">
<input type="hidden" name="ac_start_date" value="2026-06-23 12:30:00">
<input type="hidden" name="ac_order_id" value="order_123456">
<input type="hidden" name="ac_ps" value="VOLET">
<input type="hidden" name="ac_transaction_status" value="COMPLETED">
<input type="hidden" name="ac_buyer_email" value="[email protected]">
<input type="hidden" name="ac_buyer_verified" value="true">
<input type="hidden" name="ac_comments" value="Order #123456">
<!-- Custom fields -->
<input type="hidden" name="customer_id" value="customer_12345">
<input type="hidden" name="invoice_id" value="INV-2026-001">
<input type="hidden" name="subscription_id" value="sub_98765">
</form>

Paramètres de paiement échoué​

Si un paiement est annulé ou échoue, Hosted Checkout redirige le client vers votre Failed URL et transmet les informations de paiement avec la méthode de redirection configurée.

Le tableau ci-dessous décrit tous les paramètres disponibles.

ParamètreFormatDescriptionExemples
ac_dest_walletChaîneCompte du marchand ou portefeuille de règlement.USD123456789012
ac_amountNombre décimalMontant de la demande de paiement.100.00, 49.95
ac_currencyCode de deviseDevise de la demande de paiement.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL
ac_sci_nameChaîneNom du Hosted Checkout.My Store
ac_order_idChaîneIdentifiant de commande du marchand fourni dans la demande de paiement.order_123456, baf419d9-6c82-4175-b870-5541b0ff3794
Champs personnalisésChaîneChamps définis par le marchand, renvoyés tels quels depuis la demande de paiement.customer_id, invoice_id, subscription_id

Exemple​

<form method="POST" action="https://merchant.example.com/payment-failed">
<input type="hidden" name="ac_dest_wallet" value="USD123456789012">
<input type="hidden" name="ac_amount" value="100.00">
<input type="hidden" name="ac_currency" value="USD">
<input type="hidden" name="ac_sci_name" value="My Store">
<input type="hidden" name="ac_order_id" value="order_123456">
<!-- Custom fields -->
<input type="hidden" name="customer_id" value="customer_12345">
<input type="hidden" name="invoice_id" value="INV-2026-001">
<input type="hidden" name="subscription_id" value="sub_98765">
</form>

Paramètres de la notification de paiement​

Lorsque le statut du paiement change, Hosted Checkout envoie une notification à votre Status URL avec la méthode configurée (GET ou POST).

La notification contient tous les paramètres de paiement réussi, plus une signature ac_hash.

ParamètreFormatDescriptionExemples
ac_hashHash SHA-256 (chaîne hexadécimale)Signature SHA-256 permettant de vérifier que la notification a été envoyée par Volet.com et n’a pas été modifiée en transit.1cd6c127c5c49b6d5060cec4bdbf06608216c0c11cc76acebb546be0f7081afd

Pour savoir comment générer et vérifier la signature, voir Vérifier la signature de la notification.

Exemple de notification​

<form method="POST" action="https://merchant.example.com/status">
<input type="hidden" name="ac_src_wallet" value="USDT210987654321">
<input type="hidden" name="ac_dest_wallet" value="USD123456789012">
<input type="hidden" name="ac_amount" value="123.45">
<input type="hidden" name="ac_merchant_amount" value="123.55">
<input type="hidden" name="ac_merchant_currency" value="USD">
<input type="hidden" name="ac_fee" value="0.10">
<input type="hidden" name="ac_buyer_amount_without_commission" value="123.45">
<input type="hidden" name="ac_buyer_amount_with_commission" value="123.55">
<input type="hidden" name="ac_buyer_currency" value="USD">
<input type="hidden" name="ac_transfer" value="235f9d0b-b48f-462c-9949-621c4930490c">
<input type="hidden" name="ac_sci_name" value="My Shop">
<input type="hidden" name="ac_start_date" value="2026-06-23 12:30:00">
<input type="hidden" name="ac_order_id" value="123456">
<input type="hidden" name="ac_ps" value="VOLET">
<input type="hidden" name="ac_transaction_status" value="COMPLETED">
<input type="hidden" name="ac_buyer_email" value="[email protected]">
<input type="hidden" name="ac_buyer_verified" value="true">
<input type="hidden" name="ac_comments" value="Payment for order #123456">
<input type="hidden" name="ac_hash" value="1cd6c127c5c49b6d5060cec4bdbf06608216c0c11cc76acebb546be0f7081afd">
<!-- Custom fields -->
<input type="hidden" name="customer_id" value="98765">
<input type="hidden" name="invoice_id" value="INV-2026-001">
</form>