Pular para o conteúdo principal

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​

  1. O cliente faz um pedido no seu site.
  2. Seu site gera uma solicitação de pagamento e exibe um botão ou link de pagamento.
  3. O cliente clica em Pagar e é redirecionado para o Hosted Checkout.
  4. O cliente conclui o pagamento.
  5. A Volet.com envia uma notificação de status do pagamento para a sua Status URL.
  6. Seu sistema atualiza o status do pedido.
  7. O Hosted Checkout exibe a página com o resultado do pagamento.
  8. 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.

observação

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âmetroDescrição
ac_account_emailE-mail da sua conta da Volet.com
ac_sci_nameNome do Hosted Checkout
ac_amountValor do pagamento
ac_currencyMoeda do pagamento (por exemplo, USD, EUR)
ac_order_idIdentificador único do seu pedido
ac_signAssinatura digital

Para a lista completa de parâmetros aceitos, veja Parâmetros da solicitação de pagamento.

observação

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_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>

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âmetroDescrição
ac_transferID da transação na Volet.com
ac_transaction_statusStatus do pagamento
ac_order_idIdentificador do seu pedido
ac_amountValor original do pagamento
ac_merchant_amountValor creditado na sua conta
ac_merchant_currencyMoeda de liquidação
ac_start_dateData e hora da transação
ac_sci_nameNome do Hosted Checkout
ac_src_walletCarteira do cliente
ac_dest_walletCarteira do lojista
ac_buyer_emailE-mail do cliente (se disponível)
ac_hashHash 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.

aviso

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_buyer_email" value="[email protected]">
<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:

  1. Abre diretamente a página de login da conta da Volet.com:
<input type="hidden" name="ac_ps" value="VOLET">
  1. 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">
  1. 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.

observação

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_url
  • ac_success_url_method
  • ac_fail_url
  • ac_fail_url_method
  • ac_status_url
  • ac_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âmetroObrigatórioFormatoDescriçãoExemplos
ac_account_emailSimStringE-mail da sua conta da Volet.com.[email protected]
ac_sci_nameSimString (máx. 50 caracteres)Nome do Hosted Checkout.My Store
ac_amountSimNúmero decimalValor 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_currencySimCódigo de moedaMoeda da solicitação de pagamento.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL
ac_order_idSimString (máx. 64 caracteres; "A-z", "-", "_", "0-9")Identificador único do pedido do lojista.123456, baf419d9-6c82-4175-b870-5541b0ff3794
ac_signCondicionalString 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_psNãoString (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_protocolCondicionalString (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_commentsNãoString (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_urlNãoString (máx. 100 caracteres)Substitui a Success URL configurada.https://merchant.example.com/success
ac_success_url_methodNãoGET, POSTMétodo HTTP do redirecionamento para a Success URL. Substitui a configuração do Hosted Checkout.GET
ac_fail_urlNãoString (máx. 100 caracteres)Substitui a Failed URL configurada.https://merchant.example.com/failed
ac_fail_url_methodNãoGET, POSTMétodo HTTP do redirecionamento para a Failed URL. Substitui a configuração do Hosted Checkout.POST
ac_status_urlNãoString (máx. 100 caracteres)Substitui a Status URL configurada.https://merchant.example.com/status
ac_status_url_methodNãoGET, POSTMétodo HTTP das notificações para a Status URL. Substitui a configuração do Hosted Checkout.POST
ac_client_langNãoString (código de idioma)Idioma da página do Hosted Checkout.en
ac_submerchant_urlNãoString (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ãoAté 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_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>

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âmetroFormatoDescriçãoExemplos
ac_src_walletStringNúmero da carteira do cliente usada no pagamento.USDT123456789012
ac_dest_walletStringNúmero da carteira do lojista ou carteira de liquidação.USD123456789012
ac_amountNúmero decimalValor da solicitação de pagamento.100.00, 0.12500000
ac_merchant_amountNúmero decimalValor creditado na conta do lojista.100.00
ac_merchant_currencyCódigo de moedaMoeda de liquidação.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL
ac_feeNúmero decimalTaxa de processamento cobrada pelo pagamento.0.50
ac_buyer_amount_without_commissionNúmero decimalValor pago pelo cliente sem as taxas a cargo dele, se aplicável.100.00
ac_buyer_amount_with_commissionNúmero decimalValor total pago pelo cliente, incluindo as taxas a cargo dele.100.50
ac_buyer_currencyCódigo de moedaMoeda usada pelo cliente para concluir o pagamento.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL, BNB, AVAX, POL
ac_transferUUIDIdentificador único da transação na Volet.com.235f9d0b-b48f-462c-9949-621c4930490c
ac_sci_nameStringNome do Hosted Checkout.My Store
ac_start_dateYYYY-MM-DD HH:mm:ss (UTC)Data e hora de criação do pagamento.2026-06-23 12:30:00
ac_order_idStringIdentificador do pedido do lojista informado na solicitação de pagamento.123456, baf419d9-6c82-4175-b870-5541b0ff3794
ac_psString (ID do método de pagamento)Método de pagamento usado pelo cliente.VOLET, USDT, USDC, BTC, ETH, TRX, SOL
ac_transaction_statusStatusStatus final do pagamento. Valores possíveis: PENDING, PROCESS, COMPLETED, CANCELED.COMPLETED
ac_buyer_emailString (endereço de e-mail)E-mail do cliente, se disponível.[email protected]
ac_buyer_verifiedBooleanoIndica se a conta do cliente está verificada.true, false
ac_commentsStringComentário informado na solicitação de pagamento.Order #123456
Campos personalizadosStringCampos 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_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>

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âmetroFormatoDescriçãoExemplos
ac_dest_walletStringConta do lojista ou carteira de liquidação.USD123456789012
ac_amountNúmero decimalValor da solicitação de pagamento.100.00, 49.95
ac_currencyCódigo de moedaMoeda da solicitação de pagamento.USD, EUR, BTC, ETH, USDT, USDC, XRP, TRX, LTC, TON, SOL
ac_sci_nameStringNome do Hosted Checkout.My Store
ac_order_idStringIdentificador do pedido do lojista informado na solicitação de pagamento.order_123456, baf419d9-6c82-4175-b870-5541b0ff3794
Campos personalizadosStringCampos 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âmetroFormatoDescriçãoExemplos
ac_hashHash 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_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>