Integração do Hosted Checkout
O Hosted Checkout é uma página de pagamento pronta hospedada pela Volet.com.
Para ver a página que seus clientes verão, abra a página do Hosted Checkout para desenvolvedores.
Seu aplicativo cria uma solicitação de pagamento e redireciona o cliente para o Hosted Checkout. O cliente conclui o pagamento, a Volet.com envia uma notificação de status ao seu servidor e depois redireciona o cliente de volta ao seu site.
O Hosted Checkout aceita:
Antes de integrar, crie e configure um gateway Hosted Checkout na sua conta. Veja Criar um gateway de pagamento.
Fluxo de pagamento
- O cliente faz um pedido no seu site.
- Seu site gera uma solicitação de pagamento e exibe um botão ou link de pagamento.
- O cliente clica em Pagar e é redirecionado para o Hosted Checkout.
- O cliente conclui o pagamento.
- A Volet.com envia uma notificação de status do pagamento para a sua Status URL.
- Seu sistema atualiza o status do pedido.
- O Hosted Checkout exibe a página com o resultado do pagamento.
- Depois o cliente pode clicar em Continuar e é redirecionado para a sua Success URL ou Failed URL.
Merchant website
│
▼
Hosted Checkout
│
▼
Payment
│
▼
Status URL
│
▼
Merchant backend
│
▼
Customer redirect
Em pagamentos bem-sucedidos, a página de resultado traz o ID da transação e as informações do pagamento. Em pagamentos com falha ou cancelados, ela exibe a mensagem de erro ou de cancelamento correspondente.
A Success URL e a Failed URL podem ser configuradas nas opções do Hosted Checkout ou enviadas dinamicamente na solicitação de pagamento.
Para atualizar o status dos pedidos, use sempre as notificações para a Status URL. Não dependa apenas dos redirecionamentos do navegador.
A Success URL e a Failed URL não devem ser usadas para determinar o status final do pagamento.
Início rápido com o Hosted Checkout
Etapa 1. Criar a solicitação de pagamento
Endpoint do Hosted Checkout
https://account.volet.com/api/public/payment-gateway
Parâmetros obrigatórios
Para criar um pagamento, envie por POST um formulário HTML para o endpoint acima. A solicitação de pagamento deve incluir os seguintes parâmetros obrigatórios:
| Parâmetro | Descrição |
|---|---|
ac_account_email | E-mail da sua conta da Volet.com |
ac_sci_name | Nome do Hosted Checkout |
ac_amount | Valor do pagamento |
ac_currency | Moeda do pagamento (por exemplo, USD, EUR) |
ac_order_id | Identificador único do seu pedido |
ac_sign | Assinatura digital |
Para a lista completa de parâmetros aceitos, veja Parâmetros da solicitação de pagamento.
Cada solicitação de pagamento deve usar um ac_order_id único.
Não reutilize identificadores de pedido em pagamentos diferentes.
Assinatura da solicitação
Gere o parâmetro ac_sign calculando o hash SHA-256 da seguinte string:
ac_account_email:ac_sci_name:ac_amount:ac_currency:secret:ac_order_id
em que secret é a senha definida ao criar o Hosted Checkout.
String de exemplo:
[email protected]:Store:100.00:USD:password:123
Hash SHA-256:
eb9e7f491df701fe7d71c74551ae9e4226dfbed7e3a9cc4916e242d3c09f718e
Envie o hash resultante no parâmetro ac_sign.
Enviar a solicitação de pagamento
Envie o formulário HTML para o endpoint do Hosted Checkout com o método POST.
Exemplo de solicitação de pagamento
<form method="POST" action="https://account.volet.com/api/public/payment-gateway">
<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>
Etapa 2. Tratar as notificações de pagamento
Quando o status do pagamento muda, a Volet.com envia uma notificação para a sua Status URL.
A notificação é enviada por GET ou POST, conforme a configuração do seu Hosted Checkout.
A notificação contém os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
ac_transfer | ID da transação na Volet.com |
ac_transaction_status | Status do pagamento |
ac_order_id | Identificador do seu pedido |
ac_amount | Valor original do pagamento |
ac_merchant_amount | Valor creditado na sua conta |
ac_merchant_currency | Moeda de liquidação |
ac_start_date | Data e hora da transação |
ac_sci_name | Nome do Hosted Checkout |
ac_src_wallet | Carteira do cliente |
ac_dest_wallet | Carteira do lojista |
ac_buyer_email | E-mail do cliente (se disponível) |
ac_hash | Hash da assinatura da notificação |
Para a lista completa de parâmetros disponíveis, veja Parâmetros da notificação de pagamento.
Antes de atualizar o status do pedido, verifique a assinatura ac_hash para confirmar que a notificação veio da Volet.com.
Não marque pedidos como pagos com base nos redirecionamentos do cliente.
Sempre aguarde uma notificação válida para a Status URL e verifique a assinatura ac_hash antes de atualizar o status do pedido.
Exemplo de notificação enviada para a sua 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_hash" value="4ceab247ca917e0142b1a99015beaed9310cd6a85ab3bacf08ba44d5ac03590b">
</form>
Verificar a assinatura da notificação
Para verificar a notificação, calcule o hash SHA-256 com os valores abaixo e compare-o com o ac_hash recebido.
A string da assinatura é montada nesta ordem:
ac_transfer:ac_start_date:ac_sci_name:ac_src_wallet:ac_dest_wallet:ac_order_id:ac_amount:ac_merchant_currency:password
em que password é a senha do Hosted Checkout configurada para o gateway.
String de exemplo:
235f9d0b-b48f-462c-9949-621c4930490c:2026-06-23 12:30:00:Store:USD123456789012:USD210987654321:123:100.00:USD:password
Calcule o hash SHA-256 desta string:
4ceab247ca917e0142b1a99015beaed9310cd6a85ab3bacf08ba44d5ac03590b
Compare o hash calculado com o ac_hash recebido. Os valores precisam coincidir antes de você atualizar o status do pedido.
Depois de verificar a assinatura, atualize o pedido correspondente no seu sistema com o status de pagamento recebido.
Etapa 3. Testar a integração
Antes de receber pagamentos reais, verifique:
- O redirecionamento do cliente para o Hosted Checkout.
- A conclusão de um pagamento bem-sucedido.
- A entrega das notificações para a Status URL.
- A validação da assinatura das notificações.
- A atualização do status dos pedidos.
- Os redirecionamentos para a Success URL e a Failed URL.
- O tratamento de pagamentos com falha.
Endereços IP do servidor de notificações
Se sua infraestrutura usa listas de IPs permitidos ou regras de firewall, libere as requisições de entrada dos seguintes servidores de notificações da Volet.com:
- 13.61.247.159
Configuração avançada
As seções abaixo descrevem recursos opcionais e cenários de integração avançados.
Pré-selecionar o método de pagamento
Por padrão, o Hosted Checkout exibe uma página para escolher o método de pagamento.
Você pode pré-selecionar um método de pagamento na solicitação com o parâmetro ac_ps. Quando ele é informado, o Hosted Checkout abre diretamente a tela de pagamento correspondente e pula a etapa de escolha do método.
Adicione os seguintes campos aos parâmetros da sua solicitação de pagamento:
- Abre diretamente a página de login da conta da Volet.com:
<input type="hidden" name="ac_ps" value="VOLET">
- Abre diretamente a página de pagamento com USDT na Tron:
<input type="hidden" name="ac_ps" value="USDTETHER">
<input type="hidden" name="ac_ps_protocol" value="TRON">
- Abre diretamente a página de pagamento com Bitcoin:
<input type="hidden" name="ac_ps" value="BITCOIN">
Isso é útil quando o cliente já escolheu um método de pagamento no seu site antes de ser redirecionado para o Hosted Checkout.
Idioma
Use o parâmetro ac_client_lang para definir o idioma da interface do Hosted Checkout.
Exemplo:
<input type="hidden" name="ac_client_lang" value="en">
Se o idioma não for informado, o Hosted Checkout usa o idioma padrão disponível para o cliente.
Campos personalizados
Você pode incluir até 10 campos personalizados em uma solicitação de pagamento.
A Volet.com não processa esses campos e os devolve sem alterações nas notificações para a Status URL e nos redirecionamentos do cliente.
Usos típicos:
- ID do cliente
- ID da assinatura
- Número interno da fatura
- Comentário
Exemplo:
<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">
Sublojistas
Use o parâmetro ac_submerchant_url para informar o site do lojista em nome de quem o pagamento é processado.
Exemplo:
<input type="hidden" name="ac_submerchant_url" value="https://merchant.example.com">
Essa opção se destina a agregadores de pagamento, marketplaces e plataformas que processam pagamentos para outros lojistas.
Todos os requisitos de compliance, de atividades proibidas e de verificação aplicáveis aos lojistas também se aplicam aos sublojistas.
Substituir URLs
Os seguintes parâmetros podem ser informados diretamente na solicitação de pagamento:
ac_success_urlac_success_url_methodac_fail_urlac_fail_url_methodac_status_urlac_status_url_method
Exemplo:
<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">
Os valores enviados na solicitação substituem as URLs padrão configuradas para o gateway Hosted Checkout.
Isso é útil quando vários sites, lojas, aplicativos, bots ou agentes de IA usam o mesmo gateway Hosted Checkout.
Também permite gerar URLs de sucesso, de falha e de callback diferentes para cada pedido, sem criar vários gateways Hosted Checkout.
Desativar assinaturas
O parâmetro ac_sign é opcional se as assinaturas digitais estiverem desativadas nas configurações do Hosted Checkout.
Mesmo assim, recomendamos fortemente usar assinaturas em produção para verificar a autenticidade das solicitações e evitar adulteração de dados.
Solicitações sem assinatura devem ser usadas apenas em testes e desenvolvimento.
Referência do Hosted Checkout
Parâmetros da solicitação de pagamento
A solicitação de pagamento é um formulário HTML que seu aplicativo envia ao Hosted Checkout.
Ela contém os dados do pagamento, as informações do lojista, as URLs de redirecionamento e os parâmetros de configuração opcionais necessários para processar um pagamento.
A tabela abaixo lista todos os parâmetros aceitos na solicitação de pagamento.
| Parâmetro | Obrigatório | Formato | Descrição | Exemplos |
|---|---|---|---|---|
ac_account_email | Sim | String | E-mail da sua conta da Volet.com. | [email protected] |
ac_sci_name | Sim | String (máx. 50 caracteres) | Nome do Hosted Checkout. | My Store |
ac_amount | Sim | Número decimal | Valor da solicitação de pagamento. A precisão decimal depende da moeda escolhida. Casas decimais excedentes são truncadas automaticamente. | 100.00, 49.0302, 0.12345678 |
ac_currency | Sim | Código de moeda | Moeda da solicitação de pagamento. | USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL |
ac_order_id | Sim | String (máx. 64 caracteres; "A-z", "-", "_", "0-9") | Identificador único do pedido do lojista. | 123456, baf419d9-6c82-4175-b870-5541b0ff3794 |
ac_sign | Condicional | String hexadecimal (SHA-256) | Assinatura da solicitação, usada para verificar a integridade da solicitação de pagamento. Obrigatória se a verificação da assinatura das solicitações estiver ativada no Hosted Checkout. | 36b4c9ad29b61d1c5996e3ef1a3af0c3194e19713613b6bf26a9b905b8019225 |
ac_ps | Não | String (ID do método de pagamento) | Método de pagamento pré-selecionado ao abrir o Hosted Checkout. | VOLET, USDTETHER, USD_COIN, BITCOIN, ETHEREUM, RIPPLE, TRON, LITECOIN, TON, SOL, BNB, MATIC (para POLYGON), AVAX |
ac_ps_protocol | Condicional | String (ID da blockchain ou do protocolo) | Rede blockchain pré-selecionada. Obrigatória quando ac_ps for USDTETHER, USD_COIN ou BNB; nos demais casos é opcional. | ETHEREUM, TRON, BINANCE_SMART_CHAIN, MATIC (para POLYGON), SOLANA, AVALANCHE, OPTIMISM, ARBITRUM, TON |
ac_comments | Não | String (máx. 255 caracteres) | Descrição adicional do pagamento, exibida ao cliente e que não pode ser alterada. | Payment for Order #1234 |
ac_success_url | Não | String (máx. 100 caracteres) | Substitui a Success URL configurada. | https://merchant.example.com/success |
ac_success_url_method | Não | GET, POST | Método HTTP do redirecionamento para a Success URL. Substitui a configuração do Hosted Checkout. | GET |
ac_fail_url | Não | String (máx. 100 caracteres) | Substitui a Failed URL configurada. | https://merchant.example.com/failed |
ac_fail_url_method | Não | GET, POST | Método HTTP do redirecionamento para a Failed URL. Substitui a configuração do Hosted Checkout. | POST |
ac_status_url | Não | String (máx. 100 caracteres) | Substitui a Status URL configurada. | https://merchant.example.com/status |
ac_status_url_method | Não | GET, POST | Método HTTP das notificações para a Status URL. Substitui a configuração do Hosted Checkout. | POST |
ac_client_lang | Não | String (código de idioma) | Idioma da página do Hosted Checkout. | en |
ac_submerchant_url | Não | String (máx. 100 caracteres) | URL do site do sublojista. Usada em integrações de plataformas e obrigatória para determinadas categorias de lojistas. | https://seller.example.com |
Campos personalizados (por exemplo, buyer_email, client_email) | Não | Até 10 valores string (máx. 100 caracteres cada) | Campos adicionais definidos pelo lojista, devolvidos sem alterações nas notificações para a Status URL e nos redirecionamentos do cliente. Use-os para associar os pagamentos aos seus pedidos, clientes, faturas ou outros registros internos. | [email protected], #INV-12345, user_1001 |
Exemplo
<form method="POST" action="https://account.volet.com/api/public/payment-gateway">
<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="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>
Parâmetros de pagamento bem-sucedido
Após um pagamento bem-sucedido, o Hosted Checkout redireciona o cliente para a sua Success URL e envia os dados do pagamento pelo método de redirecionamento configurado.
A tabela abaixo descreve todos os parâmetros disponíveis.
| Parâmetro | Formato | Descrição | Exemplos |
|---|---|---|---|
ac_src_wallet | String | Número da carteira do cliente usada no pagamento. | USDT123456789012 |
ac_dest_wallet | String | Número da carteira do lojista ou carteira de liquidação. | USD123456789012 |
ac_amount | Número decimal | Valor da solicitação de pagamento. | 100.00, 0.12500000 |
ac_merchant_amount | Número decimal | Valor creditado na conta do lojista. | 100.00 |
ac_merchant_currency | Código de moeda | Moeda de liquidação. | USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL |
ac_fee | Número decimal | Taxa de processamento cobrada pelo pagamento. | 0.50 |
ac_buyer_amount_without_commission | Número decimal | Valor pago pelo cliente sem as taxas a cargo dele, se aplicável. | 100.00 |
ac_buyer_amount_with_commission | Número decimal | Valor total pago pelo cliente, incluindo as taxas a cargo dele. | 100.50 |
ac_buyer_currency | Código de moeda | Moeda usada pelo cliente para concluir o pagamento. | USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL, BNB, AVAX, POL |
ac_transfer | UUID | Identificador único da transação na Volet.com. | 235f9d0b-b48f-462c-9949-621c4930490c |
ac_sci_name | String | Nome do Hosted Checkout. | My Store |
ac_start_date | YYYY-MM-DD HH:mm:ss (UTC) | Data e hora de criação do pagamento. | 2026-06-23 12:30:00 |
ac_order_id | String | Identificador do pedido do lojista informado na solicitação de pagamento. | 123456, baf419d9-6c82-4175-b870-5541b0ff3794 |
ac_ps | String (ID do método de pagamento) | Método de pagamento usado pelo cliente. | VOLET, USDT, USDC, BTC, ETH, TRX, SOL |
ac_transaction_status | Status | Status final do pagamento. Valores possíveis: PENDING, PROCESS, COMPLETED, CANCELED. | COMPLETED |
ac_buyer_email | String (endereço de e-mail) | E-mail do cliente, se disponível. | [email protected] |
ac_buyer_verified | Booleano | Indica se a conta do cliente está verificada. | true, false |
ac_comments | String | Comentário informado na solicitação de pagamento. | Order #123456 |
| Campos personalizados | String | Campos definidos pelo lojista, devolvidos sem alterações a partir da solicitação de pagamento. | customer_id, invoice_id, subscription_id |
Exemplo
<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_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>
Parâmetros de pagamento com falha
Se um pagamento for cancelado ou falhar, o Hosted Checkout redireciona o cliente para a sua Failed URL e envia os dados do pagamento pelo método de redirecionamento configurado.
A tabela abaixo descreve todos os parâmetros disponíveis.
| Parâmetro | Formato | Descrição | Exemplos |
|---|---|---|---|
ac_dest_wallet | String | Conta do lojista ou carteira de liquidação. | USD123456789012 |
ac_amount | Número decimal | Valor da solicitação de pagamento. | 100.00, 49.95 |
ac_currency | Código de moeda | Moeda da solicitação de pagamento. | USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL |
ac_sci_name | String | Nome do Hosted Checkout. | My Store |
ac_order_id | String | Identificador do pedido do lojista informado na solicitação de pagamento. | order_123456, baf419d9-6c82-4175-b870-5541b0ff3794 |
| Campos personalizados | String | Campos definidos pelo lojista, devolvidos sem alterações a partir da solicitação de pagamento. | customer_id, invoice_id, subscription_id |
Exemplo
<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>
Parâmetros da notificação de pagamento
Quando o status do pagamento muda, o Hosted Checkout envia uma notificação para a sua Status URL pelo método configurado (GET ou POST).
A notificação contém todos os parâmetros de pagamento bem-sucedido mais uma assinatura ac_hash adicional.
| Parâmetro | Formato | Descrição | Exemplos |
|---|---|---|---|
ac_hash | Hash SHA-256 (string hexadecimal) | Assinatura SHA-256 usada para verificar que a notificação foi enviada pela Volet.com e não foi alterada no caminho. | 1cd6c127c5c49b6d5060cec4bdbf06608216c0c11cc76acebb546be0f7081afd |
Para saber como gerar e verificar a assinatura, veja Verificar a assinatura da notificação.
Exemplo de notificação
<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_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>