openapi: 3.1.0
info:
  description: "# Visão geral\n\nWebhooks são notificações sobre eventos que ocorrem no sistema. Quando ocorre \num evento específico, a Xsolla envia uma solicitação HTTP na qual os dados do \nevento são transmitidos para seu aplicativo. Isso geralmente é uma solicitação \nPOST no formato JSON.\n\n<strong>Exemplos de eventos:</strong>\n- interação do usuário com um catálogo de itens\n- pagamento ou cancelamento de um pedido\n\nQuando um evento definido acontece, a Xsolla notifica o seu sistema sobre o \npagamento através de um webhook. Como resultado, você pode executar ações como:\n- repor o saldo do usuário\n- fazer um reembolso de pagamento\n- creditar ou debitar novos itens da conta do usuário\n- começar a fornecer uma assinatura\n- bloquear um usuário em caso de suspeita de fraude\n\n<b>Exemplo de um fluxo de trabalho de webhook de processamento de pagamentos:</b>\n\n![Webhook de processamento de \npagamentos](https://cdn.xsolla.net/developers/current/images/api_docs/webhooks-general.svg)\n\n<div class=\"note\">\n<p><strong>Observação</strong></p><p>Dependendo da solução utilizada e do tipo de integração, o conjunto de webhooks e a sequência de interações podem ser diferentes do exemplo fornecido.</p>\n</div>\n\n<b>Guia de vídeo para integração de webhooks da Xsolla:</b>\n\n<div style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 15px; overflow: hidden;\">\n  <iframe src=\"https://player.vimeo.com/video/1034591338\" style=\"position: absolute; top:0; left: 0; width: 100%; height: 100%; border:0; border-radius: 15px;\" allowfullscreen></iframe>\n</div>\n\n\n<b>Configurações de webhooks ao trabalhar com produtos e soluções Xsolla:</b>\n\n<table>\n<thead>\n    <tr>\n        <th>Produto/Solução</th>\n        <th>Obrigatório/Opcional</th>\n        <th>Para que servem os webhooks</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>Pagamentos</td>\n        <td>Obrigatório</td>\n        <td>\n          <ul>\n            <li>Validação do usuário.</li>\n            <li>Receber informações sobre dados da transação em casos de pagamento bem-sucedido ou reembolso de pagamento.</li>\n            <li>Creditar itens comprados a um usuário e debitar itens em caso de cancelamento do pedido.</li>\n          </ul>\n        </td>\n    </tr>\n    <tr>\n        <td>In-Game Store</td>\n        <td>Obrigatório</td>\n        <td>\n          <ul>\n            <li>Validação do usuário.</li>\n            <li>Receber informações sobre dados da transação em casos de pagamento bem-sucedido ou reembolso de pagamento.</li>\n            <li>Creditar itens comprados a um usuário e debitar itens em caso de cancelamento do pedido.</li>\n          </ul>\n        </td>\n    </tr>\n    <tr>\n        <td>Game Sales</td>\n        <td>Opcional</td>\n        <td>Para vender chaves de jogo, a validação do usuário e o ato de creditar itens não são necessários. Você pode conectar webhooks se quiser receber informações sobre eventos, como pagamento ou cancelamento de pedido.<br />Se você conectar webhooks, é importante processar todos os <a href=\"/pt/webhooks/overview/#section/List-of-required-webhooks\">webhooks necessários</a> acionados.\n</td>\n    </tr>\n    <tr>\n        <td>Subscriptions</td>\n        <td>Opcional</td>\n        <td>Recebendo informações sobre criação, atualização ou cancelamento de uma assinatura. Como alternativa, você pode <a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_information_set_up_via_api\">solicitar informações por meio da API</a>.\n</td>\n    </tr>\n    <tr>\n        <td>Web Shop</td>\n        <td>Obrigatório</td>\n        <td>\n          <ul>\n            <li>Validação do usuário.</li>\n            <li>Receber informações sobre dados da transação em casos de pagamento bem-sucedido ou reembolso de pagamento.</li>\n            <li>Creditar itens comprados a um usuário e debitar itens em caso de cancelamento do pedido.</li>\n            <li>Autenticação de usuários, se você usa autenticação via ID de usuário. Como alternativa, você pode usar <a href=\"/solutions/web-shop/authentication-and-analytics/set-up-authentication/#web_shop_guide_shop_with_auth_set_up_auth_xsolla_login_how_to_get_it\">autenticação de usuários via Xsolla Login</a>.</li>\n          </ul>\n        </td>\n    </tr>\n    <tr>\n        <td>Digital Distribution Hub</td>\n        <td>Obrigatório</td>\n        <td>\n          <ul>\n            <li>Validação do usuário.</li>\n            <li>Vinculando o ID de transação no lado da Xsolla com o ID da transação em seu sistema.</li>\n            <li>Transferência de parâmetros de transação adicionais no pedido.</li>\n            <li>Creditar itens comprados ao usuário e debitar itens em caso de cancelamento do pedido.</li>\n          </ul>\n          <p>Consulte a <a href=\"/solutions/ddh/#integration_guide_ddh_webhook\">documentação</a> para obter informações detalhadas sobre como configurar webhooks para o Digital Distribution Hub.</p>\n        </td>\n    </tr>\n    <tr>\n        <td>Login</td>\n        <td>Opcional</td>\n        <td>\n          <p>Recebendo informações do evento:</p>\n          <ul>\n            <li>cadastro do usuário/autorização</li>\n            <li>confirmação de endereço de e-mail do usuário</li>\n            <li>vinculando a conta de mídia social de um usuário</li>\n          </ul>\n          <p>Consulte a <a href=\"/api/login/operation/add-webhook-for-event/\">documentação de Login</a> para obter informações detalhadas sobre como configurar webhooks.</p>\n        </td>\n    </tr>\n</tbody>\n</table>\n\n# Lista de webhooks necessários\nSe você usa produtos e soluções que exijam trabalhar com webhooks, <a \nhref=\"/webhooks/overview/#section/Set-up-webhooks-in-Publisher-\nAccount\">habilite e teste os webhooks em sua Conta de Distribuidor</a> e <a \nhref=\"/webhooks/overview/#section/Webhook-listener\">configure o processamento \ndeles</a>. Quando ocorrem eventos específicos, os webhooks são enviados \nsequencialmente. Portanto, se você não processar um dos webhooks, os webhooks \nsubsequentes não serão enviados. A lista de webhooks necessários é apresentada \nabaixo.\n\n## In-Game Store e Payments\n2 opções de envio de webhook foram configuradas no lado da Xsolla ao comprar e \ndevolver itens no site — informações com dados de pagamento e transação, e \ninformações sobre itens comprados, podem vir separadamente ou podem ser \ncombinadas em um webhook.\n\n<b>Recebimento de informações em webhooks combinados:</b>\n\nSe você se registrou na <a href=\"https://publisher.xsolla.com/\">Conta de \nDistribuidor</a> após 22 de janeiro de 2025, você receberá todas as informações \nnos webhooks <a href=\"/webhooks/operation/successful-order-payment\">Pagamento \nbem-sucedido do pedido</a> (`order_paid`) e <a href=\"/webhooks/operation/order-\ncancellation\">Cancelamento do pedido</a> (`order_canceled`). Nesse caso, você \nnão precisa processar os webhooks <a \nhref=\"/webhooks/operation/payment\">Pagamento</a> (`payment`) e <a \nhref=\"/webhooks/operation/refund\">Reembolso</a> (`refund`).\n\n<b>Recebimento de informações em webhooks separados:</b>\n\nSe você se registrou na <a href=\"https://publisher.xsolla.com/\">Conta de \nDistribuidor</a> até 22 de janeiro de 2025, você receberá os seguintes webhooks:\n- <a href=\"/webhooks/operation/payment\">Pagamento</a> (`payment`) e <a \n  href=\"/webhooks/operation/refund\">Reembolso</a> (`refund`) com informações \n  sobre dados de pagamento e detalhes da transação.\n- <a href=\"/webhooks/operation/successful-order-payment-separate\">Pagamento bem-\n  sucedido do pedido</a> (`order_paid`) e <a href=\"/webhooks/operation/order-\n  cancellation-separate\">Cancelamento do pedido</a> (`order_canceled`) com \n  informações sobre os itens comprados.\n\nVocê precisa processar todos os webhooks de entrada. Para alternar para a nova \nopção com o recebimento de webhooks combinados, entre em contato com seus \nGerentes de Sucesso do Cliente ou envie um e-mail para <a \nhref=\"mailto:csm@xsolla.com\">csm@xsolla.com</a>.\n\nPara o pleno funcionamento gerenciamento da loja do jogo e de pagamentos, é \nnecessário implementar o processamento dos principais webhooks.\n\n<b>Se você receber webhooks combinados</b>:\n\n<table>\n<thead>\n    <tr>\n        <th>Nome e tipo do webhook</th>\n        <th>Descrição</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>Validação de usuário &gt; <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> (<code>user_validation</code>)</td>\n        <td>É enviado em diferentes estágios do processo de pagamento para garantir que o usuário esteja registrado no jogo.</td>\n    </tr>\n    <tr>\n        <td>Serviços de jogo &gt; Webhooks combinados &gt; <a href=\"/webhooks/operation/successful-order-payment\">Pagamento bem-sucedido do pedido</a> (<code>order_paid</code>)</td>\n        <td>Ele contém dados de pagamento, detalhes da transação e informações sobre itens comprados. Use os dados do webhook para adicionar itens ao usuário.</td>\n    </tr>\n    <tr>\n        <td>Serviços de jogo &gt; Webhooks combinados &gt; <a href=\"/webhooks/operation/order-cancellation\">Cancelamento de pedidos</a> (<code>order_canceled</code>) </td>\n        <td>Ele contém dados do pagamento cancelado, detalhes da transação e informações sobre itens comprados. Use os dados do webhook para remover os itens comprados.</td>\n    </tr>\n</tbody>\n</table>\n\n\n<b>Se você receber webhooks separados</b>:\n\n<table>\n<thead>\n    <tr>\n        <th>Nome e tipo do webhook</th>\n        <th>Descrição</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>Validação de usuário &gt; <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> (<code>user_validation</code>)</td>\n        <td>É enviado em diferentes estágios do processo de pagamento para garantir que o usuário esteja registrado no jogo.</td>\n    </tr>\n    <tr>\n        <td>Pagamentos &gt; <a href=\"/webhooks/operation/payment\">Pagamento</a> (<code>payment</code>)</td>\n        <td>Ele contém dados de pagamento e detalhes da transação.</td>\n    </tr>\n    <tr>\n        <td>Serviços de jogo &gt; Webhooks separados &gt; <a href=\"/webhooks/operation/successful-order-payment-separate\">Pagamento bem-sucedido do pedido</a> (<code>order_paid</code>)</td>\n        <td>Ele contém informações sobre itens comprados. Use os dados do webhook para adicionar itens ao usuário.</td>\n    </tr>\n    <tr>\n        <td>Pagamentos &gt; <a href=\"/webhooks/operation/refund\">Reembolso</a> (<code>refund</code>)</td>\n        <td>Ele contém dados de pagamento e detalhes da transação.</td>\n    </tr>\n    <tr>\n        <td>Serviços de jogo &gt; Webhooks separados &gt; <a href=\"/webhooks/operation/order-cancellation-separate\">Cancelamento de pedidos</a> (<code>order_canceled</code>) </td>\n        <td>Ele contém informações sobre os itens comprados e o ID da transação cancelada. Use os dados do webhook para remover os itens comprados.</td>\n    </tr>\n</tbody>\n</table>\n\nSe a <a href=\"/doc/in-game-store/features/personalization\">personalização</a> \ndo catálogo de itens for implementada no lado do aplicativo, configure o \nprocessamento do webhook <a href=\"/webhooks/operation/personalized-partner-\ncatalog\">Personalização de catálogo do lado do parceiro</a>.\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Para receber pagamentos reais, você só precisa <a href=\"/doc/in-game-store/integration-guide/sign-licensing-agreement/\">assinar o Contrato de Licenciamento</a> e implementar o processamento dos webhooks:</p>\n<p><ul><li><a href=\"/webhooks/operation/payment\">Pagamento</a>, <a href=\"/webhooks/operation/successful-order-payment-separate\">Pagamento bem-sucedido do pedido</a> e <a href=\"/webhooks/operation/user-validation/\">Validação do usuário</a> se você receber webhooks separados</li><li><a href=\"/webhooks/operation/successful-order-payment\">Pagamento bem-sucedido do pedido</a> e <a href=\"/webhooks/operation/user-validation/\">Validação do usuário</a> se você receber webhooks combinados</li></ul></p>\n</div>\n\n## Subscriptions\nPara gerenciar automaticamente os planos de assinatura, é necessário \nimplementar o processamento dos principais webhooks:\n- <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> \n  (`user_validation`) — é enviado em diferentes estágios do processo de pagamento \n  para garantir que o usuário esteja registrado no jogo.\n- <a href=\"/webhooks/operation/payment\">Pagamento</a> (`payment`) — é enviado \n  quando um pedido é pago e contém dados de pagamento e detalhes da transação.\n- <a href=\"/webhooks/operation/created-subscription/\">Assinatura criada</a> \n  (`create_subscription`) — é enviado quando um webhook <a \n  href=\"/webhooks/operation/payment\">Pagamento</a> foi processado com êxito ou o \n  usuário comprou uma assinatura com um período de avaliação. Ele contém os dados \n  da assinatura comprada e os do usuário. Use os dados do webhook para adicionar \n  uma assinatura ao usuário.\n- <a href=\"/webhooks/operation/updated-subscription/\">Assinatura atualizada</a> \n  (`update_subscription`) — é enviado quando uma assinatura é renovada ou \n  alterada, quando um webhook <a \n  href=\"https://developers.xsolla.com/pt/webhooks/operation/payment\">Pagamento</a> \n  foi processado com êxito. Ele contém os dados da assinatura comprada e os dados \n  do usuário. Use os dados do webhook para estender a assinatura do usuário ou \n  alterar os parâmetros de assinatura.\n- <a href=\"/webhooks/operation/refund\">Reembolso</a> (`refund`) — é enviado \n  quando um pedido é cancelado e contém os dados de pagamento cancelados e \n  detalhes da transação.\n- <a href=\"/webhooks/operation/canceled-subscription/\">Assinatura cancelada</a> \n  (`cancel_subscription`) — é enviadao quando um webhook <a \n  href=\"/webhooks/operation/refund\">Reembolso</a> foi processado com êxito ou a \n  assinatura foi cancelada por outro motivo. Ele contém informações sobre a \n  assinatura e os dados do usuário. Use os dados do webhook para deduzir \n  assinaturas compradas do usuário.\n\n# Configure webhooks na Conta de Distribuidor\n\n## Configurações gerais\n\nPara habilitar o recebimento de webhooks:\n1. No projeto na Conta de Distribuidor, acesse a seção <a \n   href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/\">Configurações \n   do Projeto &gt; Webhooks</a>.\n2. No campo <b>Servidor de webhooks</b>, especifique o URL do servidor onde você \n   deseja receber webhooks no formato `https://example.com`. Você também pode \n   especificar o URL encontrado em uma ferramenta para testar webhooks.\n\n<div class=\"notice\">\n<p><strong>Atenção</strong></p>\n<p>O protocolo HTTPS é usado para transferir dados; o protocolo HTTP não é suportado.</p>\n</div>\n\n<p></p>\n\n3. Uma chave secreta para assinar webhooks de projeto é gerada por padrão. Se \n   quiser gerar uma nova chave secreta, clique no ícone de atualização.\n4. Clique em <b>Enable webhooks</b>.\n\n![Enable \nwebhooks](https://cdn.xsolla.net/developers/current/images/api_docs/enable.png)\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Para testar webhooks, você pode selecionar qualquer site dedicado, como <a href=\"https://webhook.site/#!/\">webhook.site</a>, ou uma plataforma, como <a href=\"https://ngrok.com/\">ngrok</a>.</p>\n</div>\n\n<p></p>\n\n<div class=\"notice\">\n    <p><strong>Observação</strong></p>\n    <p>Não é possível enviar webhooks simultaneamente para URLs diferentes. O que você pode fazer na Conta de Distribuidor é especificar um URL para teste primeiro e, em seguida, substituí-lo pelo real.</p>\n</div>\n\nPara desativar o recebimento de webhooks:\n1. No projeto na Conta de Distribuidor, acesse a seção <a \n   href=\"https://publisher.xsolla.com/0/projects/0/edit/webhooks/\">Configurações \n   do Projeto &gt; Webhooks</a>.\n2. Clique em <b>Desativar webhooks</b>.\n\n## Configurações avançadas\n\nAs configurações avançadas são disponibilizadas para os webhooks na seção <a \nhref=\"/webhooks/overview/#section/Test-webhooks-in-Publisher-\nAccount/Store\">Pagamentos e Loja</a>. Eles aparecerão automaticamente no bloco \n<a href=\"/webhooks/overview/#section/Set-up-webhooks-in-Publisher-Account\n/General-settings\">Configurações gerais</a> depois que você clicar no botão \n<b>Obter webhooks</b>.\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Se as configurações avançadas não forem exibidas, verifique se a recepção do webhook está conectada nas configurações gerais e se você está na aba <b>Teste &gt; Pagamentos e Loja</b>.</p>\n</div>\n\nNesta seção, você pode configurar o recebimento de informações adicionais em \nwebhooks. Para fazer isso, coloque os interruptores correspondentes na posição \nativa. A linha de cada permissão indica os webhooks que serão afetados pela \nalteração das configurações.\n\n<table>\n<thead>\n    <tr>\n        <th>Opção</th>\n        <th>Descrição</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>Exibir informações sobre a conta de pagamento salva</td>\n        <td>As informações sobre a forma de pagamento salva são passadas no objeto personalizado <code>payment_account</code>.</td>\n    </tr>\n    <tr>\n        <td>Exibir informações sobre transações pelos métodos de pagamento salvos</td>\n        <td><p>As informações são passadas nos seguintes parâmetros personalizados do webhook:</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — o método de pagamento guardado não foi utilizado</li><li><code>1</code> — o método de pagamento foi salvo ao efetuar o pagamento atual</li><li><code>2</code> — o método de pagamento previamente guardado é utilizado</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — pagamento único</li><li><code>2</code> — pagamento recorrente</li></ul></li></ul></td>\n    </tr>\n    <tr>\n        <td>Adicionar objeto de ordem ao webhook</td>\n        <td>As informações sobre o pedido são passadas no objeto  <code>order</code> do webhook <a href=\"/webhooks/operation/payment/\">Pagamento</a>.</td>\n    </tr>\n    <tr>\n        <td>Enviar apenas os parâmetros de usuário necessários sem dados confidenciais</td>\n        <td><p>Somente as seguintes informações sobre o usuário são passadas no webhook:</p><ul><li>ID</li><li>país</li></ul></td>\n    </tr>\n    <tr>\n        <td>Enviar parâmetros personalizados</td>\n        <td>As informações sobre os <a href=\"/api/pay-station/operation/create-token/\">parâmetros de token personalizados</a> são passadas no webhook.</td>\n    </tr>\n    <tr>\n        <td>Exibir BIN e sufixo do cartão</td>\n        <td><p>As seguintes informações sobre o número do cartão bancário são passadas no webhook:</p><ul><li>os primeiros 6 dígitos no parâmetro <code>card_bin</code></li><li>os últimos 4 dígitos no <code>card_suffix</code></li></ul></td>\n    </tr>\n    <tr>\n        <td>Exibir marca do cartão</td>\n        <td>A bandeira do cartão utilizado para efetuar o pagamento. Por exemplo, Mastercard ou Visa.</td>\n    </tr>\n</tbody>\n</table>\n\n![Configurações \navançadas](https://cdn.xsolla.net/developers/current/images/api_docs/advanced-settings-upd.png)\n\n# Teste webhooks na Conta de Distribuição\n\nTestar webhooks ajuda a garantir a configuração correta do projeto tanto do seu \nlado quanto do lado da Xsolla.\n\nSe os webhooks forem <a href=\"/webhooks/overview/#section/Set-up-webhooks-in-\nPublisher-Account\">configurados</a> com êxito, uma seção de teste de webhooks \nserá exibida abaixo da seção de configuração de webhooks.\n\n![Seção de teste de \nwebhooks](https://cdn.xsolla.net/developers/current/images/api_docs/testing.png)\n\nA seção de testes na Conta de Distribuidor varia de acordo com a opção de \nrecebimento do webhook.\n\n<b>Se você receber webhooks combinados</b>:\n\n<table>\n<thead>\n    <tr>\n        <th>Nome da aba para testar webhooks</th>\n        <th>Nome e tipo do webhook</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td><b>Pagamentos e Loja</b></td>\n        <td>Validação de usuário &gt; <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> (<code>user_validation</code>)</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>Serviços de jogo &gt; Webhooks combinados &gt; <a href=\"/webhooks/operation/successful-order-payment\">Pagamento bem-sucedido do pedido</a> (<code>order_paid</code>)</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>Serviços de jogo &gt; Webhooks combinados &gt; <a href=\"/webhooks/operation/order-cancellation\">Cancelamento de pedidos</a> (<code>order_canceled</code>) </td>\n    </tr>\n    <tr>\n        <td><b>Assinaturas</b></td>\n        <td>Validação de usuário &gt; <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> (<code>user_validation</code>)</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>Pagamentos &gt; <a href=\"/webhooks/operation/payment\">Pagamento</a> (<code>payment</code>)</td>\n    </tr>\n</tbody>\n</table>\n\n\n<b>Se você receber webhooks separados</b>:\n\n<table>\n<thead>\n    <tr>\n        <th>Nome da aba para testar webhooks</th>\n        <th>Nome e tipo do webhook</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td><b>Loja</b></td>\n        <td>Serviços de jogo &gt; Webhooks separados &gt; <a href=\"/webhooks/operation/successful-order-payment-separate\">Pagamento bem-sucedido do pedido</a> (<code>order_paid</code>)</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>Serviços de jogo &gt; Webhooks separados &gt; <a href=\"/webhooks/operation/order-cancellation-separate\">Cancelamento de pedidos</a> (<code>order_canceled</code>) </td>\n    </tr>\n    <tr>\n        <td><b>Pagamentos</b></td>\n        <td>Validação de usuário &gt; <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> (<code>user_validation</code>)</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>Pagamentos &gt; <a href=\"/webhooks/operation/payment\">Pagamento</a> (<code>payment</code>)</td>\n    </tr>\n    <tr>\n        <td><b>Assinaturas</b></td>\n        <td>Validação de usuário &gt; <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> (<code>user_validation</code>)</td>\n    </tr>\n    <tr>\n        <td></td>\n        <td>Pagamentos &gt; <a href=\"/webhooks/operation/payment\">Pagamento</a> (<code>payment</code>)</td>\n    </tr>\n</tbody>\n</table>\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Se um aviso de que o teste não passou aparecer na seção de testes, verifique as configurações de resposta do webhook no <a href=\"/webhooks/overview/#section/Webhook-listener\">ouvinte do webhook</a>. As razões para os erros no teste são indicadas nos resultados do teste.</p>\n<p><b>Exemplo:</b></p>\n<p>Você usa o site especializado <a href=\"https://webhook.site/#!/\">webhook.site</a> para teste.</p>\n<p>Um erro é exibido na seção <b>Teste de respostas a assinaturas inválidas</b>.</p>\n<p>Isso acontece porque a Xsolla envia um webhook com uma assinatura incorreta e espera que seu manipulador responda com um código HTTP <code>4xx</code> especificando o código de erro <code>INVALID_SIGNATURE</code>.</p>\n<p><a href=\"https://webhook.site/#!/\">webhook.site</a> envia um código HTTP <code>200</code> em resposta a todos os webhooks, incluindo um webhook com uma assinatura incorreta. O código HTTP <code>4xx</code> esperado não pode ser obtido e, portanto, um erro é exibido no resultado do teste.</p>\n</div>\n\n![Erro de teste](https://cdn.xsolla.net/developers/current/images/api_docs/test-error.png)\n\nO processo de teste para o cenário com webhooks combinados é descrito abaixo.\n\n## Pagamentos e Loja\n\nNa aba <b>Pagamentos e Loja</b>, você pode testar os seguintes webhooks:\n- <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> \n  (`user_validation`)\n- <a href=\"/webhooks/operation/successful-order-payment\">Pagamento bem-sucedido \n  do pedido</a> (`order_paid`)\n- <a href=\"/webhooks/operation/order-cancellation\">Cancelamento do pedido</a> \n  (`order_canceled`)\n\nPara testar:\n1. Na seção de teste de webhooks, vá para a aba <b>Pagamentos e Loja</b>.\n2. No menu suspenso, selecione o tipo de item. Se o item do tipo selecionado não \n   estiver configurado na Conta de Distribuidor, clique em:\n   * <b>Conectar</b> – se o módulo com itens desse tipo não estiver conectado\n   * <b>Configurar</b> – se você conectou o módulo anteriormente, mas não concluiu a \n     configuração <br/>Ao clicar no botão, você será redirecionado para a seção de \n     Conta de Distribuidor correspondente ao tipo do item selecionado. Depois de \n     criar o item, retorne à seção de teste de webhook e prossiga para a próxima \n     etapa.\n3. Preencha os campos necessários: <ol type=\"a\"> <li>Selecione o SKU dos itens na \n   lista suspensa e indique a quantidade. Você pode escolher vários itens do mesmo \n   tipo clicando em <b>+</b> e adicionando-os em uma nova linha.</li> <li><b>ID de \n   Usuário</b> — ao testar, você pode usar qualquer combinação de letras e \n   dígitos.</li> <li><b>ID de Usuário Público</b> — ID conhecido por um usuário, \n   como um e-mail ou apelido. Este campo é exibido se o ID de Usuário Público \n   estiver habilitado em seu projeto nas Configurações da <b>Pay Station &gt; \n   Configurações</b>.</li> <li>Insira qualquer valor no campo <b>ID do Pedido \n   Xsolla</b>.</li> <li><b>ID de Fatura Xsolla</b> — ID da transação no lado da \n   Xsolla. Ao testar, você pode usar qualquer valor numérico.</li> <li><b>ID da \n   Fatura</b> — ID da transação no lado do seu jogo. Ao testar, você pode usar \n   qualquer combinação de letras e dígitos. Não é um parâmetro necessário para um \n   pagamento bem-sucedido, mas você pode passá-lo para vincular o ID da transação \n   do seu lado ao ID da transação do lado da Xsolla.</li> <li><b>Valor</b> — \n   quantia do pagamento. Ao testar, você pode usar qualquer valor numérico.</li> \n   <li><b>Moeda</b> — selecione uma moeda na lista suspensa.</li> </ol>\n\n4. Clique em <b>Testar webhooks</b>.\n\n\nOs webhooks <a href=\"/webhooks/operation/user-validation/\">Validação do \nusuário</a>, <a href=\"/webhooks/operation/successful-order-payment\">Pagamento \nbem-sucedido do pedido</a> e <a href=\"/webhooks/operation/order-\ncancellation\">Cancelamento do pedido</a> com os dados especificados são \nenviados para o URL fornecido. Os resultados do teste de cada tipo de webhook \nsão exibidos abaixo do botão <b>Testar webhooks</b>.\n\nSe o ID de usuário público estiver ativado em seu projeto, você também verá os \nresultados de uma verificação de pesquisa de usuário.\n\nPara cada webhook, você precisa configurar o processamento de ambos os \ncenários: um bem-sucedido e outro com um erro.\n\n![Seção de testes de \npagamentos](https://cdn.xsolla.net/developers/current/images/api_docs/payments-tab.png)\n\n## Subscriptions\nNa aba <b>Subscriptions</b>, você pode testar os seguintes webhooks:\n- <a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a> \n  (`user_validation`)\n- <a href=\"/webhooks/operation/payment\">Payment</a> (`payment`)\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Na Conta de Distribuidor, você só pode testar webhooks básicos de Validação de Usuário e Pagamento. Para testar outros tipos de webhook, vá para:</p>\n<p><ul><li><a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_payment\">Testar compra de assinatura</a></li><li><a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_renewal\">Testar renovação de assinatura</a></li><li><a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_cancelation\">Testar cancelamento de assinatura</a></li></ul></p>\n</div>\n\n<p></p>\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Para testar webhooks, você deve ter pelo menos um <a href=\"/doc/subscriptions/integration-guide/set-up-plan/\">plano de assinatura criado</a> na seção <b>Conta de Distribuidor &gt; Assinaturas &gt; Planos de Assinatura</b>.</p>\n</div>\n\nPara testar: <ol> <li>na seção de testes, vá para a aba \n<b>Assinaturas</b>.</li> <li>Preencha os campos necessários: <ol type=\"a\"> \n<li><b>ID de Usuário</b> — ao testar, você pode usar qualquer combinação de \nletras e dígitos.</li> <li><b>ID de Fatura Xsolla</b> — ID da transação no lado \nXsolla. Ao testar, você pode usar qualquer valor numérico.</li> <li><b>ID de \nUsuário Público</b> — ID conhecido por um usuário, como um e-mail ou um \napelido. Esse campo será exibido se o ID de usuário público estiver habilitado \nem seu projeto na seção Pay Station &gt; Settings &gt; Additional \nsettings.</li> <li><b>Moeda</b> — selecione uma moeda na lista suspensa.</li> \n<li><b>ID do Plano</b> — um plano de assinatura. Escolha um plano na lista \nsuspensa.</li> <li><b>Produto de assinatura</b> — escolha um produto na lista \nsuspensa (opcional).</li> <li><b>Valor</b> — quantia do pagamento. Ao testar, \nvocê pode usar qualquer valor numérico.</li> <li><b>ID de Fatura</b> — ID da \ntransação no lado do jogo. Ao testar, você pode usar qualquer combinação de \nletras e dígitos. Não é um parâmetro necessário para um pagamento bem-sucedido, \nmas você pode passá-lo para vincular o ID da transação do seu lado ao ID da \ntransação no lado da Xsolla.</li> <li><b>Período experimental</b>. Para testar \na <a href=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_sandbox\">comp\nra de uma assinatura sem um período de avaliação</a> ou para testar a <a \nhref=\"/doc/subscriptions/integration-guide/get-subscription-information/#guides_subscriptions_get_subscription_set_up_webhooks_test_renewal\"\n>renovação de uma assinatura</a>, especifique o valor <code>0</code>.</li> \n</ol> </li> <li>Clique em <b>Testar webhooks</b>.</li> </ol>\n\nNo URL especificado, você receberá webhooks com dados preenchidos. Os \nresultados do teste de cada webhook, tanto para um cenário bem-sucedido quanto \npara um cenário com um erro, são exibidos no botão <b>Testar webhooks</b>.\n\n<a id=\"webhook-listener\"></a>\n\n# Ouvinte webhook\n\nOuvinte webhook é o código de programa que permite receber webhooks acionados \nem um endereço URL especificado, <a href=\"/webhooks/overview/#section/Webhook-\nlistener/Generation-of-signature\">gerando uma assinatura</a> e <a \nhref=\"/webhooks/overview/#section/Webhook-listener/Sending-responses-to-\nwebhook\">enviando uma resposta</a> para o servidor webhook Xsolla.\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Você pode usar a <a href=\"https://developers.xsolla.com/pt/sdk/php/\">biblioteca Pay Station PHP SDK</a>, que contém classes prontas para processar webhooks.</p>\n</div>\n\n<!-- IMPORTANT! Changing the list of IP addresses should be coordinated with the administrators. Request for Director of Infrastructure and IT approval in the ticket for changing the IP address list. -->\n\nNo lado do aplicativo, implemente o recebimento de webhooks dos seguintes \nendereços IP:\n- `185.30.20.0/24`\n- `185.30.21.0/24`\n- `185.30.22.0/24`\n- `185.30.23.0/24`\n- `34.102.38.178`\n- `34.94.43.207`\n- `35.236.73.234`\n- `34.94.69.44`\n- `34.102.22.197`\n\nSe você integrou o produto <a href=\"/doc/login/\">Login</a>, adicione também o \nprocessamento de webhooks dos seguintes endereços IP:\n\n- `34.94.0.85`\n- `34.94.14.95`\n- `34.94.25.33`\n- `34.94.115.185`\n- `34.94.154.26`\n- `34.94.173.132`\n- `34.102.48.30`\n- `35.235.99.248`\n- `35.236.32.131`\n- `35.236.35.100`\n- `35.236.117.164`\n\nLimitações:\n- Não deve haver várias transações bem-sucedidas com o mesmo ID no banco de dados \n  do aplicativo.\n- Se o ouvinte do webhook recebeu um webhook com um ID que já existe no banco de \n  dados, você precisará retornar o resultado do processamento anterior dessa \n  transação. Não é recomendável creditar o usuário com uma compra duplicada e \n  criar registros duplicados no banco de dados.\n\n## Geração de assinatura\n\nPara garantir a transmissão segura de dados, você deve verificar se o webhook \nfoi realmente enviado do servidor Xsolla e se não foi adulterado durante a \ntransmissão. Para fazer isso, gere sua própria assinatura com base no conteúdo \ndo corpo da solicitação e compare-a com a assinatura fornecida no cabeçalho \n`authorization` da solicitação de entrada. Se as assinaturas corresponderem, o \nwebhook é autêntico e seguro de processar.\n\nEtapas de verificação:\n\n1. Recupere a assinatura do cabeçalho `authorization` da solicitação de webhook de \n   entrada. O formato do cabeçalho é `Signature <signature_value>`.\n2. Recupere o corpo da solicitação do webhook no formato JSON. <div \n   class=\"notice\"><p><strong>Aviso</strong></p><p>Use o conteúdo JSON exatamente \n   como foi recebido. Não analise nem recodifique a carga, pois isso alterará a \n   formatação e fará com que a verificação da assinatura falhe.</p></div><p></p>\n\n3. Gere sua própria assinatura para comparação: <ol type=\"a\"> <li>Concatene a \n   carga JSON com a chave secreta do seu projeto anexando a chave ao final da \n   cadeia de caracteres.</li> <li>Aplique a função de hash criptográfico SHA-1 à \n   cadeia de caracteres resultante. O resultado será uma cadeia de caracteres \n   hexadecimal em letras minúsculas.</li> </ol>\n4. Compare sua assinatura gerada com a `authorization` do cabeçalho. Se elas \n   corresponderem, o webhook é autêntico.\n\nAbaixo, você pode encontrar exemplos de implementação de geração de assinatura \npara as seguintes linguagens: C#, C++, Go, PHP e Node.js.\n\n### Exemplo de um webhook (HTTP):\n\n```http\nPOST /your_uri HTTP/1.1\nhost: your.host\naccept: application/json\ncontent-type: application/json\ncontent-length: 165\nauthorization: Signature 52eac2713985e212351610d008e7e14fae46f902\n{\n  \"notification_type\":\"user_validation\",\n  \"user\":{\n      \"ip\":\"127.0.0.1\",\n      \"phone\":\"18777976552\",\n      \"email\":\"email@example.com\",\n      \"id\":1234567,\n      \"name\":\"Xsolla User\",\n      \"country\":\"US\"\n  }\n}\n```\n\n### Exemplo de um webhook (curl):\n\n```bash\ncurl -v 'https://your.hostname/your/uri' \\\n-X POST \\\n-H 'authorization: Signature 52eac2713985e212351610d008e7e14fae46f902' \\\n-d '{\n  \"notification_type\":\n    \"user_validation\",\n    \"user\":\n      {\n        \"ip\": \"127.0.0.1\",\n        \"phone\": \"18777976552\",\n        \"email\": \"email@example.com\",\n        \"id\": 1234567,\n        \"name\": \"Xsolla User\",\n        \"country\": \"US\"\n      }\n    }'\n```\n\n### Exemplo C# de implementação da geração de assinaturas (amostra geral):\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Este exemplo de código é compatível com o .NET Framework 4.0 e posterior, bem como com o .NET Core e outras versões modernas do .NET. A verificação de assinatura usa comparação de tempo constante por meio do método <code>ConstantTimeEquals</code> para ajudar a evitar ataques de tempo.</p>\n</div>\n\n```csharp\nusing System;\nusing System.Security.Cryptography;\nusing System.Text;\npublic static class XsollaWebhookSignature\n{\n    public static string ComputeSha1(string jsonBody, string secretKey)\n    {\n        // Concatenation of the JSON from the request body and the project's secret key\n        string dataToSign = jsonBody + secretKey;\n        using (SHA1 sha1 = SHA1.Create())\n        {\n            byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));\n            // Convert hash bytes to lowercase hexadecimal string\n            var hexString = new StringBuilder(hashBytes.Length * 2);\n            foreach (byte b in hashBytes)\n            {\n                hexString.Append(b.ToString(\"x2\"));\n            }\n            return hexString.ToString();\n        }\n    }\n    public static bool VerifySignature(string jsonBody, string secretKey, string receivedSignature)\n    {\n        string computedSignature = ComputeSha1(jsonBody, secretKey);\n        string receivedSignatureLower = receivedSignature.ToLower();\n        // Use constant-time comparison to prevent timing attacks\n        return ConstantTimeEquals(computedSignature, receivedSignatureLower);\n    }\n    private static bool ConstantTimeEquals(string a, string b)\n    {\n        if (a.Length != b.Length)\n        {\n            return false;\n        }\n        int result = 0;\n        for (int i = 0; i < a.Length; i++)\n        {\n            result |= a[i] ^ b[i];\n        }\n        return result == 0;\n    }\n}\n```\n\n### Exemplo C# de implementação de geração de assinatura (.NET 5.0 e posterior):\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Para usar o método <code>Convert.ToHexString</code>, você precisa do .NET 5.0 e posterior.<p></p>Se você tiver o .NET 7.0 e posterior, também poderá usar o método <code>CryptographicOperations.FixedTimeEquals</code> em vez de <code>ConstantTimeEquals</code>.</p>\n</div>\n\n```csharp\n// For .NET 5.0 and later, you can use the more concise Convert.ToHexString method:\nusing System;\nusing System.Security.Cryptography;\nusing System.Text;\npublic static class XsollaWebhookSignature\n{\n    public static string ComputeSha1(string jsonBody, string secretKey)\n    {\n        string dataToSign = jsonBody + secretKey;\n        using var sha1 = SHA1.Create();\n        byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));\n        return Convert.ToHexString(hashBytes).ToLower();\n    }\n    public static bool VerifySignature(string jsonBody, string secretKey, string receivedSignature)\n    {\n        string computedSignature = ComputeSha1(jsonBody, secretKey);\n        string receivedSignatureLower = receivedSignature.ToLower();\n        // Use constant-time comparison to prevent timing attacks\n        return ConstantTimeEquals(computedSignature, receivedSignatureLower);\n    }\n    private static bool ConstantTimeEquals(string a, string b)\n    {\n        if (a.Length != b.Length)\n        {\n            return false;\n        }\n        int result = 0;\n        for (int i = 0; i < a.Length; i++)\n        {\n            result |= a[i] ^ b[i];\n        }\n        return result == 0;\n    }\n}\n```\n\n### Exemplo C# de implementação de geração de assinatura (.NET 7.0 e posterior):\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>Se você tiver o .NET 7.0 e posterior, poderá usar o método <code>CryptographicOperations.FixedTimeEquals</code>.</p>\n</div>\n\n```csharp\n// For .NET 7.0+, you can use the built-in CryptographicOperations.FixedTimeEquals:\nusing System.Security.Cryptography;\npublic static bool VerifySignature(string jsonBody, string secretKey, string receivedSignature)\n{\n    string computedSignature = ComputeSha1(jsonBody, secretKey);\n    byte[] computedBytes = Encoding.UTF8.GetBytes(computedSignature);\n    byte[] receivedBytes = Encoding.UTF8.GetBytes(receivedSignature.ToLower());\n    return CryptographicOperations.FixedTimeEquals(computedBytes, receivedBytes);\n}\n```\n\n### Exemplo C++ de implementação da geração de assinaturas:\n\n```c++\n#include <string>\n#include <sstream>\n#include <iomanip>\n#include <openssl/sha.h>\nclass XsollaWebhookSignature {\npublic:\n    static std::string computeSha1(const std::string& jsonBody, const std::string& secretKey) {\n        // Concatenation of the JSON from the request body and the project's secret key\n        std::string dataToSign = jsonBody + secretKey;\n        unsigned char digest[SHA_DIGEST_LENGTH];\n        // Create SHA1 hash\n        SHA1(reinterpret_cast<const unsigned char*>(dataToSign.c_str()),\n             dataToSign.length(), digest);\n        // Convert to lowercase hexadecimal string\n        std::ostringstream hexStream;\n        hexStream << std::hex << std::setfill('0');\n        for (int i = 0; i < SHA_DIGEST_LENGTH; ++i) {\n            hexStream << std::setw(2) << static_cast<unsigned int>(digest[i]);\n        }\n        return hexStream.str();\n    }\n    static bool verifySignature(const std::string& jsonBody, const std::string& secretKey, const std::string& receivedSignature) {\n        std::string computedSignature = computeSha1(jsonBody, secretKey);\n        // Timing-safe comparison\n        if (computedSignature.length() != receivedSignature.length()) {\n            return false;\n        }\n        volatile unsigned char result = 0;\n        for (size_t i = 0; i < computedSignature.length(); ++i) {\n            result |= (computedSignature[i] ^ receivedSignature[i]);\n        }\n        return result == 0;\n    }\n};\n```\n\n### Exemplo Go de implementação da geração de assinaturas:\n\n```go\npackage main\nimport (\n\t\"crypto/sha1\"\n    \"crypto/subtle\"\n\t\"encoding/hex\"\n\t\"strings\"\n)\ntype XsollaWebhookSignature struct{}\nfunc (x *XsollaWebhookSignature) ComputeSha1(jsonBody, secretKey string) string {\n\t// Concatenation of the JSON from the request body and the project's secret key\n\tdataToSign := jsonBody + secretKey\n\t// Create SHA1 hash\n\th := sha1.New()\n\th.Write([]byte(dataToSign))\n\tsignature := h.Sum(nil)\n\t// Convert to lowercase hexadecimal string\n\treturn strings.ToLower(hex.EncodeToString(signature))\n}\nfunc (x *XsollaWebhookSignature) VerifySignature(jsonBody, secretKey, receivedSignature string) bool {\n\tcomputedSignature := x.ComputeSha1(jsonBody, secretKey)\n\treceivedSignatureLower := strings.ToLower(receivedSignature)\n\t// Use constant time comparison to prevent timing attacks\n\treturn subtle.ConstantTimeCompare([]byte(computedSignature), []byte(receivedSignatureLower)) == 1\n}\n```\n\n### Exemplo PHP de implementação da geração de assinaturas:\n\n```php\n<?php\nclass XsollaWebhookSignature\n{\n    /**\n     * Compute SHA1 signature from webhook JSON body and secret key\n     *\n     * @param string $jsonBody The raw JSON body from webhook\n     * @param string $secretKey The project's secret key\n     * @return string The lowercase SHA1 signature\n     */\n    public static function computeSha1(string $jsonBody, string $secretKey): string\n    {\n        // Concatenation of the JSON from the request body and the project's secret key\n        $dataToSign = $jsonBody . $secretKey;\n        // Generate SHA1 signature\n        $signature = sha1($dataToSign);\n        return strtolower($signature);\n    }\n    /**\n     * Verify webhook signature using timing-safe comparison\n     *\n     * @param string $jsonBody The raw JSON body from webhook\n     * @param string $secretKey The project's secret key  \n     * @param string $receivedSignature The signature from authorization header\n     * @return bool True if signature is valid, false otherwise\n     */\n    public static function verifySignature(string $jsonBody, string $secretKey, string $receivedSignature): bool\n    {\n        $computedSignature = self::computeSha1($jsonBody, $secretKey);\n        // Use hash_equals for timing-safe comparison\n        return hash_equals($computedSignature, strtolower($receivedSignature));\n    }\n}\n?>\n```\n\n### Exemplo Node.js de implementação da geração de assinaturas:\n\n```js\nconst crypto = require('crypto');\nclass XsollaWebhookSignature {\n    // IMPORTANT: jsonBody must be the raw JSON string exactly as received from Xsolla\n    static computeSha1(jsonBody, secretKey) {\n        // Concatenation of the JSON from the request body and the project's secret key\n        const dataToSign = jsonBody + secretKey;\n        // Create SHA1 hash\n        const hash = crypto.createHash('sha1');\n        hash.update(dataToSign, 'utf8');\n        // Convert to lowercase hexadecimal string\n        return hash.digest('hex').toLowerCase();\n    }\n    static verifySignature(jsonBody, secretKey, receivedSignature) {\n        const computedSignature = this.computeSha1(jsonBody, secretKey);\n        const cleanReceivedSignature = receivedSignature.toLowerCase();\n        // Check if signatures have the same length before using timingSafeEqual\n        if (computedSignature.length !== cleanReceivedSignature.length) {\n            return false;\n        }\n        try {\n            return crypto.timingSafeEqual(\n                Buffer.from(computedSignature, 'hex'),\n                Buffer.from(cleanReceivedSignature, 'hex')\n            );\n        } catch (error) {\n            // Return false if there's any error (e.g., invalid hex characters)\n            return false;\n        }\n    }\n}\n```\n\n## Enviando respostas ao webhook\n\nPara confirmar o recebimento do webhook, o servidor deve retornar:\n* Código HTTP `200`, `201` ou `204` em caso de resposta bem-sucedida.\n* Código HTTP `400` com uma <a \n  href=\"/webhooks/overview/#section/Erros\">descrição do problema</a> se o \n  usuário especificado não for encontrado ou uma assinatura inválida for passada. \n  Seu manipulador de webhooks também pode retornar um código HTTP `5xx` em caso \n  de problemas temporários em seu servidor.\n\nSe o servidor Xsolla não recebeu uma resposta aos webhooks <a \nhref=\"/webhooks/operation/successful-order-payment\">Pagamento bem-sucedido do \npedido</a> e <a href=\"/webhooks/operation/order-cancellation\">Cancelamento do \npedido</a>, ou recebeu uma resposta com um código `5xx`, os webhooks serão \nreenviados de acordo com o seguinte agendamento:\n* 2 tentativas com intervalo de 5 minutos\n* 7 tentativas com intervalo de 15 minutos\n* 10 tentativas com intervalo de 60 minutos\n\nNo máximo são feitas 20 tentativas de enviar webhooks dentro de 12 horas a \npartir da primeira tentativa.\n\nA lógica de repetição para os webhooks <a \nhref=\"/webhooks/operation/payment\">Pagamento</a> e <a \nhref=\"/webhooks/operation/refund\">Reembolso</a> está descrita na página \ncorrespondente do webhook.\n\n<div class=\"notice\">\n<p><strong>Aviso</strong></p>\n<p>O pagamento ainda será reembolsado ao usuário se todas as seguintes condições forem atendidas:<ul><li>O reembolso foi iniciado pela Xsolla.</li><li>Em resposta a um webhook, um código de status <code>4xx</code> foi retornado, ou nenhuma resposta foi recebida após todas as tentativas repetidas, ou um código de status <code>5xx</code> foi retornado.</li></ul></p>\n</div>\n\nSe o servidor Xsolla não recebeu uma resposta ao webhook <a \nhref=\"/webhooks/operation/user-validation/\">Validação de usuário</a> ou recebeu \numa resposta com um código de `400` ou `5xx`, o webhook <a \nhref=\"/webhooks/operation/user-validation/\">Validação de usuário</a> não será \nreenviado. Nesse caso, o usuário vê um erro e os webhooks <a \nhref=\"/webhooks/operation/payment\">Pagamento</a> e <a href=\"/webhooks/operation\n/successful-order-payment\">Pagamento bem-sucedido do pedido</a> não são \nenviados.\n\n# Erros\n\nCódigos de erro para o código HTTP 400:\n\n<table>\n<thead>\n    <tr>\n        <th>Código</th>\n        <th>Mensagem</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td>INVALID_USER</td>\n        <td>Usuário inválido</td>\n    </tr>\n    <tr>\n        <td>INVALID_PARAMETER</td>\n        <td>Parâmetro inválido</td>\n    </tr>\n    <tr>\n        <td>INVALID_SIGNATURE</td>\n        <td>Assinatura inválida</td>\n    </tr>\n    <tr>\n        <td>INCORRECT_AMOUNT</td>\n        <td>Quantia incorreta</td>\n    </tr>\n    <tr>\n        <td>INCORRECT_INVOICE</td>\n        <td>Invoice incorreto</td>\n    </tr>\n</tbody>\n</table>\n\n```\nHTTP/1.1 400 Bad Request\n{\n    \"error\":{\n        \"code\":\"INVALID_USER\",\n        \"message\":\"Invalid user\"\n    }\n}\n```\n\n# Lista de webhooks\n\n<div class=\"note\">\n<p><strong>Observação</strong></p>\n<p>O tipo de notificação é enviado no parâmetro <code>notification_type</code>.</p>\n</div>\n\n<table>\n<thead>\n    <tr>\n        <th>Webhook</th>\n        <th>Tipo de notificação</th>\n        <th>Descrição</th>\n    </tr>\n</thead>\n<tbody>\n    <tr>\n        <td><a href=\"/webhooks/operation/user-validation/\">Validação de usuário</a></td>\n        <td><code>user_validation</code></td>\n        <td>Enviado para verificar se um usuário existe no jogo.</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/user-search/\">Pesquisa de usuário</a></td>\n        <td><code>user_search</code></td>\n        <td>Enviado para obter as informações do usuário com base no ID de usuário público.</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/payment/\">Pagamento</a></td>\n        <td><code>payment</code></td>\n        <td>Enviado quando um usuário conclui um pagamento.</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/refund/\">Reembolso</a></td>\n        <td><code>refund</code></td>\n        <td>Enviado quando um pagamento precisa ser cancelado por qualquer motivo.</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/partial-refund/\">Reembolso parcial</a></td>\n        <td><code>partial_refund</code></td>\n        <td>Enviado quando um pagamento deve ser parcialmente cancelado por qualquer motivo.</td>\n    </tr>\n    <tr>\n        <td><a href=\"/webhooks/operation/payment-declined/\">Pagamento recusado</a></td>\n        <td><code>ps_declined</code></td>\n        <td>Enviado quando um pagamento é recusado pelo sistema de pagamento.</td>\n    </tr>\n    <tr>\n        <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/afs-rejected-transaction/\">Transação rejeitada pelo AFS</a></td>\n        <td><code>afs_reject</code></td>\n        <td>Enviado quando uma transação é recusada durante uma verificação AFS.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/afs-rejected-blocklist/\">Lista de bloqueios atualizada do AFS</a></td>\n      <td><code>afs_black_list</code></td>\n      <td>Enviado quando a lista de bloqueio do AFS é atualizada.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/created-subscription/\">Assinatura criada</a></td>\n      <td><code>create_subscription</code></td>\n      <td>Enviado quando um usuário cria uma assinatura.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/updated-subscription/\">Assinatura atualizada</a></td>\n      <td><code>update_subscription</code></td>\n      <td>Enviado quando uma assinatura é renovada ou alterada.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/canceled-subscription/\">Assinatura cancelada</a></td>\n      <td><code>cancel_subscription</code></td>\n      <td>Enviado quando uma assinatura é cancelada.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/nonrenewing-subscription/\">Assinatura não renovável</a></td>\n      <td><code>non_renewal_subscription</code></td>\n      <td>Enviado quando o status é definido como não renovável.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/add-payment-account/\">Adicionar conta de pagamento</a></td>\n      <td><code>payment_account_add</code></td>\n      <td>Enviado quando um usuário adiciona ou salva uma conta de pagamento.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/remove-payment-account/\">Remover conta de pagamento</a></td>\n      <td><code>payment_account_remove</code></td>\n      <td>Enviado quando um usuário remove a conta de pagamento das contas salvas.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/user-validation-in-webshop\">Validação de usuário na Web Shop</a></td>\n      <td><code>-</code></td>\n      <td>Enviado de um site Web Shop para verificar se um usuário existe no jogo.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/personalized-partner-catalog\">Personalização de catálogo no lado do parceiro</a></td>\n      <td><code>partner_side_catalog</code></td>\n      <td>Enviado quando um usuário interage com a loja.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/successful-order-payment\">Pagamento bem-sucedido do pedido</a></td>\n      <td><code>order_paid</code></td>\n      <td>Enviado quando um pedido é pago.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/order-cancellation\">Cancelamento do pedido</a></td>\n      <td><code>order_canceled</code></td>\n      <td>Enviado quando um pedido é cancelado.</td>\n    </tr>\n    <tr>\n      <td><a href=\"https://developers.xsolla.com/pt/webhooks/operation/dispute\">Disputa</a></td>\n      <td><code>dispute</code></td>\n      <td>Enviado quando uma nova disputa é aberta.</td>\n    </tr>\n</tbody>\n</table>\n"
  title: Webhooks
  version: '1.0'
servers:
  - url: https://api.xsolla.com/merchant/v2
tags:
  - name: user-validation
    x-displayName: Validação do usuário
  - name: payments
    x-displayName: Pagamentos
  - name: game-services
    x-displayName: Serviços de jogos
  - name: anti-fraud
    x-displayName: Antifraude
  - name: subscriptions
    x-displayName: Assinaturas
  - name: combined-webhooks
    x-displayName: Webhooks combinados
  - name: separate-webhooks
    x-displayName: Webhooks separados
  - name: personalization
    x-displayName: Webhook de personalização
webhooks:
  add-payment-account:
    post:
      description: >-
        A Xsolla envia um webhook com o tipo `payment_account_add` para o URL do
        webhook sempre que um usuário adiciona uma conta de pagamento ou salva
        uma conta de pagamento ao comprar algo dentro do jogo. Para receber este
        webhook, entre em contato com seu Gerente de Sucesso do Cliente ou envie
        um e-mail para <a href="mailto:csm@xsolla.com">csm@xsolla.com</a>.
      operationId: add-payment-account
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                payment_account:
                  description: Detalhes da conta de pagamento (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/payment_account.country'
                    id:
                      $ref: '#/components/schemas/payment_account.id'
                    name:
                      $ref: '#/components/schemas/payment_account.name'
                    payment_method:
                      $ref: '#/components/schemas/payment_account.payment_method'
                    type:
                      $ref: '#/components/schemas/payment_account.type'
                  required:
                    - id
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                    zip:
                      $ref: '#/components/schemas/user.zip'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Adicionar conta de pagamento
      tags:
        - payments
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type":"payment_account_add",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US",
                    "zip": "12345"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "country": "US",
                    "type": "paypal"
                }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 255
            content-type:   application/json
            authorization:  Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843

            {
                "notification_type": "payment_account_add",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US",
                    "zip": "12345"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "country": "US",
                    "type": "paypal"
                }
            }
  afs-rejected-blocklist:
    post:
      description: >-
        Quando a lista de bloqueio do sistema antifraude é atualizada (um
        parâmetro é adicionado ou removido), a Xsolla envia um webhook com o
        tipo `afs_black_list` para o URL do webhook. A adição de parâmetros é
        executada automaticamente no lado Xsolla ou quando solicitado. A remoção
        de parâmetros só é possível mediante solicitação. Para receber este
        webhook, entre em contato com seu Gerente de Sucesso do Cliente ou envie
        um e-mail para <a href="mailto:csm@xsolla.com">csm@xsolla.com</a>.
      operationId: afs-rejected-blocklist
      requestBody:
        content:
          application/json:
            schema:
              properties:
                event:
                  description: >-
                    Objeto com informações sobre o evento de lista de bloqueios
                    do AFS.
                  properties:
                    action:
                      description: Tipo de evento.
                      enum:
                        - adding
                        - removing
                      type: string
                    date_of_last_action:
                      description: >-
                        Hora do último evento de lista de bloqueio AFS no
                        formato [ISO
                        8601](https://en.wikipedia.org/wiki/ISO_8601).
                      type: string
                    parameter:
                      description: Nome do parâmetro pelo qual o evento ocorreu.
                      enum:
                        - nick
                        - email
                        - ps_account
                        - ip_address
                        - card_issuer
                        - phone
                      type: string
                      x-enumDescriptions:
                        card_issuer: banco emissor do cartão de crédito do usuário
                        email: endereço de e-mail do usuário
                        ip_address: endereço IP do usuário
                        nick: apelido do usuário
                        phone: número de telefone do usuário
                        ps_account: conta de faturamento do usuário
                    parameter_value:
                      description: Valor do parâmetro pelo qual o evento ocorreu.
                      type: string
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                    reason:
                      description: Causa do evento.
                      enum:
                        - chargeback
                        - fraud_activity
                        - suspicious_activity
                        - ps_reported_fraud
                        - linked_chargeback
                        - partner_request
                        - friendly_fraud
                        - user_reported_fraud
                        - linked_parameter
                        - other_data_in_blacklist
                        - by_afs_filters
                        - wrongly_added
                        - removed_by_cs_review
                        - other_forgiveness_reason
                      type: string
                      x-enumDescriptions:
                        by_afs_filters: Filtro AFS (adição)
                        chargeback: estorno (adição)
                        fraud_activity: fraude (adição)
                        friendly_fraud: fraude amigável (adição)
                        linked_chargeback: relação de estorno (adição)
                        linked_parameter: parâmetro vinculado na lista de bloqueios AFS (adição)
                        other_data_in_blacklist: outros parâmetros na lista de bloqueio AFS (adição)
                        other_forgiveness_reason: outro motivo para remover (remoção)
                        partner_request: quando solicitado (adição)
                        ps_reported_fraud: >-
                          notificação do sistema de pagamento sobre fraudes
                          (adição)
                        removed_by_cs_review: >-
                          removido após reportar ao suporte técnico da Xsolla
                          (remoção)
                        suspicious_activity: atividade suspeita (adição)
                        user_reported_fraud: relatório de usuário sobre fraude (adição)
                        wrongly_added: adicionado por engano (remoção)
                    transaction_id:
                      description: >-
                        ID de transação associada ao parâmetro pelo qual o
                        evento ocorreu.
                      type: string
                  type: object
                notification_type:
                  $ref: '#/components/schemas/notification_type'
              required:
                - notification_type
                - event
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Atualização da lista de bloqueio antifraude
      tags:
        - anti-fraud
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'authorization: Signature
            32c64a80d2527dc08906ae1891bac4489509b9f6' \

            -d '{
              "event": {
                "action": "adding",
                "date_of_last_action": "2020-11-27T10:09:05+03:00",
                "parameter": "email",
                "parameter_value": "email@example.com",
                "reason": "ps_reported_fraud",
                "transaction_id": "111111111",
                "project_id": "123456"
              },
              "notification_type": "afs_black_list"
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 233
            authorization: Signature 32c64a80d2527dc08906ae1891bac4489509b9f6

            {
              "event": {
                "action": "adding",
                "date_of_last_action": "2020-11-27T10:09:05+03:00",
                "parameter": "email",
                "parameter_value": "email@example.com",
                "reason": "ps_reported_fraud",
                "transaction_id": "111111111",
                "project_id": "123456"
              },
              "notification_type": "afs_black_list"
            }
  afs-rejected-transaction:
    post:
      description: >
        Quando uma transação é recusada durante uma verificação do sistema
        antifraude, 

        a Xsolla envia detalhes da transação no webhook com o tipo `afs_reject`
        para o 

        URL do webhook. Para receber este webhook, entre em contato com seu
        Gerente de 

        Sucesso do Cliente ou envie um e-mail para <a 

        href="mailto:csm@xsolla.com">csm@xsolla.com</a>.


        Ao salvar o URL do webhook na Conta de Distribuidor, você pode conceder 

        permissões para receber informações detalhadas nos webhooks. Para fazer
        isso, 

        defina a seguinte opção como ativa na Conta de Distribuidor na seção <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">Project 

        settings &gt; Webhooks &gt; Advanced settings</a>.


        <div class="note">

        <p><strong>Observação</strong></p>

        <p>Se você se registrou na Conta de Distribuidor no dia 22 de janeiro de
        2025 ou antes, você encontrará as opções na seção <a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">Project
        settings &gt; Webhooks &gt; Testing &gt; Payments &gt; Advanced
        settings</a>.</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>Opção</th>
                <th>Descrição</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>Exibir informações sobre transações pelos métodos de pagamento salvos</td>
                <td><p>As informações são passadas nos seguintes parâmetros personalizados do webhook:</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — o método de pagamento guardado não foi utilizado</li><li><code>1</code> — o método de pagamento foi salvo ao efetuar o pagamento atual</li><li><code>2</code> — o método de pagamento previamente guardado é utilizado</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — pagamento único</li><li><code>2</code> — pagamento recorrente</li></ul></li></ul></td>
            </tr>
        </tbody>

        </table>
      operationId: afs-rejected-transaction
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                refund_details:
                  description: Detalhes do reembolso (objeto).
                  properties:
                    author:
                      description: Iniciador de reembolso.
                      type: string
                    code:
                      description: ID do código.
                      type: integer
                    reason:
                      description: Motivo do reembolso.
                      type: string
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                transaction:
                  description: Detalhes da transação (objeto).
                  properties:
                    agreement:
                      description: ID do contrato.
                      type: integer
                    dry_run:
                      description: >-
                        Transação de teste. O parâmetro tem valor 1 se for uma
                        transação de teste ou não for enviado se a transação for
                        real.
                      type: integer
                    external_id:
                      description: ID externo de transação.
                      type: string
                    id:
                      description: ID de transação.
                      type: integer
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                    phone:
                      description: Telefone do usuário.
                      type: string
                    zip:
                      $ref: '#/components/schemas/user.zip'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - transaction
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: O sistema antifraude rejeitou a transação
      tags:
        - anti-fraud
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: |-
            curl -v 'https://your.hostname/your/uri' \
            -X POST \
            -d '{
              "notification_type": "afs_reject",
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "ip": "127.0.0.1",
                "phone": "18777976552",
                "email": "email@example.com",
                "id": "1234567",
                "name": "John Smith",
                "country": "US"
              },
              "transaction": {
                "id": 1,
                "external_id": 1,
                "dry_run": 1,
                "agreement": 1
              },
              "refund_details": {
                "code": 4,
                "reason": "Potential fraud"
              }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
              'notification_type' => 'afs_reject',
              'settings' => array(
                'project_id' => 18404,
                'merchant_id' => 2340
              ),
              'user' => array(
                'ip' => '127.0.0.1',
                'phone' => '18777976552',
                'email' => 'email@example.com',
                'id' => '1234567',
                'country' => 'US'
              ),
              'transaction' => array(
                'id' => 87654321,
                'payment_method' => 1380,
                'dry_run' => 1
              ),
              'refund_details' => array(
                'code' => 4,
                'reason' => 'Potential fraud'
              )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1220
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
              "notification_type": "afs_reject",
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "ip": "127.0.0.1",
                "phone": "18777976552",
                "email": "email@example.com",
                "id": "1234567",
                "name": "John Smith",
                "country": "US"
              },
              "transaction": {
                "id": 1,
                "external_id": 1,
                "dry_run": 1,
                "agreement": 1
              },
              "refund_details": {
                "code": 4,
                "reason": "Potential fraud"
              }
            }
  canceled-subscription:
    post:
      description: >-
        Quando uma assinatura é cancelada, a Xsolla envia um webhook com o tipo
        `cancel_subscription` para o URL do webhook.
      operationId: canceled-subscription
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                subscription:
                  description: Dados da assinatura (objeto).
                  properties:
                    date_create:
                      $ref: '#/components/schemas/subscription.date_create'
                    date_end:
                      $ref: '#/components/schemas/subscription.date_end'
                    plan_id:
                      $ref: '#/components/schemas/subscription.plan_id'
                    product_id:
                      $ref: '#/components/schemas/subscription.product_id'
                    subscription_id:
                      $ref: '#/components/schemas/subscription.subscription_id'
                    tags:
                      $ref: '#/components/schemas/subscription.tags'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    id:
                      $ref: '#/components/schemas/user.id'
                    name:
                      $ref: '#/components/schemas/user.name'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Assinatura cancelada
      tags:
        - subscriptions
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "cancel_subscription",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "user": {
                        "id": "1234567",
                        "name": "John Smith"
                    },
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_end": "2015-01-22T19:25:25+04:00"
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'cancel_subscription',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'id' => '1234567',
                    'name' => 'John Smith'
                ),
                'subscription' => array(
                    'plan_id' => 'b5dac9c8',
                    'subscription_id' => '10',
                    'product_id' => 'Demo Product',
                    'date_create' => '2014-09-22T19:25:25+04:00',
                    'date_end' => '2015-01-22T19:25:25+04:00',
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "cancel_subscription",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user":{
                    "id": "1234567",
                    "name": "John Smith"
                },
                "subscription": {
                    "plan_id": "b5dac9c8",
                    "subscription_id": "10",
                    "product_id": "Demo Product",
                    "date_create": "2014-09-22T19:25:25+04:00",
                    "date_end": "2015-01-22T19:25:25+04:00"
                }
            }
  created-subscription:
    post:
      description: >-
        Quando um usuário cria uma assinatura, a Xsolla envia um webhook com o
        tipo `create_subscription` para o URL do webhook.
      operationId: created-subscription
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: Seus parâmetros personalizados.
                  type: object
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                subscription:
                  description: Dados da assinatura (objeto).
                  properties:
                    date_create:
                      $ref: '#/components/schemas/subscription.date_create'
                    date_next_charge:
                      $ref: '#/components/schemas/subscription.date_next_charge'
                    is_gift:
                      $ref: '#/components/schemas/subscription.is_gift'
                    plan_id:
                      $ref: '#/components/schemas/subscription.plan_id'
                    product_id:
                      $ref: '#/components/schemas/subscription.product_id'
                    subscription_id:
                      $ref: '#/components/schemas/subscription.subscription_id'
                    tags:
                      $ref: '#/components/schemas/subscription.tags'
                    trial:
                      description: Período experimental (objeto).
                      properties:
                        type:
                          description: 'Tipo de período de avaliação: day.'
                          type: string
                        value:
                          description: Período de avaliação.
                          type: integer
                      type: object
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    id:
                      $ref: '#/components/schemas/user.id'
                    name:
                      $ref: '#/components/schemas/user.name'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Assinatura criada
      tags:
        - subscriptions
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "create_subscription",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "user": {
                        "id": "1234567",
                        "name": "John Smith"
                    },
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_next_charge": "2015-01-22T19:25:25+04:00",
                        "trial": {
                                "value": 90,
                                "type": "day"
                            },
                        "is_gift": true
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'create_subscription',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'id' => '1234567',
                    'name' => 'John Smith'
                ),
                'subscription' => array(
                    'plan_id' => 'b5dac9c8',
                    'subscription_id' => '10',
                    'product_id' => 'Demo Product',
                    'date_create' => '2014-09-22T19:25:25+04:00',
                    'date_next_charge' => '2015-01-22T19:25:25+04:00',
                    'trial' =>  array(
                            'value' =>  90,
                            'type' =>  'day'
                        ),
                    'is_gift' => true,
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            Host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "create_subscription",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "name": "John Smith"
                },
                "subscription": {
                    "plan_id": "b5dac9c8",
                    "subscription_id": "10",
                    "product_id": "Demo Product",
                    "date_create": "2014-09-22T19:25:25+04:00",
                    "date_next_charge": "2015-01-22T19:25:25+04:00",
                    "trial": {
                            "value": 90,
                            "type": "day"
                        },
                    "is_gift": true
                }
            }
  dispute:
    post:
      description: >-
        Quando uma nova disputa é aberta ou quando seu status é alterado, a
        Xsolla envia um webhook com o tipo `dispute` ao URL do webhook. Para
        receber esse webhook, contate seu Gerente de Sucesso do Cliente ou envie
        um e-mail para <a href="mailto:csm@xsolla.com">csm@xsolla.com</a>.
      operationId: dispute
      requestBody:
        content:
          application/json:
            schema:
              properties:
                action:
                  description: Tipo de ação.
                  enum:
                    - adding
                    - updating
                  type: string
                  x-enumDescriptions:
                    adding: Uma nova disputa foi aberta.
                    updating: O status de uma disputa foi alterado.
                dispute:
                  description: Objeto com informações sobre a disputa.
                  properties:
                    incoming_date:
                      $ref: '#/components/schemas/dispute-date'
                    reason:
                      $ref: '#/components/schemas/dispute-reason'
                    status:
                      $ref: '#/components/schemas/dispute-status'
                    type:
                      $ref: '#/components/schemas/dispute-type'
                  required:
                    - incoming_date
                    - reason
                    - type
                    - status
                  type: object
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: >-
                    Objeto com informações sobre as configurações de projeto
                    personalizadas.
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  required:
                    - project_id
                    - merchant_id
                  type: object
                transaction:
                  description: Objeto com informações sobre a transação.
                  properties:
                    country_code:
                      $ref: '#/components/schemas/user.country'
                    date_create:
                      $ref: '#/components/schemas/date-create'
                    external_id:
                      $ref: '#/components/schemas/external-id'
                    id:
                      $ref: '#/components/schemas/transaction-id'
                    payment_method:
                      $ref: '#/components/schemas/dispute-payment-method'
                    total:
                      description: Objeto com informações sobre a quantia da transação.
                      properties:
                        amount:
                          $ref: '#/components/schemas/transaction-total-amount'
                        currency:
                          $ref: '#/components/schemas/currency'
                      required:
                        - amount
                        - currency
                      type: object
                  required:
                    - id
                    - date_create
                    - total
                    - payment_method
                    - country_code
                  type: object
                user:
                  description: Objeto com informações sobre um usuário.
                  properties:
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - action
                - transaction
                - settings
                - user
                - dispute
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Disputa
      tags:
        - anti-fraud
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'authorization: Signature
            32c64a80d2527dc08906ae1891bac4489509b9f6' \

            -d '{
              "notification_type": "dispute",
              "action": "adding",
              "transaction": {
                "id": 123456789,
                "date_create": "2023-08-24T10:21:00+04:00",
                "total": {
                  "amount": 1,
                  "currency": "EUR"
                },
                "payment_method": "credit_debit_card"
              },
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "id": "1234567",
                "email": "email@example.com",
                "country_code": "US"
              },
              "dispute": {
                "incoming_date": "2024-01-25T01:02:03+04:00",
                "reason": "not_as_described",
                "type": "retrieval",
                "status": "new"
              }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-Type: application/json
            content-Length: 578
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
              "notification_type": "dispute",
              "action": "adding",
              "transaction": {
                "id": 123456789,
                "date_create": "2023-08-24T10:21:00+04:00",
                "total": {
                  "amount": 1,
                  "currency": "EUR"
                },
                "payment_method": "credit_debit_card"
              },
              "settings": {
                "project_id": 18404,
                "merchant_id": 2340
              },
              "user": {
                "id": "1234567",
                "email": "email@example.com",
                "country_code": "US"
              },
              "dispute": {
                "incoming_date": "2024-01-25T01:02:03+04:00",
                "reason": "not_as_described",
                "type": "retrieval",
                "status": "new"
              }
            }
  nonrenewing-subscription:
    post:
      description: >-
        Quando o status de uma assinatura é definido como não renovável, a
        Xsolla envia um webhook com o tipo `non_renewal_subscription` para o URL
        do webhook. Para receber este webhook, entre em contato com seu Gerente
        de Sucesso do Cliente ou envie um e-mail para <a
        href="mailto:csm@xsolla.com">csm@xsolla.com</a>.
      operationId: nonrenewing-subscription
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  required:
                    - project_id
                  type: object
                subscription:
                  description: Dados da assinatura (objeto).
                  properties:
                    amount:
                      description: Preço em moeda real.
                      format: float
                      type: number
                    currency:
                      $ref: '#/components/schemas/currency'
                    date_create:
                      $ref: '#/components/schemas/subscription.date_create'
                    date_next_charge:
                      description: >-
                        Próxima data de cobrança. Esta é a data em que um
                        próximo pagamento era esperado antes que a assinatura do
                        usuário fosse definida como "não renovável". Data e hora
                        de acordo com o [ISO
                        8601](https://en.wikipedia.org/wiki/ISO_8601).
                      type: string
                    plan_id:
                      $ref: '#/components/schemas/subscription.plan_id'
                    subscription_id:
                      $ref: '#/components/schemas/subscription.subscription_id'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    name:
                      $ref: '#/components/schemas/user.name'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Assinatura não renovável
      tags:
        - subscriptions
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "non_renewal_subscription",
                    "settings": {
                      "project_id": 12345,
                      "merchant_id": 1234
                    },
                    "user": {
                        "id": "1234567",
                        "email": "email@example.com"
                    },
                    "subscription": {
                        "plan_id": "a1bcd2e3",
                        "subscription_id": "10",
                        "date_create": "2014-12-22T15:25:25+04:00",
                        "date_next_charge": "2015-01-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 0.03
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'non_renewal_subscription',
                'settings' => array(
                  'project_id' => 12345,
                  'merchant_id' => 1234
                ),
                'user' => array(
                    'id' => '1234567',
                    'email' => 'email@example.com'
                ),
                'subscription' => array(
                    'plan_id' => 'a1bcd2e3',
                    'subscription_id' => '10',
                    'date_create' => '2014-12-22T15:25:25+04:00',
                    'date_next_charge' => '2015-01-22T19:25:25+04:00',
                    'currency' => 'USD',
                    'amount' => 0.03
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "non_renewal_subscription",
                "settings": {
                  "project_id": 12345,
                  "merchant_id": 1234
                },
                "user": {
                    "id": "1234567",
                    "email": "email@example.com"
                },
                "subscription": {
                    "plan_id": "a1bcd2e3",
                    "subscription_id": "10",
                    "date_create": "2014-12-22T15:25:25+04:00",
                    "date_next_charge": "2015-01-22T19:25:25+04:00",
                    "currency": "USD",
                    "amount": 0.03
                }
            }
  order-cancellation:
    post:
      description: >
        A Xsolla envia o webhook <code>order_canceled</code> para o URL
        especificado 

        quando o pagamento é cancelado pelo usuário, parceiro ou
        automaticamente. O 

        webhook contém informações sobre itens devolvidos, dados de pagamento e 

        detalhes do pedido cancelado.


        O webhook não é enviado se o pagamento não for bem-sucedido. Por
        exemplo:

        * o formulário da interface de pagamento foi aberto, mas o usuário não
        pagou pelo 
          pedido.
        * o formulário da interface de pagamento foi aberto, mas houve erros
        durante o 
          pagamento.

        O tempo recomendado para processamento do webhook é de dentro de 3
        segundos.
      operationId: order-cancellation
      requestBody:
        content:
          application/json:
            schema:
              properties:
                billing:
                  description: Detalhes da transação e do pagamento.
                  properties:
                    notification_type:
                      $ref: '#/components/schemas/notification_type'
                    payment_details:
                      description: Detalhes de pagamento (objeto).
                      properties:
                        country_wht:
                          description: >-
                            Imposto retido na fonte aplicado em países
                            específicos devido a transações internacionais
                            (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Taxa de retenção na fonte do país, %.
                              format: float
                              type: number
                          type: object
                        direct_wht:
                          description: Imposto retido direto na fonte.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Alíquota de retenção direta na fonte.
                              format: float
                              type: number
                          type: object
                        payment:
                          description: Valor pago pelo usuário (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payment_method_fee:
                          description: Taxa do sistema de pagamento.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payment_method_sum:
                          description: Valor debitado do sistema de pagamento.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payout:
                          description: Dados de pagamento (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payout_currency_rate:
                          description: >-
                            Taxa de câmbio entre as moedas de pagamento e
                            remuneração.
                          type: string
                        repatriation_commission:
                          description: >-
                            Objeto com dados sobre os custos de repatriamento,
                            imposto à Xsolla por terceiros.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        sales_tax:
                          description: Imposto sobre vendas (objeto; apenas EUA e Canadá).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Alíquota de imposto sobre vendas.
                              format: float
                              type: number
                          type: object
                        user_acquisition_fee:
                          description: >-
                            Valor total das taxas de aquisição de usuários
                            deduzidas para as compras feitas por meio de redes
                            afiliadas e influenciadores (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Proporção de taxa de aquisição de usuários, %.
                              format: float
                              type: number
                          type: object
                        vat:
                          description: Dados do IVA (objeto; apenas na UE).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Taxa de IVA.
                              format: float
                              type: number
                          type: object
                        xsolla_balance_sum:
                          description: Valor debitado do saldo Xsolla.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        xsolla_fee:
                          description: Taxa Xsolla (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                      type: object
                    purchase:
                      description: Dados da compra (objeto).
                      properties:
                        subscription:
                          description: Dados da assinatura (objeto).
                          properties:
                            amount:
                              $ref: '#/components/schemas/amount-float'
                            currency:
                              $ref: '#/components/schemas/currency'
                            date_create:
                              $ref: '#/components/schemas/subscription.date_create'
                            plan_id:
                              $ref: '#/components/schemas/subscription.plan_id'
                            subscription_id:
                              $ref: >-
                                #/components/schemas/subscription.subscription_id
                            tags:
                              $ref: '#/components/schemas/subscription.tags'
                          type: object
                        total:
                          description: Preço total de compra (objeto).
                          properties:
                            amount:
                              description: Valor total do pagamento.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                      required:
                        - total
                      type: object
                    refund_details:
                      description: Detalhes do reembolso (objeto).
                      properties:
                        author:
                          description: >
                            Iniciador de reembolso. O valor do campo é passado
                            de acordo com a tabela:


                            <table>
                                <thead>
                                <tr>
                                    <th>Iniciador de reembolso</th>
                                    <th>Valor do campo</th>
                                </tr>
                                </thead>
                                <tbody>
                                <tr>
                                    <td>Jogo (via API).</td>
                                    <td>API</td>
                                </tr>
                                <tr>
                                    <td>Usuário da Publisher Account (reembolso automático).</td>
                                    <td>E-mail do usuário</td>
                                </tr>
                                <tr>
                                    <td>Usuário da Publisher Account (com assistência do suporte ao cliente Xsolla).</td>
                                    <td>support@xsolla.com</td>
                                </tr>
                                <tr>
                                    <td>Xsolla (com assistência do suporte ao cliente Xsolla).</td>
                                    <td>support@xsolla.com</td>
                                </tr>
                                </tbody>
                            </table>
                          type: string
                        code:
                          description: ID do código.
                          type: integer
                        reason:
                          description: Motivo do reembolso.
                          type: string
                      type: object
                    settings:
                      description: Configurações personalizadas do projeto (objeto).
                      properties:
                        merchant_id:
                          $ref: '#/components/schemas/settings.merchant_id'
                        project_id:
                          $ref: '#/components/schemas/settings.project_id'
                      type: object
                    transaction:
                      description: Detalhes da transação (objeto).
                      properties:
                        agreement:
                          description: ID do contrato.
                          type: integer
                        dry_run:
                          description: >-
                            Transação de teste. O parâmetro tem valor 1 se for
                            uma transação de teste ou não for enviado se a
                            transação for real.
                          type: integer
                        external_id:
                          description: ID externo de transação.
                          type: string
                        id:
                          description: ID de transação.
                          type: integer
                        payment_method_order_id:
                          description: ID de pagamento no sistema de pagamento.
                          type: string
                      type: object
                  required:
                    - notification_type
                    - transaction
                    - payment_details
                  type: object
                custom_parameters:
                  description: Informações adicionais.
                  type: object
                items:
                  description: >
                    Lista de itens comprados pelo usuário.


                    O conjunto de parâmetros incluídos na matriz depende da
                    versão do webhook. A 

                    versão 2 inclui parâmetros adicionais: `is_free`,
                    `is_bonus`, e 

                    `is_bundle_content`. Para alternar a versão, passe seu
                    número no parâmetro 

                    `version` na chamada API [Atualizar informações de
                    configurações do 

                    webhook](/pt/api/igs/operation/update-webhook/).
                  items:
                    oneOf:
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                        title: versão = 1
                        type: object
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_bonus:
                            description: Se `true`, o item é um bônus.
                            type: boolean
                          is_bundle_content:
                            description: Se `true`, o item pertence a um conjunto.
                            type: boolean
                          is_free:
                            description: Se `true`, o item é gratuito.
                            type: boolean
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                          - is_free
                          - is_bonus
                          - is_bundle_content
                        title: versão = 2
                        type: object
                  type: array
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                order:
                  description: Informações sobre o pedido.
                  properties:
                    amount:
                      description: >-
                        O custo total de um carrinho com base na moeda
                        escolhida.
                      type: string
                    comment:
                      description: Comentário do usuário ao pedido.
                      nullable: true
                      type: string
                    coupons:
                      description: >-
                        Cupons aplicados. Se o cupom não for aplicado, a matriz
                        não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um cupom aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    currency:
                      description: >-
                        Moeda de ordem. A moeda virtual usa o SKU e a moeda real
                        usa um código [ISO
                        4217](https://en.wikipedia.org/wiki/ISO_4217) de três
                        letras.
                      type: string
                    currency_type:
                      $ref: '#/components/schemas/currency-type'
                    id:
                      description: >-
                        Identificador exclusivo do pedido do usuário no lado da
                        Xsolla.
                      type: integer
                    invoice_id:
                      description: >-
                        ID da fatura de pagamentos em moeda real. Pagamentos em
                        moedas virtuais ou itens grátis têm um valor `null`.
                      nullable: true
                      type: string
                    mode:
                      description: >-
                        Modalidade de pagamento. `default` é usado para
                        pagamentos reais; `sandbox` para pagamentos de testes.
                      enum:
                        - default
                        - sandbox
                      type: string
                    platform:
                      description: >-
                        Plataforma de pagamento. O valor `xsolla` é usado para
                        pagamentos via Xsolla. Para outros pagamentos, o valor
                        correspondente ao nome da plataforma de publicação de
                        jogos é usado: `playstation_network`, `xbox_live`,
                        `pc_standalone`, `nintendo_shop`, `google_play`,
                        `app_store_ios`, `android_standalone`, `ios_standalone`,
                        `android_other`, `ios_other`, `pc_other`.
                      enum:
                        - xsolla
                        - playstation_network
                        - xbox_live
                        - pc_standalone
                        - nintendo_shop
                        - google_play
                        - app_store_ios
                        - android_standalone
                        - ios_standalone
                        - android_other
                        - ios_other
                        - pc_other
                      nullable: true
                      type: string
                    promocodes:
                      description: >-
                        Códigos promocionais aplicados. Se o código promocional
                        não for aplicado, a matriz não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um código promocional aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    promotions:
                      $ref: '#/components/schemas/order.promotions'
                    status:
                      description: Status do pedido.
                      type: string
                  required:
                    - id
                    - mode
                    - currency_type
                    - currency
                    - amount
                    - status
                    - platform
                    - comment
                    - invoice_id
                    - promotions
                  type: object
                user:
                  description: Informações do usuário.
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      description: Endereço de e-mail do usuário.
                      type: string
                    external_id:
                      description: ID de usuário.
                      type: string
                  required:
                    - external_id
                    - email
                  type: object
              required:
                - notification_type
                - items
                - order
                - user
                - transaction
                - payment_details
      responses:
        '200':
          description: Retorne para indicar o processamento bem-sucedido.
        '400':
          description: >-
            Retorne em caso de erro nas informações fornecidas (por exemplo, um
            parâmetro obrigatório ausente, falha na autorização, etc.).
      summary: Cancelamento do pedido (com detalhes de pagamento e transação)
      tags:
        - combined-webhooks
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "refund",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase": {
                          "subscription": {
                              "plan_id": "b5dac9c8",
                              "subscription_id": "10",
                              "date_create": "2014-09-22T19:25:25+04:00",
                              "currency": "USD",
                              "amount": 9.99
                          },
                          "total":{
                              "currency": "USD",
                              "amount": 200
                          }
                      },
                  "transaction": {
                          "id": 1,
                          "external_id": 1,
                          "dry_run": 1,
                          "agreement": 1
                      },
                  "refund_details": {
                          "code": 4,
                          "reason": "Potential fraud"
                      },
                  "payment_details": {
                          "sales_tax": {
                              "currency": "USD",
                              "amount": 0
                          },
                          "direct_wht": {
                              "currency": "USD",
                              "amount": 0.70
                          },
                          "xsolla_fee": {
                              "currency": "USD",
                              "amount": "10"
                          },
                          "payout": {
                              "currency": "USD",
                              "amount": "200"
                          },
                          "payment_method_fee": {
                              "currency": "USD",
                              "amount": "20"
                          },
                          "payment": {
                              "currency": "USD",
                              "amount": "230"
                          },
                          "repatriation_commission": {
                              "currency": "USD",
                              "amount": 10
                          }
                      }
                }
            }
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "refund",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase": {
                      "subscription": {
                          "plan_id": "b5dac9c8",
                          "subscription_id": "10",
                          "date_create": "2014-09-22T19:25:25+04:00",
                          "currency": "USD",
                          "amount": 9.99
                      },
                      "total": {
                          "currency": "USD",
                          "amount": 200
                      }
                  },
                  "transaction": {
                      "id": 1,
                      "external_id": 1,
                      "dry_run": 1,
                      "agreement": 1
                  },
                  "refund_details": {
                      "code": 4,
                      "reason": "Potential fraud"
                  },
                  "payment_details": {
                      "sales_tax": {
                          "currency": "USD",
                          "amount": 0
                      },
                      "direct_wht": {
                          "currency": "USD",
                          "amount": 0.70
                      },
                      "xsolla_fee": {
                          "currency": "USD",
                          "amount": "10"
                      },
                      "payout": {
                          "currency": "USD",
                          "amount": "200"
                      },
                      "payment_method_fee": {
                          "currency": "USD",
                          "amount": "20"
                      },
                      "payment": {
                          "currency": "USD",
                          "amount": "230"
                      },
                      "repatriation_commission": {
                          "currency": "USD",
                          "amount": 10
                      }
                    }
                  }
                }
  order-cancellation-separate:
    post:
      description: >
        A Xsolla envia o webhook <code>order_canceled</code> para o URL
        especificado 

        quando o pagamento é cancelado pelo usuário, parceiro ou
        automaticamente. O 

        webhook contém informações sobre itens devolvidos e detalhes do pedido 

        cancelado.


        O webhook não é enviado se o pagamento não for bem-sucedido. Por
        exemplo:

        * o formulário da interface de pagamento foi aberto, mas o usuário não
        pagou pelo 
          pedido.
        * o formulário da interface de pagamento foi aberto, mas houve erros
        durante o 
          pagamento.

        O tempo recomendado para processamento do webhook é de dentro de 3
        segundos.
      operationId: order-cancellation-separate
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: Informações adicionais.
                  type: object
                items:
                  description: >
                    Lista de itens comprados pelo usuário.


                    O conjunto de parâmetros incluídos na matriz depende da
                    versão do webhook. A 

                    versão 2 inclui parâmetros adicionais: `is_free`,
                    `is_bonus`, e 

                    `is_bundle_content`. Para alternar a versão, passe seu
                    número no parâmetro 

                    `version` na chamada API [Atualizar informações de
                    configurações do 

                    webhook](/pt/api/igs/operation/update-webhook/).
                  items:
                    oneOf:
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                        title: versão = 1
                        type: object
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_bonus:
                            description: Se `true`, o item é um bônus.
                            type: boolean
                          is_bundle_content:
                            description: Se `true`, o item pertence a um conjunto.
                            type: boolean
                          is_free:
                            description: Se `true`, o item é gratuito.
                            type: boolean
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            description: >-
                              Promoções aplicadas. Se uma promoção não foi
                              aplicada,  é passada uma matriz vazia no
                              parâmetro.
                            items:
                              properties:
                                amount_with_discount:
                                  description: Custo total dos itens com desconto.
                                  type: string
                                amount_without_discount:
                                  description: Custo total dos itens sem desconto.
                                  type: string
                                sequence:
                                  description: Ordem de aplicação de promoções.
                                  type: integer
                              type: object
                            type: array
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                          - is_free
                          - is_bonus
                          - is_bundle_content
                        title: versão = 2
                        type: object
                  type: array
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                order:
                  description: Informações sobre o pedido.
                  properties:
                    amount:
                      description: >-
                        O custo total de um carrinho com base na moeda
                        escolhida.
                      type: string
                    comment:
                      description: Comentário do usuário ao pedido.
                      nullable: true
                      type: string
                    coupons:
                      description: >-
                        Cupons aplicados. Se o cupom não for aplicado, a matriz
                        não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um cupom aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    currency:
                      description: >-
                        Moeda de ordem. A moeda virtual usa o SKU e a moeda real
                        usa um código [ISO
                        4217](https://en.wikipedia.org/wiki/ISO_4217) de três
                        letras.
                      type: string
                    currency_type:
                      $ref: '#/components/schemas/currency-type'
                    id:
                      description: >-
                        Identificador exclusivo do pedido do usuário no lado da
                        Xsolla.
                      type: integer
                    invoice_id:
                      description: >-
                        ID da fatura de pagamentos em moeda real. Pagamentos em
                        moedas virtuais ou itens grátis têm um valor `null`.
                      nullable: true
                      type: string
                    mode:
                      description: >-
                        Modalidade de pagamento. `default` é usado para
                        pagamentos reais; `sandbox` para pagamentos de testes.
                      enum:
                        - default
                        - sandbox
                      type: string
                    platform:
                      description: >-
                        Plataforma de pagamento. O valor `xsolla` é usado para
                        pagamentos via Xsolla. Para outros pagamentos, o valor
                        correspondente ao nome da plataforma de publicação de
                        jogos é usado: `playstation_network`, `xbox_live`,
                        `pc_standalone`, `nintendo_shop`, `google_play`,
                        `app_store_ios`, `android_standalone`, `ios_standalone`,
                        `android_other`, `ios_other`, `pc_other`.
                      enum:
                        - xsolla
                        - playstation_network
                        - xbox_live
                        - pc_standalone
                        - nintendo_shop
                        - google_play
                        - app_store_ios
                        - android_standalone
                        - ios_standalone
                        - android_other
                        - ios_other
                        - pc_other
                      nullable: true
                      type: string
                    promocodes:
                      description: >-
                        Códigos promocionais aplicados. Se o código promocional
                        não for aplicado, a matriz não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um código promocional aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    promotions:
                      $ref: '#/components/schemas/order.promotions'
                    status:
                      description: Status do pedido.
                      type: string
                  required:
                    - id
                    - mode
                    - currency_type
                    - currency
                    - amount
                    - status
                    - platform
                    - comment
                    - invoice_id
                    - promotions
                  type: object
                user:
                  description: Informações do usuário.
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      description: Endereço de e-mail do usuário.
                      type: string
                    external_id:
                      description: ID de usuário.
                      type: string
                  required:
                    - external_id
                    - email
                  type: object
              required:
                - notification_type
                - items
                - order
                - user
      responses:
        '200':
          description: Retorne para indicar o processamento bem-sucedido.
        '400':
          description: >-
            Retorne em caso de erro nas informações fornecidas (por exemplo, um
            parâmetro obrigatório ausente, falha na autorização, etc.).
      summary: Cancelamento do pedido (sem detalhes de pagamento e transação)
      tags:
        - separate-webhooks
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                }

            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_canceled",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "email@example.com",
                  "country": "US"
                }
            }
  partial-refund:
    post:
      description: >
        Quando um reembolso parcial é feito, a Xsolla envia detalhes da
        transação 

        cancelada em um webhook com o tipo `partial_refund` para o URL do
        webhook. 

        Saiba mais sobre o processo de reembolso parcial nestas
        [instruções](/pt/doc/pay-station/features/refund/#pay_station_features_refund_how_it_works_partial_refund_flow).


        Ao salvar o URL do webhook na Conta de Distribuidor, você pode conceder 

        permissões para receber informações detalhadas nos webhooks. Para fazer
        isso, 

        defina a seguinte opção como ativa na Conta de Distribuidor na seção <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">Project 

        settings &gt; Webhooks &gt; Advanced settings</a>.


        <div class="note">

        <p><strong>Observação</strong></p>

        <p>Se você se registrou na Conta de Distribuidor no dia 22 de janeiro de
        2025 ou antes, você encontrará as opções na seção <a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">Project
        settings &gt; Webhooks &gt; Testing &gt; Payments &gt; Advanced
        settings</a>.</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>Opção</th>
                <th>Descrição</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>Exibir informações sobre transações pelos métodos de pagamento salvos</td>
                <td><p>As informações são passadas nos seguintes parâmetros personalizados do webhook:</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — o método de pagamento guardado não foi utilizado</li><li><code>1</code> — o método de pagamento foi salvo ao efetuar o pagamento atual</li><li><code>2</code> — o método de pagamento previamente guardado é utilizado</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — pagamento único</li><li><code>2</code> — pagamento recorrente</li></ul></li></ul></td>
            </tr>
        </tbody>

        </table>


        Códigos de reembolso:


        <table>
            <thead>
            <tr>
                <th>Código</th>
                <th>Motivo</th>
                <th>Descrição</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>1</td>
                <td>Cancellation by the user request / the game request</td>
                <td>Cancelamento iniciado a partir da Publisher Account.</td>
            </tr>
            <tr>
                <td>3</td>
                <td>Integration error</td>
                <td>Problemas na integração entre a Xsolla e o jogo.<br /><b>Recomendação: não adicione o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>5</td>
                <td>Test payment</td>
                <td>Transação de teste seguida de cancelamento.<br /><b>Recomendação: não adicione o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>7</td>
                <td>Fraud notification from PS</td>
                <td>Pagamento recusado pelo sistema de pagamento. Potencial fraude detectada pelo PS.<br /><b>Recomendação: adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>9</td>
                <td>Cancellation by the user request</td>
                <td>O usuário não ficou satisfeito com o jogo ou a compra por qualquer motivo.<br /><b>Recomendação: não adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>10</td>
                <td>Cancellation by the game request</td>
                <td>Cancelamento solicitado pelo jogo.<br /><b>Recomendação: não adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            </tbody>
        </table>
      operationId: partial-refund
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: Seus parâmetros personalizados.
                  type: object
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                payment_details:
                  description: Detalhes de pagamento (objeto).
                  properties:
                    direct_wht:
                      description: Imposto retido direto na fonte.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Alíquota de retenção direta na fonte.
                          format: float
                          type: number
                      type: object
                    payment:
                      description: Valor pago pelo usuário (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payment_method_fee:
                      description: Taxa do sistema de pagamento.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payment_method_sum:
                      description: Valor debitado do sistema de pagamento.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payout:
                      description: Dados de pagamento (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payout_currency_rate:
                      description: >-
                        Taxa de câmbio entre as moedas de pagamento e
                        remuneração.
                      type: string
                    repatriation_commission:
                      description: >-
                        Objeto com dados sobre os custos de repatriamento,
                        imposto à Xsolla por terceiros.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    sales_tax:
                      description: Imposto sobre vendas (objeto; apenas EUA e Canadá).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Alíquota de imposto sobre vendas.
                          format: float
                          type: number
                      type: object
                    vat:
                      description: Dados do IVA (objeto; apenas na UE).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Taxa de IVA.
                          format: float
                          type: number
                      type: object
                    xsolla_balance_sum:
                      description: Valor debitado do saldo Xsolla.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    xsolla_fee:
                      description: Taxa Xsolla (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                  type: object
                purchase:
                  description: Dados da compra (objeto).
                  properties:
                    checkout:
                      description: Dados do checkout (objeto).
                      properties:
                        amount:
                          description: Valor da compra.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    total:
                      description: Preço total de compra (objeto).
                      properties:
                        amount:
                          description: Quantia do reembolso parcial.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                  required:
                    - total
                  type: object
                refund_details:
                  description: Detalhes do reembolso (objeto).
                  properties:
                    author:
                      description: >
                        Iniciador de reembolso. O valor do campo é passado de
                        acordo com a tabela:


                        <table>
                            <thead>
                            <tr>
                                <th>Iniciador de reembolso</th>
                                <th>Valor do campo</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>Jogo (via API).</td>
                                <td>API</td>
                            </tr>
                            <tr>
                                <td>Usuário da Publisher Account (reembolso automático).</td>
                                <td>E-mail do usuário</td>
                            </tr>
                            <tr>
                                <td>Usuário da Publisher Account (com assistência do suporte ao cliente Xsolla).</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            <tr>
                                <td>Xsolla (com assistência do suporte ao cliente Xsolla).</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            </tbody>
                        </table>
                      type: string
                    code:
                      description: ID do código.
                      type: integer
                    date:
                      description: Data do reembolso.
                      type: string
                    reason:
                      description: Motivo do reembolso.
                      type: string
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                transaction:
                  description: Detalhes da transação (objeto).
                  properties:
                    agreement:
                      description: ID do contrato.
                      type: integer
                    date:
                      description: Data da transação.
                      type: string
                    dry_run:
                      description: >-
                        Transação de teste. O parâmetro tem valor 1 se for uma
                        transação de teste ou não for enviado se a transação for
                        real.
                      type: integer
                    external_id:
                      description: ID externo de transação.
                      type: string
                    id:
                      description: ID de transação.
                      type: integer
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                    phone:
                      $ref: '#/components/schemas/user.phone'
                    zip:
                      $ref: '#/components/schemas/user.zip'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - transaction
                - payment_details
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Reembolso parcial
      tags:
        - payments
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: |-
            curl -v 'https://your.hostname/your/uri' \
            -X POST \
            -d '{
                    "notification_type": "partial_refund",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "purchase": {
                        "checkout": {
                            "currency": "USD",
                            "amount": 50
                        },
                        "total":{
                            "currency": "USD",
                            "amount": 200
                        }
                    },
                    "user": {
                        "ip": "127.0.0.1",
                        "phone": "18777976552",
                        "email": "email@example.com",
                        "id": "1234567",
                        "name": "John Smith",
                        "country": "US"
                    },
                    "transaction": {
                        "id": 1,
                        "external_id": 1,
                        "dry_run": 1,
                        "agreement": 1,
                        "date": "2022-03-01 10:53:15"
                    },
                    "refund_details": {
                        "author": "email@example.com",
                        "date": "2022-03-01 10:56:48"
                    },
                    "payment_details": {
                        "sales_tax": {
                            "currency": "USD",
                            "amount": 0
                        },
                        "direct_wht": {
                            "currency": "USD",
                            "amount": 0.70
                        },
                        "xsolla_fee": {
                            "currency": "USD",
                            "amount": "10"
                        },
                        "payout": {
                            "currency": "USD",
                            "amount": "200"
                        },
                        "payment_method_fee": {
                            "currency": "USD",
                            "amount": "20"
                        },
                        "payment": {
                            "currency": "USD",
                            "amount": "230"
                        },
                        "repatriation_commission": {
                            "currency": "USD",
                            "amount": 10
                        }
                    }
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'partial_refund',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'purchase' => array(
                    'total' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    )
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email' => 'email@example.com',
                    'id' => '1234567',
                    'country' => 'US'
                ),
                'transaction' => array(
                    'id' => 87654321,
                    'payment_date' => '2014-09-23T19:25:25+04:00',
                    'payment_method' => 1380,
                    'dry_run' => 1,
                    'date' => '2022-03-31 10:53:15'
                ),
                'refund_details' => array(
                        'author' => 'email@example.com',
                        'date' => '2022-03-01 10:56:48'
                ),
                'payment_details' => array(
                    'payment' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    ),
                    'vat' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'sales_tax' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'direct_wht' => array(
                        'currency' => 'USD',
                        'amount' => 70
                    ),
                    'payout_currency_rate' => 1,
                    'payout' => array(
                        'currency' => 'USD',
                        'amount' => 9.49
                    ),
                    'xsolla_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.19
                    ),
                    'payment_method_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.31
                    ),
                    'repatriation_commission' => array(
                        'currency' => 'USD',
                        'amount' => 0.2
                    )
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1220
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
                "notification_type": "partial_refund",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase": {
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "dry_run": 1,
                    "agreement": 1,
                    "date": "2022-03-31 10:53:15"
                },
                "refund_details": {
                    "author": "email@example.com",
                    "date": "2022-03-31 10:56:48"
                },
                "payment_details": {
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0.70
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": "10"
                    },
                    "payout": {
                        "currency": "USD",
                        "amount": "200"
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": "20"
                    },
                    "payment": {
                        "currency": "USD",
                        "amount": "230"
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                }
            }
  payment:
    post:
      description: >
        Quando um usuário completa um pagamento, a Xsolla envia os dados do
        pagamento 

        em um webhook com o tipo `payment` ao URL do webhook.


        Os códigos de resposta esperados estão descritos na seção
        <b>Responses</b>, mas 

        você pode usar outros códigos de resposta também:


        <table>
            <thead>
            <tr>
                <th>Código de resposta</th>
                <th>Descrição</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td><code>200</code>, <code>201</code>, <code>204</code></td>
                <td>Uma resposta bem-sucedida.</td>
            </tr>
            <tr>
                <td><code>4xx</code></td>
                <td>Ocorreu um erro. Por exemplo, se o usuário especificado não foi encontrado ou uma assinatura inválida foi passada.</td>
            </tr>
            <tr>
                <td><code>5xx</code></td>
                <td>Erro temporário de servidor. Quando essa resposta é recebida, a Xsolla tentará reenviar o webhook automaticamente, gradualmente aumentando o intervalo entre as tentativas até que o ouvinte confirme o recebimento. A quantidade máxima de tentativas é de 12 reenvios ao longo de um período de 48 horas.</td>
            </tr>
            </tbody>
        </table>


        Quando você salva o URL do webhook na <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">Conta
        de 

        Distribuidor</a>, você também pode configurar o recebimento de
        informações 

        adicionais nos webhooks.


        <div class="note">

        <p><strong>Observação</strong></p>

        <p>Se você se registrou na Conta de Distribuidor no dia 22 de janeiro de
        2025 ou antes, você encontrará as opções no seu projeto na seção <a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">Settings
        &gt; Webhooks &gt; Testing &gt; Payments &gt; Advanced settings</a>.</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>Opção</th>
                <th>Descrição</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>Exibir informações sobre a conta de pagamento salva</td>
                <td>As informações sobre a forma de pagamento salva são passadas no objeto personalizado <code>payment_account</code>.</td>
            </tr>
            <tr>
                <td>Exibir informações sobre transações pelos métodos de pagamento salvos</td>
                <td><p>As informações são passadas nos seguintes parâmetros personalizados do webhook:</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — o método de pagamento guardado não foi utilizado</li><li><code>1</code> — o método de pagamento foi salvo ao efetuar o pagamento atual</li><li><code>2</code> — o método de pagamento previamente guardado é utilizado</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — pagamento único</li><li><code>2</code> — pagamento recorrente</li></ul></li></ul></td>
            </tr>
            <tr>
                <td>Adicionar objeto de ordem ao webhook</td>
                <td>As informações sobre o pedido são passadas no objeto  <code>order</code> do webhook <a href="/pt/webhooks/operation/payment/">Pagamento</a>.</td>
            </tr>
            <tr>
                <td>Enviar apenas os parâmetros de usuário necessários sem dados confidenciais</td>
                <td><p>Somente as seguintes informações sobre o usuário são passadas no webhook:</p><ul><li>ID</li><li>país</li></ul></td>
            </tr>
            <tr>
                <td>Exibir BIN e sufixo do cartão</td>
                <td><p>As seguintes informações sobre o número do cartão bancário são passadas no webhook:</p><ul><li>os primeiros 6 dígitos no parâmetro <code>card_bin</code></li><li>os últimos 4 dígitos no <code>card_suffix</code></li></ul></td>
            </tr>
            <tr>
                <td>Exibir marca do cartão</td>
                <td>A bandeira do cartão utilizado para efetuar o pagamento. Por exemplo, Mastercard ou Visa.</td>
            </tr>
        </tbody>

        </table>


        <div class="notice">

        <p><strong>Aviso</strong></p>

        <p>O conjunto de campos enviados em um webhook depende de:<ul><li>as
        configurações avançadas definidas na Conta de Distribuidor</li><li>as
        configurações personalizadas definidas no lado da
        Xsolla</li></ul></p><p>Se tiver alguma dúvida, entre em contato com seu
        Gerente de Sucesso do Cliente ou envie um e-mail para <a
        href="mailto:csm@xsolla.com">csm@xsolla.com</a>.</p>

        </div>
      operationId: payment
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: Seus parâmetros personalizados.
                  type: object
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                payment_details:
                  description: Detalhes de pagamento (objeto).
                  properties:
                    country_wht:
                      description: >-
                        Imposto retido na fonte aplicado em países específicos
                        devido a transações internacionais (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Taxa de retenção na fonte do país, %.
                          format: float
                          type: number
                      type: object
                    direct_wht:
                      description: Imposto retido direto na fonte.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Alíquota de retenção direta na fonte.
                          format: float
                          type: number
                      type: object
                    payment:
                      description: Valor pago pelo usuário (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payment_method_fee:
                      description: Taxa do sistema de pagamento.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payment_method_sum:
                      description: Valor debitado do sistema de pagamento.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payout:
                      description: Dados de pagamento (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payout_currency_rate:
                      description: >-
                        Taxa de câmbio entre as moedas de pagamento e
                        remuneração.
                      type: string
                    repatriation_commission:
                      description: >-
                        Objeto com dados sobre os custos de repatriamento,
                        imposto à Xsolla por terceiros.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    sales_tax:
                      description: Imposto sobre vendas (objeto; apenas EUA e Canadá).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Alíquota de imposto sobre vendas.
                          format: float
                          type: number
                      type: object
                    user_acquisition_fee:
                      description: >-
                        Valor total das taxas de aquisição de usuários deduzidas
                        para as compras feitas por meio de redes afiliadas e
                        influenciadores (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Proporção de taxa de aquisição de usuários, %.
                          format: float
                          type: number
                      type: object
                    vat:
                      description: Dados do IVA (objeto; apenas na UE).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Taxa de IVA.
                          format: float
                          type: number
                      type: object
                    xsolla_balance_sum:
                      description: Valor debitado do saldo Xsolla.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    xsolla_fee:
                      description: Taxa Xsolla (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                  type: object
                purchase:
                  description: Dados da compra (objeto).
                  properties:
                    checkout:
                      description: Dados do checkout (objeto).
                      properties:
                        amount:
                          description: Valor da compra.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    coupon:
                      description: >-
                        Dados do cupom (objeto; se um cupom foi usado ao criar a
                        assinatura).
                      properties:
                        campaign_code:
                          description: Código da campanha.
                          type: string
                        coupon_code:
                          description: Código de cupom.
                          type: string
                      type: object
                    gift:
                      description: Detalhes do presente (objeto).
                      properties:
                        giver_id:
                          description: ID do doador.
                          type: string
                        hide_giver_from_receiver:
                          description: >-
                            Se a identidade do doador deve ou não ser ocultada
                            do recipiente.
                          type: string
                        message:
                          description: Mensagem do doador.
                          type: string
                        receiver_email:
                          description: E-mail do recipiente do presente.
                          type: string
                        receiver_id:
                          description: ID do recipiente do presente.
                          type: string
                      type: object
                    order:
                      $ref: '#/components/schemas/order'
                      properties:
                        id:
                          description: ID do pedido.
                          type: integer
                        lineitems:
                          description: >-
                            Matriz de parâmetros que contém informações sobre os
                            itens.
                          items:
                            properties:
                              price:
                                description: >-
                                  Objeto que contém informações sobre um preço
                                  de item.
                                properties:
                                  amount:
                                    description: Preço total do item na moeda selecionada.
                                    format: float
                                    type: number
                                  currency:
                                    description: Moeda do preço do item.
                                    type: string
                                type: object
                              quantity:
                                description: Quantidade do item.
                                type: integer
                              sku:
                                description: SKU do item.
                                type: string
                            type: object
                          type: array
                    promotions:
                      description: Promoções aplicadas a esta transação.
                      items:
                        properties:
                          id:
                            description: ID da promoção.
                            type: integer
                          technical_name:
                            description: Nome técnico da promoção.
                            type: string
                        type: object
                      type: array
                    subscription:
                      description: Dados da assinatura (objeto).
                      properties:
                        amount:
                          $ref: '#/components/schemas/amount-float'
                        currency:
                          $ref: '#/components/schemas/currency'
                        date_create:
                          $ref: '#/components/schemas/subscription.date_create'
                        date_next_charge:
                          description: >-
                            Data da próxima cobrança. Data e hora de acordo com
                            o [ISO
                            8601](https://en.wikipedia.org/wiki/ISO_8601).
                          type: string
                        plan_id:
                          $ref: '#/components/schemas/subscription.plan_id'
                        product_id:
                          description: ID do produto (se enviado no token de acesso).
                          type: string
                        subscription_id:
                          $ref: '#/components/schemas/subscription.subscription_id'
                        tags:
                          $ref: '#/components/schemas/subscription.tags'
                      type: object
                    total:
                      description: Preço total de compra (objeto).
                      properties:
                        amount:
                          description: Valor total do pagamento.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                  required:
                    - total
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                transaction:
                  description: Detalhes da transação (objeto).
                  properties:
                    agreement:
                      description: ID do contrato.
                      type: integer
                    dry_run:
                      description: >-
                        Transação de teste. O parâmetro tem valor 1 se for uma
                        transação de teste ou não for enviado se a transação for
                        real.
                      type: integer
                    external_id:
                      $ref: '#/components/schemas/external-id'
                    id:
                      description: ID de transação.
                      type: integer
                    payment_date:
                      description: Data de pagamento.
                      type: string
                    payment_method:
                      description: ID de método de pagamento.
                      type: integer
                    payment_method_name:
                      description: Nome do método de pagamento.
                      type: string
                    payment_method_order_id:
                      description: ID de pagamento no sistema de pagamento.
                      type: string
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                    phone:
                      $ref: '#/components/schemas/user.phone'
                    zip:
                      $ref: '#/components/schemas/user.zip'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - transaction
                - payment_details
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400-payment'
        '500':
          $ref: '#/components/responses/500'
      summary: Pagamento
      tags:
        - payments
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: |-
            curl -v 'https://your.hostname/your/uri' \
            -X POST \
            -d '{
                "notification_type": "payment",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase": {
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_next_charge": "2014-10-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 9.99
                    },
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "promotions": [{
                        "technical_name": "Demo Promotion",
                        "id": 853
                    }],
                    "coupon": {
                        "coupon_code": "ICvj45S4FUOyy",
                        "campaign_code": "1507"
                    },
                    "order": {
                      "id": 1234
                      "lineitems": [
                      {
                        "sku": "com.xsolla.item_1",
                        "quantity": 1,
                        "price": {
                          "currency": "EUR",
                          "amount": 6.5
                          }
                      }
                      ]
                      }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "payment_date": "2014-09-24T20:38:16+04:00",
                    "payment_method": 1,
                    "payment_method_name": "PayPal",
                    "payment_method_order_id": 1234567890123456789,
                    "dry_run": 1,
                    "agreement": 1
                },
                "payment_details": {
                    "payment": {
                        "currency": "USD",
                        "amount": 230
                    },
                    "vat": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 20
                    },
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "payout_currency_rate": "1",
                    "payout": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "country_wht": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 10
                    },
                    "user_acquisition_fee": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 1
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": 10
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": 20
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                },
                "custom_parameters": {
                    "parameter1": "value1",
                    "parameter2": "value2"
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'payment',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'purchase' => array(
                    'total' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    )
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email' => 'email@example.com',
                    'id' => '1234567',
                    'country' => 'US'
                ),
                'transaction' => array(
                    'id' => 87654321,
                    'payment_date' => '2014-09-23T19:25:25+04:00',
                    'payment_method' => 1380,
                    'payment_method_name' => 'PayPal'
                    'payment_method_order_id' => 1234567890123456789,
                    'dry_run' => 1
                ),
                'payment_details' => array(
                    'payment' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    ),
                    'vat' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'sales_tax' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'direct_wht' => array(
                        'currency' => 'USD',
                        'amount' => 70
                    ),
                    'payout_currency_rate' => '1',
                    'country_wht ' => array(
                        'currency' => 'USD',
                        'amount' => 2,
                        'percent' => 10
                    ),
                    'user_acquisition_fee' => array(
                        'currency' => 'USD',
                        'amount' => 2,
                        'percent' => 1
                    ),
                    'payout' => array(
                        'currency' => 'USD',
                        'amount' => 9.49
                    ),
                    'xsolla_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.19
                    ),
                    'payment_method_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.31
                    ),
                    'repatriation_commission' => array(
                        'currency' => 'USD',
                        'amount' => 0.2
                    )
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1721
            authorization: Signature 34553d151e656110c656696c919f9a10e05de542

            {
                "notification_type": "payment",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase":{
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "date_next_charge": "2014-10-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 9.99
                    },
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "promotions": [{
                        "technical_name": "Demo Promotion",
                        "id": 853
                    }],
                    "coupon": {
                        "coupon_code": "ICvj45S4FUOyy",
                        "campaign_code": "1507"
                    },
                    "order": {
                      "id": 1234
                      "lineitems": [
                      {
                        "sku": "com.xsolla.item_1",
                        "quantity": 1,
                        "price": {
                          "currency": "EUR",
                          "amount": 6.5
                          }
                      }
                      ]
                      }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "payment_date": "2014-09-24T20:38:16+04:00",
                    "payment_method": 1,
                    "payment_method_name": "PayPal"
                    "payment_method_order_id": 1234567890123456789,
                    "dry_run": 1,
                    "agreement": 1
                },
                "payment_details": {
                    "payment": {
                        "currency": "USD",
                        "amount": 230
                    },
                    "vat": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 20
                    },
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0,
                        "percent": 0
                    },
                    "payout_currency_rate": "1",
                    "country_wht": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 10
                    },
                    "user_acquisition_fee": {
                        "currency": "USD",
                        "amount": 2,
                        "percent": 1
                    },
                    "payout": {
                        "currency": "USD",
                        "amount": 200
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": 10
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": 20
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                },
                "custom_parameters": {
                    "parameter1": "value1",
                    "parameter2": "value2"
                }
            }
  payment-declined:
    post:
      description: >
        Se uma transação for recusada por um sistema de pagamento, a Xsolla
        enviará os 

        dados da transação em um webhook do tipo `ps_declined` para o URL
        configurado 

        do webhook. O webhook é enviado durante o estágio de autorização ou 

        processamento de pagamento. Nesse caso, o webhook 

        [payment](/pt/webhooks/operation/payment/)\
        [order_paid](/pt/webhooks/operation/successful-order-payment/) não é
        enviado.


        Razões típicas para recusas do sistema de pagamento:


        * A autorização do cartão falhou (por exemplo, o sistema de pagamento
        não pôde 
          concluir o processo de autorização devido a um erro técnico ou nenhuma resposta 
          do banco) ou foi recusada (por exemplo, o banco respondeu, mas recusou a 
          transação devido a fundos insuficientes ou daods inválidos do cartão).
        * A verificação do 3-D Secure falhou, não foi concluída, ou a
        confirmação do 
          usuário expirou.
        * O processador ou banco adquirente está temporariamente indisponível ou
        retorna 
          uma recusa definitiva devido a um erro irreversível, tal como uma conta 
          encerrada ou um número de cartão inválido. É preciso resolver o problema 
          subjacente antes de tentar novamente, ou a transação não será bem-sucedida.

        Não deve ser confundido com:


        * Rejeições antifraude, que são relatadas por meio do webhook 
          [afs_reject](https://developers.xsolla.com/pt/webhooks/operation/afs-rejected-transaction/).
        * Reembolsos e reembolsos parciais após um pagamento bem-sucedido, que
        são 
          relatados por meio do 
          [reembolso](https://developers.xsolla.com/pt/webhooks/operation/refund/) e dos 
          webhooks [partial_refund](https://developers.xsolla.com/pt/webhooks/operation/partial-refund/).

        <div class="note">

        <p><strong>Nota</strong></p>

        <p>Para receber o webhook <code>ps_declined</code>, entre em contato com
        o Gerente de sucesso do Cliente ou envie um e-mail para <a
        href="mailto:csm@xsolla.com">csm@xsolla.com</a>.</p>

        </div>
      operationId: payment-declined
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                refund_details:
                  description: Detalhes do reembolso (objeto).
                  properties:
                    author:
                      description: >
                        Iniciador de reembolso. O valor do campo é passado de
                        acordo com a tabela:


                        <table>
                            <thead>
                            <tr>
                                <th>Iniciador de reembolso</th>
                                <th>Valor do campo</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>Jogo (via API).</td>
                                <td>API</td>
                            </tr>
                            <tr>
                                <td>Usuário da Publisher Account (reembolso automático).</td>
                                <td>E-mail do usuário</td>
                            </tr>
                            <tr>
                                <td>Usuário da Publisher Account (com assistência do suporte ao cliente Xsolla).</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            <tr>
                                <td>Xsolla (com assistência do suporte ao cliente Xsolla).</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            </tbody>
                        </table>
                      type: string
                    code:
                      description: ID do código.
                      type: integer
                    reason:
                      description: Motivo do reembolso.
                      type: string
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                transaction:
                  description: Detalhes da transação (objeto).
                  properties:
                    dry_run:
                      description: >-
                        Transação de teste. O parâmetro tem valor 1 se for uma
                        transação de teste ou não for enviado se a transação for
                        real.
                      type: integer
                    external_id:
                      description: ID externo de transação.
                      type: string
                    id:
                      description: ID de transação.
                      type: integer
                    payment_method:
                      description: ID de método de pagamento.
                      type: integer
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - transaction
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400-payment'
        '500':
          $ref: '#/components/responses/500'
      summary: Pagamento recusado
      tags:
        - payments
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'Accept: application/json' \

            -H 'Content-Type: application/json' \

            -H 'Authorization: Signature
            80543ba63e1e50cf05f15150fe75e7245da9a898' \

            -d '{
              "notification_type": "ps_declined",
              "settings": {
                "project_id": "18404",
                "merchant_id": "2340"
              },
              "user": {
                "ip": "127.0.0.1",
                "email": "email@example.com",
                "id": "1234567",
                "country": "US"
              },
              "transaction": {
                "id": "1",
                "dry_run": "1",
                "payment_method": "1"
              },
              "refund_details": {
                "author": "support@xsolla.com",
                "code": "8",
                "reason": "Cancellation by the PS request",
                "reason_detail": "Insufficient funds"
              }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
              'notification_type' => 'ps_declined',
              'settings' => array(
                'project_id' => '18404',
                'merchant_id' => '2340',
              ),
              'user' => array(
                'ip' => '127.0.0.1',
                'email' => 'email@example.com',
                'id' => '1234567',
                'country' => 'US',
              ),
              'transaction' => array(
                'id' => '1',
                'dry_run' => '1',
                'payment_method' => '1',
              ),
              'refund_details' => array(
                'author' => 'support@xsolla.com',
                'code' => '8',
                'reason' => 'Cancellation by the PS request',
                'reason_detail' => 'Insufficient funds',
              ),
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 338
            authorization: Signature 80543ba63e1e50cf05f15150fe75e7245da9a898

            {
              "notification_type": "ps_declined",
              "settings": {
                "project_id": "18404",
                "merchant_id": "2340"
              },
              "user": {
                "ip": "127.0.0.1",
                "email": "email@example.com",
                "id": "1234567",
                "country": "US"
              },
              "transaction": {
                "id": "1",
                "dry_run": "1",
                "payment_method": "1"
              },
              "refund_details": {
                "author": "support@xsolla.com",
                "code": "8",
                "reason": "Cancellation by the PS request",
                "reason_detail": "Insufficient funds"
              }
            }
  personalized-partner-catalog:
    post:
      description: >
        A Xsolla enviará um webhook <code>partner_side_catalog</code> que contém
        os 

        parâmetros do usuário e do projeto para o URL do webhook quando um
        usuário 

        interagir com a loja.


        Retorna uma lista de <code>item_id</code> ou SKU de itens que estão
        disponíveis 

        para o usuário em resposta. Nesse caso, você também pode incluir
        informações de 

        que um determinado usuário pode comprar um determinado produto um
        número 

        especificado de vezes. Esse recurso permite controlar o número e o tipo
        de 

        produtos que o usuário pode adicionar ao carrinho e comprar.


        Recomenda-se que o tempo de processamento do webhook 

        <code>partner_side_catalog</code> seja inferior a 3 segundos.
      operationId: personalized-partner-catalog
      requestBody:
        content:
          application/json:
            schema:
              properties:
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    currency:
                      $ref: '#/components/schemas/currency'
                    locale:
                      $ref: '#/components/schemas/locale'
                    user_id:
                      description: >-
                        ID de Usuário. Se o usuário não estiver autenticado, o
                        valor `null` será enviado.
                      type: string
                  required:
                    - user_id
                  type: object
              required:
                - user
      responses:
        '200':
          content:
            application/json:
              example:
                - date_from: '2024-08-11T23:59:59+08:00'
                  date_until: '2024-08-12T23:59:59+08:00'
                  quantity: 0
                  sku: com.xsolla.boots_1
                - date_from: '2024-08-11T23:59:59+08:00'
                  date_until: '2024-08-12T23:59:59+08:00'
                  quantity: null
                  sku: com.xsolla.sword_1
                - quantity: 1
                  sku: com.xsolla.helmet_1
                - content:
                    - description: Description of custom content item
                      image_url: https://example.com/content_image.png
                      name: Custom content item
                      quantity: 5
                  description: Custom description
                  image_url: https://example.com/image.png
                  json_attributes:
                    purchased: 0
                    type: lootbox
                  name: Custom name
                  quantity: null
                  sku: com.xsolla.custom_item_1
                - available: 7
                  sku: com.xsolla.limited_item_1
                  total: 10
              schema:
                items:
                  anyOf:
                    - oneOf:
                        - properties:
                            quantity:
                              $ref: '#/components/schemas/quantity'
                          title: quantity
                        - properties:
                            available:
                              $ref: '#/components/schemas/available'
                            total:
                              $ref: '#/components/schemas/total'
                          title: available
                      properties:
                        content:
                          $ref: '#/components/schemas/bundle_content'
                        date_from:
                          $ref: '#/components/schemas/date_from'
                        date_until:
                          $ref: '#/components/schemas/date_until'
                        description:
                          $ref: '#/components/schemas/description'
                        image_url:
                          $ref: '#/components/schemas/image_url'
                        json_attributes:
                          $ref: '#/components/schemas/json_attributes'
                        name:
                          $ref: '#/components/schemas/name'
                        sku:
                          $ref: '#/components/schemas/sku'
                      required:
                        - sku
                      title: sku
                    - oneOf:
                        - properties:
                            quantity:
                              $ref: '#/components/schemas/quantity'
                          title: quantity
                        - properties:
                            available:
                              $ref: '#/components/schemas/available'
                            total:
                              $ref: '#/components/schemas/total'
                          title: available
                      properties:
                        content:
                          $ref: '#/components/schemas/bundle_content'
                        date_from:
                          $ref: '#/components/schemas/date_from'
                        date_until:
                          $ref: '#/components/schemas/date_until'
                        description:
                          $ref: '#/components/schemas/description'
                        image_url:
                          $ref: '#/components/schemas/image_url'
                        item_id:
                          $ref: '#/components/schemas/item_id'
                        json_attributes:
                          $ref: '#/components/schemas/json_attributes'
                        name:
                          $ref: '#/components/schemas/name'
                      required:
                        - item_id
                      title: item_id
                  type: object
                type: array
          description: >-
            Retorna uma lista de itens disponíveis para o usuário e o número de
            vezes que um determinado usuário pode comprar um determinado item.
        '404':
          description: Usuário não encontrado.
      summary: Personalização de catálogo no lado do parceiro
      tags:
        - personalization
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d90d319f05df7b0f86d2485f48e7079f0f752523' \

            -d '{
                    "notification_type": "partner_side_catalog",
                    "user": {
                        "user_id": "12345",
                        "country": "US"
                    }
                }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523

            {
                "notification_type": "partner_side_catalog",
                "user": {
                  "user_id": "12345",
                  "country": "US"
                }
            }
  refund:
    post:
      description: >
        Quando um pagamento é cancelado, a Xsolla envia detalhes da transação
        cancelada 

        em um webhook com o tipo `refund` para o URL do webhook.


        O mecanismo de repetição do webhook depende de quem iniciou o reembolso:

        * Se o reembolso foi iniciado do seu lado, o webhook não é reenviado. O
        pagamento 
          é reembolsado ao usuário independentemente da resposta ao webhook.
        * Se o reembolso foi iniciado por um terceiro — por exemplo, um sistema
        de 
          pagamento ou a equipe de Suporte ao Cliente da Xsolla — e, em resposta a um 
          webhook, um código de status `5xx` foi retornado, o webhook é reenviado em 
          intervalos crescentes. O número máximo de tentativas é 12 em até 48 horas a 
          partir da primeira tentativa.

        Para informações detalhadas sobre o processo de reembolso, consulte as 

        [instruções](/pt/doc/pay-station/features/refund/).


        <div class="notice">

        <p><strong>Aviso</strong></p>

        <p>O pagamento ainda será reembolsado ao usuário se todas as seguintes
        condições forem atendidas:<ul><li>O reembolso foi iniciado pela
        Xsolla.</li><li>Em resposta a um webhook, um código de status
        <code>4xx</code> foi retornado, ou nenhuma resposta foi recebida após
        todas as tentativas repetidas, ou um código de status <code>5xx</code>
        foi retornado.</li></ul></p>

        </div>


        Quando você salva o URL do webhook na <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">Conta
        de 

        Distribuidor</a>, você também pode configurar o recebimento de
        informações 

        adicionais nos webhooks.


        <div class="note">

        <p><strong>Observação</strong></p>

        <p>Se você se registrou na Conta de Distribuidor no dia 22 de janeiro de
        2025 ou antes, você encontrará as opções no seu projeto na seção <a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">Project
        settings &gt; Webhooks &gt; Testing &gt; Payments &gt; Advanced
        settings</a>.</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>Opção</th>
                <th>Descrição</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>Exibir informações sobre transações pelos métodos de pagamento salvos</td>
                <td><p>As informações são passadas nos seguintes parâmetros personalizados do webhook:</p><ul><li><code>saved_payment_method</code>:<ul><li><code>0</code> — o método de pagamento guardado não foi utilizado</li><li><code>1</code> — o método de pagamento foi salvo ao efetuar o pagamento atual</li><li><code>2</code> — o método de pagamento previamente guardado é utilizado</li></ul></li><li><code>payment_type</code>:<ul><li><code>1</code> — pagamento único</li><li><code>2</code> — pagamento recorrente</li></ul></li></ul></td>
            </tr>
        </tbody>

        </table>


        Códigos de reembolso:


        <table>
            <thead>
            <tr>
                <th>Código</th>
                <th>Motivo</th>
                <th>Descrição</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>1</td>
                <td>Cancellation by the user request / the game request</td>
                <td>Cancelamento iniciado a partir da Publisher Account.</td>
            </tr>
            <tr>
                <td>2</td>
                <td>Chargeback</td>
                <td>Estorno de transação solicitado.</td>
            </tr>
            <tr>
                <td>3</td>
                <td>Integration error</td>
                <td>Problemas na integração entre a Xsolla e o jogo.<br /><b>Recomendação: não adicione o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>4</td>
                <td>Potential fraud</td>
                <td>Suspeita de fraude.<br /><b>Recomendação: adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>5</td>
                <td>Test payment</td>
                <td>Transação de teste seguida de cancelamento.<br /><b>Recomendação: não adicione o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>6</td>
                <td>User invoice expired</td>
                <td>Invoice vencido (utilizado no modelo pós-pago).</td>
            </tr>
            <tr>
                <td>7</td>
                <td>Fraud notification from PS</td>
                <td>Pagamento recusado pelo sistema de pagamento. Potencial fraude detectada pelo PS.<br /><b>Recomendação: adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>8</td>
                <td>Cancellation by the PS request</td>
                <td>Cancelamento solicitado pelo sistema de pagamento.<br /><b>Recomendação: não adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>9</td>
                <td>Cancellation by the user request</td>
                <td>O usuário não ficou satisfeito com o jogo ou a compra por qualquer motivo.<br /><b>Recomendação: não adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>10</td>
                <td>Cancellation by the game request</td>
                <td>Cancelamento solicitado pelo jogo.<br /><b>Recomendação: não adicionar o usuário à lista de bloqueio.</b></td>
            </tr>
            <tr>
                <td>11</td>
                <td>Account holder called to report fraud</td>
                <td>O proprietário da conta afirma que não fez a transação.</td>
            </tr>
            <tr>
                <td>12</td>
                <td>Friendly fraud</td>
                <td>Fraude amigável denunciada.</td>
            </tr>
            <tr>
                <td>13</td>
                <td>Duplicate</td>
                <td>Duplique a transação para o mesmo invoice.</td>
            </tr>
            </tbody>
        </table>
      operationId: refund
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: Seus parâmetros personalizados.
                  type: object
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                payment_details:
                  description: Detalhes de pagamento (objeto).
                  properties:
                    country_wht:
                      description: >-
                        Imposto retido na fonte aplicado em países específicos
                        devido a transações internacionais (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Taxa de retenção na fonte do país, %.
                          format: float
                          type: number
                      type: object
                    direct_wht:
                      description: Imposto retido direto na fonte.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Alíquota de retenção direta na fonte.
                          format: float
                          type: number
                      type: object
                    payment:
                      description: Valor pago pelo usuário (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payment_method_fee:
                      description: Taxa do sistema de pagamento.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payment_method_sum:
                      description: Valor debitado do sistema de pagamento.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payout:
                      description: Dados de pagamento (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    payout_currency_rate:
                      description: >-
                        Taxa de câmbio entre as moedas de pagamento e
                        remuneração.
                      type: string
                    repatriation_commission:
                      description: >-
                        Objeto com dados sobre os custos de repatriamento,
                        imposto à Xsolla por terceiros.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    sales_tax:
                      description: Imposto sobre vendas (objeto; apenas EUA e Canadá).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Alíquota de imposto sobre vendas.
                          format: float
                          type: number
                      type: object
                    user_acquisition_fee:
                      description: >-
                        Valor total das taxas de aquisição de usuários deduzidas
                        para as compras feitas por meio de redes afiliadas e
                        influenciadores (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Proporção de taxa de aquisição de usuários, %.
                          format: float
                          type: number
                      type: object
                    vat:
                      description: Dados do IVA (objeto; apenas na UE).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                        percent:
                          description: Taxa de IVA.
                          format: float
                          type: number
                      type: object
                    xsolla_balance_sum:
                      description: Valor debitado do saldo Xsolla.
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    xsolla_fee:
                      description: Taxa Xsolla (objeto).
                      properties:
                        amount:
                          description: Quantia.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                  type: object
                purchase:
                  description: Dados da compra (objeto).
                  properties:
                    checkout:
                      description: Dados do checkout (objeto).
                      properties:
                        amount:
                          description: Valor da compra.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                    subscription:
                      description: Dados da assinatura (objeto).
                      properties:
                        amount:
                          $ref: '#/components/schemas/amount-float'
                        currency:
                          $ref: '#/components/schemas/currency'
                        date_create:
                          $ref: '#/components/schemas/subscription.date_create'
                        plan_id:
                          $ref: '#/components/schemas/subscription.plan_id'
                        subscription_id:
                          $ref: '#/components/schemas/subscription.subscription_id'
                        tags:
                          $ref: '#/components/schemas/subscription.tags'
                      type: object
                    total:
                      description: Preço total de compra (objeto).
                      properties:
                        amount:
                          description: Valor total do pagamento.
                          format: float
                          type: number
                        currency:
                          $ref: '#/components/schemas/currency'
                      type: object
                  required:
                    - total
                  type: object
                refund_details:
                  description: Detalhes do reembolso (objeto).
                  properties:
                    author:
                      description: >
                        Iniciador de reembolso. O valor do campo é passado de
                        acordo com a tabela:


                        <table>
                            <thead>
                            <tr>
                                <th>Iniciador de reembolso</th>
                                <th>Valor do campo</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>Jogo (via API).</td>
                                <td>API</td>
                            </tr>
                            <tr>
                                <td>Usuário da Publisher Account (reembolso automático).</td>
                                <td>E-mail do usuário</td>
                            </tr>
                            <tr>
                                <td>Usuário da Publisher Account (com assistência do suporte ao cliente Xsolla).</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            <tr>
                                <td>Xsolla (com assistência do suporte ao cliente Xsolla).</td>
                                <td>support@xsolla.com</td>
                            </tr>
                            </tbody>
                        </table>
                      type: string
                    code:
                      description: ID do código.
                      type: integer
                    reason:
                      description: Motivo do reembolso.
                      type: string
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                transaction:
                  description: Detalhes da transação (objeto).
                  properties:
                    agreement:
                      description: ID do contrato.
                      type: integer
                    dry_run:
                      description: >-
                        Transação de teste. O parâmetro tem valor 1 se for uma
                        transação de teste ou não for enviado se a transação for
                        real.
                      type: integer
                    external_id:
                      description: ID externo de transação.
                      type: string
                    id:
                      description: ID de transação.
                      type: integer
                    payment_method_order_id:
                      description: ID de pagamento no sistema de pagamento.
                      type: string
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                    phone:
                      $ref: '#/components/schemas/user.phone'
                    zip:
                      $ref: '#/components/schemas/user.zip'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - transaction
                - payment_details
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Reembolso
      tags:
        - payments
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: |-
            curl -v 'https://your.hostname/your/uri' \
            -X POST \
            -d '{
                    "notification_type": "refund",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "purchase": {
                        "subscription": {
                            "plan_id": "b5dac9c8",
                            "subscription_id": "10",
                            "date_create": "2014-09-22T19:25:25+04:00",
                            "currency": "USD",
                            "amount": 9.99
                        },
                        "checkout": {
                            "currency": "USD",
                            "amount": 50
                        },
                        "total":{
                            "currency": "USD",
                            "amount": 200
                        }
                    },
                    "user": {
                        "ip": "127.0.0.1",
                        "phone": "18777976552",
                        "email": "email@example.com",
                        "id": "1234567",
                        "name": "John Smith",
                        "country": "US"
                    },
                    "transaction": {
                        "id": 1,
                        "external_id": 1,
                        "dry_run": 1,
                        "agreement": 1
                    },
                    "refund_details": {
                        "code": 4,
                        "reason": "Potential fraud"
                    },
                    "payment_details": {
                        "sales_tax": {
                            "currency": "USD",
                            "amount": 0
                        },
                        "direct_wht": {
                            "currency": "USD",
                            "amount": 0.70
                        },
                        "xsolla_fee": {
                            "currency": "USD",
                            "amount": "10"
                        },
                        "payout": {
                            "currency": "USD",
                            "amount": "200"
                        },
                        "payment_method_fee": {
                            "currency": "USD",
                            "amount": "20"
                        },
                        "payment": {
                            "currency": "USD",
                            "amount": "230"
                        },
                        "repatriation_commission": {
                            "currency": "USD",
                            "amount": 10
                        }
                    }
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'refund',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'purchase' => array(
                    'total' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    )
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email' => 'email@example.com',
                    'id' => '1234567',
                    'country' => 'US'
                ),
                'transaction' => array(
                    'id' => 87654321,
                    'payment_date' => '2014-09-23T19:25:25+04:00',
                    'payment_method' => 1380,
                    'dry_run' => 1
                ),
                'refund_details' => array(
                        'code' => 4,
                        'reason' => 'Potential fraud'
                ),
                'payment_details' => array(
                    'payment' => array(
                        'currency' => 'USD',
                        'amount' => 9.99
                    ),
                    'vat' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'sales_tax' => array(
                        'currency' => 'USD',
                        'amount' => 0
                    ),
                    'direct_wht' => array(
                        'currency' => 'USD',
                        'amount' => 70
                    ),
                    'payout_currency_rate' => 1,
                    'payout' => array(
                        'currency' => 'USD',
                        'amount' => 9.49
                    ),
                    'xsolla_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.19
                    ),
                    'payment_method_fee' => array(
                        'currency' => 'USD',
                        'amount' => 0.31
                    ),
                    'repatriation_commission' => array(
                        'currency' => 'USD',
                        'amount' => 0.2
                    )
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your_uri HTTP/1.1
            host: your.host
            accept: application/json
            content-type: application/json
            content-length: 1220
            authorization: Signature 31bd5924dd6cbc9cbe99d331c4a086a57291f9d7

            {
                "notification_type": "refund",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "purchase": {
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "date_create": "2014-09-22T19:25:25+04:00",
                        "currency": "USD",
                        "amount": 9.99
                    },
                    "checkout": {
                        "currency": "USD",
                        "amount": 50
                    },
                    "total": {
                        "currency": "USD",
                        "amount": 200
                    }
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                },
                "transaction": {
                    "id": 1,
                    "external_id": 1,
                    "dry_run": 1,
                    "agreement": 1
                },
                "refund_details": {
                    "code": 4,
                    "reason": "Potential fraud"
                },
                "payment_details": {
                    "sales_tax": {
                        "currency": "USD",
                        "amount": 0
                    },
                    "direct_wht": {
                        "currency": "USD",
                        "amount": 0.70
                    },
                    "xsolla_fee": {
                        "currency": "USD",
                        "amount": "10"
                    },
                    "payout": {
                        "currency": "USD",
                        "amount": "200"
                    },
                    "payment_method_fee": {
                        "currency": "USD",
                        "amount": "20"
                    },
                    "payment": {
                        "currency": "USD",
                        "amount": "230"
                    },
                    "repatriation_commission": {
                        "currency": "USD",
                        "amount": 10
                    }
                }
            }
  remove-payment-account:
    post:
      description: >-
        Quando um usuário remove a conta de pagamento das contas salvas, a
        Xsolla envia um webhook com o tipo `payment_account_remove` para o URL
        do webhook. Para receber este webhook, entre em contato com seu Gerente
        de Sucesso do Cliente ou envie um e-mail para <a
        href="mailto:csm@xsolla.com">csm@xsolla.com</a>.
      operationId: remove-payment-account
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                payment_account:
                  description: Detalhes da conta de pagamento (objeto).
                  properties:
                    id:
                      $ref: '#/components/schemas/payment_account.id'
                    name:
                      $ref: '#/components/schemas/payment_account.name'
                    payment_method:
                      $ref: '#/components/schemas/payment_account.payment_method'
                    type:
                      $ref: '#/components/schemas/payment_account.type'
                  required:
                    - id
                  type: object
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    name:
                      $ref: '#/components/schemas/user.name'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Remover conta de pagamento
      tags:
        - payments
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "payment_account_remove",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "type": "paypal"
                }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "payment_account_remove",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith"
                },
                "payment_account": {
                    "id": "12345678",
                    "name": "email@example.com",
                    "payment_method": "24",
                    "type": "paypal"
                }
            }
  successful-order-payment:
    post:
      description: >
        A Xsolla envia o webhook <code>order_paid</code> para o URL especificado
        quando 

        o usuário paga pelo pedido com sucesso.


        O webhook <code>order_paid</code> contém informações sobre os itens
        comprados, 

        dados de pagamento e os detalhes da transação.


        O webhook <code>order_paid</code> não é enviado se o pagamento não for
        bem-

        sucedido. Por exemplo:

        * o formulário de pagamento foi aberto, mas o usuário não pagou pelo
        pedido

        * o formulário de pagamento foi aberto, mas houve erros durante o
        pagamento


        Recomenda-se que o tempo de processamento do webhook
        <code>order_paid</code> 

        seja inferior a 3 segundos.


        <div class="notice">

        <p><strong>Aviso</strong></p>

        <p>O conjunto de campos enviados em um webhook depende das seguintes
        configurações:<ul><li>as que você configurou na Conta de Distribuidor na
        seção <a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">Project
        settings &gt; Webhooks &gt; Advanced settings</a>.</li><li>as
        configuradas no lado da Xsolla.</li></ul></p><p>Se você tiver alguma
        dúvida, entre em contato com seu Gerente de Sucesso do Cliente ou envie
        um e-mail para <a href="mailto:csm@xsolla.com">csm@xsolla.com</a>.</p>

        </div>


        As respostas esperadas são descritas na seção <b>Respostas</b>. Você
        pode usar 

        outros códigos de resposta. Dependendo do código da resposta e a conexão
        da 

        funcionalidade de reembolso automático do pagamento, a lógica de
        processamento 

        do webhook no lado da Xsolla funciona como a seguir:


        <table>
            <thead>
            <tr>
                <th>Código de resposta</th>
                <th>Reembolso automático de pagamento está desativado (por padrão)</th>
                <th>Reembolso automático de pagamento está ativado</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td><code>400</code>, <code>401</code>, <code>402</code>, <code>403</code>, <code>404</code>, <code>409</code>, <code>422</code>, <code>415</code></td>
                <td>Nenhuma ação</td>
                <td>Reembolso automático ao usuário</td>
            </tr>
            <tr>
                <td><code>200</code>, <code>201</code>, <code>204</code></td>
                <td>Nenhuma ação</td>
                <td>Nenhuma ação</td>
            </tr>
            <tr>
                <td>Código diferente ou nenhuma resposta ao webhook</td>
                <td>Múltiplos webhooks são enviados dentro de um intervalo de tempo específico: 2 tentativas dentro de um intervalo de 5 minutos, 7 tentativas dentro de um intervalo de 15 minutos, 10 tentativas de dentro de um intervalo de 60 minutos.</td>
                <td>Múltiplos webhooks são enviados dentro de um intervalo de tempo específico: 2 tentativas dentro de um intervalo de 5 minutos, 7 tentativas dentro de um intervalo de 15 minutos, 10 tentativas de dentro de um intervalo de 60 minutos. Se todos os webhooks forem enviados mas não for recebida uma resposta bem-sucedida, um reembolso automático é emitido ao usuário.</td>
            </tr>
            </tbody>
        </table>


        Para conectar a funcionalidade de reembolso automático, entre em contato
        com 

        seus Gerentes de Sucesso do Cliente ou envie um e-mail para
        csm@xsolla.com.
      operationId: successful-order-payment
      requestBody:
        content:
          application/json:
            schema:
              properties:
                billing:
                  description: Detalhes da transação e do pagamento.
                  properties:
                    notification_type:
                      $ref: '#/components/schemas/notification_type'
                    payment_details:
                      description: Detalhes de pagamento (objeto).
                      properties:
                        country_wht:
                          description: >-
                            Imposto retido na fonte aplicado em países
                            específicos devido a transações internacionais
                            (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Taxa de retenção na fonte do país, %.
                              format: float
                              type: number
                          type: object
                        direct_wht:
                          description: Imposto retido direto na fonte.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Alíquota de retenção direta na fonte.
                              format: float
                              type: number
                          type: object
                        payment:
                          description: Valor pago pelo usuário (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payment_method_fee:
                          description: Taxa do sistema de pagamento.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payment_method_sum:
                          description: Valor debitado do sistema de pagamento.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payout:
                          description: Dados de pagamento (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        payout_currency_rate:
                          description: >-
                            Taxa de câmbio entre as moedas de pagamento e
                            remuneração.
                          type: string
                        repatriation_commission:
                          description: >-
                            Objeto com dados sobre os custos de repatriamento,
                            imposto à Xsolla por terceiros.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        sales_tax:
                          description: Imposto sobre vendas (objeto; apenas EUA e Canadá).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Alíquota de imposto sobre vendas.
                              format: float
                              type: number
                          type: object
                        user_acquisition_fee:
                          description: >-
                            Valor total das taxas de aquisição de usuários
                            deduzidas para as compras feitas por meio de redes
                            afiliadas e influenciadores (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Proporção de taxa de aquisição de usuários, %.
                              format: float
                              type: number
                          type: object
                        vat:
                          description: Dados do IVA (objeto; apenas na UE).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                            percent:
                              description: Taxa de IVA.
                              format: float
                              type: number
                          type: object
                        xsolla_balance_sum:
                          description: Valor debitado do saldo Xsolla.
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                        xsolla_fee:
                          description: Taxa Xsolla (objeto).
                          properties:
                            amount:
                              description: Quantia.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                      type: object
                    purchase:
                      description: Dados da compra (objeto).
                      properties:
                        coupon:
                          description: >-
                            Dados do cupom (objeto; se um cupom foi usado ao
                            criar a assinatura).
                          properties:
                            campaign_code:
                              description: Código da campanha.
                              type: string
                            coupon_code:
                              description: Código de cupom.
                              type: string
                          type: object
                        gift:
                          description: Detalhes do presente (objeto).
                          properties:
                            giver_id:
                              description: ID do doador.
                              type: string
                            hide_giver_from_receiver:
                              description: >-
                                Se a identidade do doador deve ou não ser
                                ocultada do recipiente.
                              type: string
                            message:
                              description: Mensagem do doador.
                              type: string
                            receiver_email:
                              description: E-mail do recipiente do presente.
                              type: string
                            receiver_id:
                              description: ID do recipiente do presente.
                              type: string
                          type: object
                        promotions:
                          description: Promoções aplicadas a esta transação.
                          items:
                            properties:
                              id:
                                description: ID da promoção.
                                type: integer
                              technical_name:
                                description: Nome técnico da promoção.
                                type: string
                            type: object
                          type: array
                        subscription:
                          description: Dados da assinatura (objeto).
                          properties:
                            amount:
                              $ref: '#/components/schemas/amount-float'
                            currency:
                              $ref: '#/components/schemas/currency'
                            date_create:
                              $ref: '#/components/schemas/subscription.date_create'
                            date_next_charge:
                              description: >-
                                Data da próxima cobrança. Data e hora de acordo
                                com o [ISO
                                8601](https://en.wikipedia.org/wiki/ISO_8601).
                              type: string
                            plan_id:
                              $ref: '#/components/schemas/subscription.plan_id'
                            product_id:
                              description: ID do produto (se enviado no token de acesso).
                              type: string
                            subscription_id:
                              $ref: >-
                                #/components/schemas/subscription.subscription_id
                            tags:
                              $ref: '#/components/schemas/subscription.tags'
                          type: object
                        total:
                          description: Preço total de compra (objeto).
                          properties:
                            amount:
                              description: Valor total do pagamento.
                              format: float
                              type: number
                            currency:
                              $ref: '#/components/schemas/currency'
                          type: object
                      required:
                        - total
                      type: object
                    settings:
                      description: Configurações personalizadas do projeto (objeto).
                      properties:
                        merchant_id:
                          $ref: '#/components/schemas/settings.merchant_id'
                        project_id:
                          $ref: '#/components/schemas/settings.project_id'
                      type: object
                    transaction:
                      description: Detalhes da transação (objeto).
                      properties:
                        agreement:
                          description: ID do contrato.
                          type: integer
                        dry_run:
                          description: >-
                            Transação de teste. O parâmetro tem valor 1 se for
                            uma transação de teste ou não for enviado se a
                            transação for real.
                          type: integer
                        external_id:
                          $ref: '#/components/schemas/external-id'
                        id:
                          description: ID de transação.
                          type: integer
                        payment_date:
                          description: Data de pagamento.
                          type: string
                        payment_method:
                          description: ID de método de pagamento.
                          type: integer
                        payment_method_name:
                          description: Nome do método de pagamento.
                          type: string
                        payment_method_order_id:
                          description: ID de pagamento no sistema de pagamento.
                          type: string
                      type: object
                  required:
                    - notification_type
                    - transaction
                    - payment_details
                  type: object
                custom_parameters:
                  description: Informações adicionais.
                  type: object
                items:
                  description: >
                    Lista de itens comprados pelo usuário.


                    O conjunto de parâmetros incluídos na matriz depende da
                    versão do webhook. A 

                    versão 2 inclui parâmetros adicionais: `is_free`,
                    `is_bonus`, e 

                    `is_bundle_content`. Para alternar a versão, passe seu
                    número no parâmetro 

                    `version` na chamada API [Atualizar informações de
                    configurações do 

                    webhook](/pt/api/igs/operation/update-webhook/).
                  items:
                    oneOf:
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                        title: versão = 1
                        type: object
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_bonus:
                            description: Se `true`, o item é um bônus.
                            type: boolean
                          is_bundle_content:
                            description: Se `true`, o item pertence a um conjunto.
                            type: boolean
                          is_free:
                            description: Se `true`, o item é gratuito.
                            type: boolean
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                          - is_free
                          - is_bonus
                          - is_bundle_content
                        title: versão = 2
                        type: object
                  type: array
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                order:
                  description: Informações sobre o pedido.
                  properties:
                    amount:
                      description: >-
                        O custo total de um carrinho com base na moeda
                        escolhida.
                      type: string
                    comment:
                      description: Comentário do usuário ao pedido.
                      nullable: true
                      type: string
                    coupons:
                      description: >-
                        Cupons aplicados. Se o cupom não for aplicado, a matriz
                        não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um cupom aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    currency:
                      description: >-
                        Moeda de ordem. A moeda virtual usa o SKU e a moeda real
                        usa um código [ISO
                        4217](https://en.wikipedia.org/wiki/ISO_4217) de três
                        letras.
                      type: string
                    currency_type:
                      $ref: '#/components/schemas/currency-type'
                    id:
                      description: >-
                        Identificador exclusivo do pedido do usuário no lado da
                        Xsolla.
                      type: integer
                    invoice_id:
                      description: >-
                        ID da fatura de pagamentos em moeda real. Pagamentos em
                        moedas virtuais ou itens grátis têm um valor `null`.
                      nullable: true
                      type: string
                    mode:
                      description: >-
                        Modalidade de pagamento. `default` é usado para
                        pagamentos reais; `sandbox` para pagamentos de testes.
                      enum:
                        - default
                        - sandbox
                      type: string
                    platform:
                      description: >-
                        Plataforma de pagamento. O valor `xsolla` é usado para
                        pagamentos via Xsolla. Para outros pagamentos, é
                        utilizado o valor correspondente ao nome da plataforma
                        de publicação de jogos.
                      enum:
                        - xsolla
                        - playstation_network
                        - xbox_live
                        - pc_standalone
                        - nintendo_shop
                        - google_play
                        - app_store_ios
                        - android_standalone
                        - ios_standalone
                        - android_other
                        - ios_other
                        - pc_other
                      nullable: true
                      type: string
                    promocodes:
                      description: >-
                        Códigos promocionais aplicados. Se o código promocional
                        não for aplicado, a matriz não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um código promocional aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    promotions:
                      $ref: '#/components/schemas/order.promotions'
                    status:
                      description: Status do pedido.
                      type: string
                  required:
                    - id
                    - mode
                    - currency_type
                    - currency
                    - amount
                    - status
                    - platform
                    - comment
                    - invoice_id
                    - promotions
                  type: object
                user:
                  description: Informações do usuário.
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      description: Endereço de e-mail do usuário.
                      type: string
                    external_id:
                      description: ID de usuário.
                      type: string
                  required:
                    - external_id
                    - email
                  type: object
              required:
                - notification_type
                - items
                - order
                - user
                - transaction
                - payment_details
      responses:
        '200':
          description: Retorne para indicar o processamento bem-sucedido.
        '400':
          description: >-
            Retorne em caso de erro nas informações fornecidas (por exemplo, um
            parâmetro obrigatório ausente, falha na autorização, etc.).
      summary: Pagamento bem-sucedido do pedido (com detalhes de pagamento e transação)
      tags:
        - combined-webhooks
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "payment",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase": {
                      "subscription": {
                          "plan_id": "b5dac9c8",
                          "subscription_id": "10",
                          "product_id": "Demo Product",
                          "date_create": "2014-09-22T19:25:25+04:00",
                          "date_next_charge": "2014-10-22T19:25:25+04:00",
                          "currency": "USD",
                          "amount": 9.99
                      },
                      "total": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "promotions": [{
                          "technical_name": "Demo Promotion",
                          "id": 853
                      }],
                      "coupon": {
                          "coupon_code": "ICvj45S4FUOyy",
                          "campaign_code": "1507"
                      }
                    },
                  "transaction": {
                      "id": 1,
                      "external_id": 1,
                      "payment_date": "2014-09-24T20:38:16+04:00",
                      "payment_method": 1,
                      "payment_method_name": "PayPal",
                      "payment_method_order_id": 1234567890123456789,
                      "dry_run": 1,
                      "agreement": 1
                  },
                  "payment_details": {
                      "payment": {
                          "currency": "USD",
                          "amount": 230
                      },
                      "vat": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 20
                      },
                      "sales_tax": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "direct_wht": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "payout_currency_rate": "1",
                      "payout": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "country_wht": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 10
                      },
                      "user_acquisition_fee": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 1
                      },
                      "xsolla_fee": {
                          "currency": "USD",
                          "amount": 10
                      },
                      "payment_method_fee": {
                          "currency": "USD",
                          "amount": 20
                      },
                      "repatriation_commission": {
                          "currency": "USD",
                          "amount": 10
                      }
                  }
                }
             ,
              "custom_parameters": {
                "parameter1": "value1",
                "parameter2": "value2"
              }
            }
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": null,
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                },
                "billing": {
                  "notification_type": "payment",
                  "settings": {
                    "project_id": 18404,
                    "merchant_id": 2340
                  },
                  "purchase":{
                      "subscription": {
                          "plan_id": "b5dac9c8",
                          "subscription_id": "10",
                          "product_id": "Demo Product",
                          "date_create": "2014-09-22T19:25:25+04:00",
                          "date_next_charge": "2014-10-22T19:25:25+04:00",
                          "currency": "USD",
                          "amount": 9.99
                      },
                      "total": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "promotions": [{
                          "technical_name": "Demo Promotion",
                          "id": 853
                      }],
                      "coupon": {
                          "coupon_code": "ICvj45S4FUOyy",
                          "campaign_code": "1507"
                      }
                  },
                  "transaction": {
                      "id": 1,
                      "external_id": 1,
                      "payment_date": "2014-09-24T20:38:16+04:00",
                      "payment_method": 1,
                      "payment_method_name": "PayPal",
                      "payment_method_order_id": 1234567890123456789,
                      "dry_run": 1,
                      "agreement": 1
                  },
                  "payment_details": {
                      "payment": {
                          "currency": "USD",
                          "amount": 230
                      },
                      "vat": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 20
                      },
                      "sales_tax": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "direct_wht": {
                          "currency": "USD",
                          "amount": 0,
                          "percent": 0
                      },
                      "payout_currency_rate": "1",
                      "country_wht": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 10
                      },
                      "user_acquisition_fee": {
                          "currency": "USD",
                          "amount": 2,
                          "percent": 1
                      },
                      "payout": {
                          "currency": "USD",
                          "amount": 200
                      },
                      "xsolla_fee": {
                          "currency": "USD",
                          "amount": 10
                      },
                      "payment_method_fee": {
                          "currency": "USD",
                          "amount": 20
                      },
                      "repatriation_commission": {
                          "currency": "USD",
                          "amount": 10
                      }
                  }
                },
                "custom_parameters": {
                    "parameter1": "value1",
                    "parameter2": "value2"
                    }
                }
  successful-order-payment-separate:
    post:
      description: >
        A Xsolla envia o webhook <code>order_paid</code> para o URL especificado
        quando 

        as seguintes condições são atendidas:

        1. O usuário pagou pelo pedido com sucesso.

        2. Xsolla recebeu uma resposta sobre o processamento bem-sucedido do
        webhook de 
           [pagamento](/pt/webhooks/operation/payment/).

        O webhook <code>order_paid</code> contém informações sobre os itens
        comprados e 

        os dados da transação.


        O webhook <code>order_paid</code> não será enviado se:

        * O pagamento não foi bem-sucedido, por exemplo:
          * o formulário de pagamento foi aberto, mas o usuário não pagou pelo pedido
          * o formulário de pagamento foi aberto, mas houve erros durante o pagamento
        * A resposta sobre o processamento bem-sucedido do webhook 
          [pagamento](/pt/webhooks/operation/payment/) não foi recebida.

        Recomenda-se que o tempo de processamento do webhook
        <code>order_paid</code> 

        seja inferior a 3 segundos.


        As respostas esperadas são descritas na seção <b>Respostas</b>. Você
        pode usar 

        outros códigos de resposta. Dependendo do código da resposta e a conexão
        da 

        funcionalidade de reembolso automático do pagamento, a lógica de
        processamento 

        do webhook no lado da Xsolla funciona como a seguir:


        <table>
            <thead>
            <tr>
                <th>Código de resposta</th>
                <th>Reembolso automático de pagamento está desativado (por padrão)</th>
                <th>Reembolso automático de pagamento está ativado</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td><code>400</code>, <code>401</code>, <code>402</code>, <code>403</code>, <code>404</code>, <code>409</code>, <code>422</code>, <code>415</code></td>
                <td>Nenhuma ação</td>
                <td>Reembolso automático ao usuário</td>
            </tr>
            <tr>
                <td><code>200</code>, <code>201</code>, <code>204</code></td>
                <td>Nenhuma ação</td>
                <td>Nenhuma ação</td>
            </tr>
            <tr>
                <td>Código diferente ou nenhuma resposta ao webhook</td>
                <td>Múltiplos webhooks são enviados dentro de um intervalo de tempo específico: 2 tentativas dentro de um intervalo de 5 minutos, 7 tentativas dentro de um intervalo de 15 minutos, 10 tentativas de dentro de um intervalo de 60 minutos.</td>
                <td>Múltiplos webhooks são enviados dentro de um intervalo de tempo específico: 2 tentativas dentro de um intervalo de 5 minutos, 7 tentativas dentro de um intervalo de 15 minutos, 10 tentativas de dentro de um intervalo de 60 minutos. Se todos os webhooks forem enviados mas não for recebida uma resposta bem-sucedida, um reembolso automático é emitido ao usuário.</td>
            </tr>
            </tbody>
        </table>


        Para conectar a funcionalidade de reembolso automático, entre em contato
        com 

        seus Gerentes de Sucesso do Cliente ou envie um e-mail para
        csm@xsolla.com.
      operationId: successful-order-payment-separate
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  description: Informações adicionais.
                  type: object
                items:
                  description: >
                    Lista de itens comprados pelo usuário.


                    O conjunto de parâmetros incluídos na matriz depende da
                    versão do webhook. A 

                    versão 2 inclui parâmetros adicionais: `is_free`,
                    `is_bonus`, e 

                    `is_bundle_content`. Para alternar a versão, passe seu
                    número no parâmetro 

                    `version` na chamada API [Atualizar informações de
                    configurações do 

                    webhook](/pt/api/igs/operation/update-webhook/).
                  items:
                    oneOf:
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                        title: versão = 1
                        type: object
                      - properties:
                          amount:
                            description: Custo total dos itens com base na quantidade.
                            type: string
                          custom_attributes:
                            description: >-
                              Um objeto JSON contendo atributos e valores de
                              item.
                            type: object
                          is_bonus:
                            description: Se `true`, o item é um bônus.
                            type: boolean
                          is_bundle_content:
                            description: Se `true`, o item pertence a um conjunto.
                            type: boolean
                          is_free:
                            description: Se `true`, o item é gratuito.
                            type: boolean
                          is_pre_order:
                            description: Se `true`, o item está em pré-venda.
                            type: boolean
                          promotions:
                            $ref: '#/components/schemas/items.promotions'
                          quantity:
                            description: Quantidade de itens.
                            type: integer
                          sku:
                            $ref: '#/components/schemas/items.sku'
                          type:
                            $ref: '#/components/schemas/items.type'
                        required:
                          - sku
                          - type
                          - quantity
                          - amount
                          - promotions
                          - is_pre_order
                          - is_free
                          - is_bonus
                          - is_bundle_content
                        title: versão = 2
                        type: object
                  type: array
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                order:
                  description: Informações sobre o pedido.
                  properties:
                    amount:
                      description: >-
                        O custo total de um carrinho com base na moeda
                        escolhida.
                      type: string
                    comment:
                      description: Comentário do usuário ao pedido.
                      nullable: true
                      type: string
                    coupons:
                      description: >-
                        Cupons aplicados. Se o cupom não for aplicado, a matriz
                        não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um cupom aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    currency:
                      description: >-
                        Moeda de ordem. A moeda virtual usa o SKU e a moeda real
                        usa um código [ISO
                        4217](https://en.wikipedia.org/wiki/ISO_4217) de três
                        letras.
                      type: string
                    currency_type:
                      $ref: '#/components/schemas/currency-type'
                    id:
                      description: >-
                        Identificador exclusivo do pedido do usuário no lado da
                        Xsolla.
                      type: integer
                    invoice_id:
                      description: >-
                        ID da fatura de pagamentos em moeda real. Pagamentos em
                        moedas virtuais ou itens grátis têm um valor `null`.
                      nullable: true
                      type: string
                    mode:
                      description: >-
                        Modalidade de pagamento. `default` é usado para
                        pagamentos reais; `sandbox` para pagamentos de testes.
                      enum:
                        - default
                        - sandbox
                      type: string
                    platform:
                      description: >-
                        Plataforma de pagamento. O valor `xsolla` é usado para
                        pagamentos via Xsolla. Para outros pagamentos, é
                        utilizado o valor correspondente ao nome da plataforma
                        de publicação de jogos.
                      enum:
                        - xsolla
                        - playstation_network
                        - xbox_live
                        - pc_standalone
                        - nintendo_shop
                        - google_play
                        - app_store_ios
                        - android_standalone
                        - ios_standalone
                        - android_other
                        - ios_other
                        - pc_other
                      nullable: true
                      type: string
                    promocodes:
                      description: >-
                        Códigos promocionais aplicados. Se o código promocional
                        não for aplicado, a matriz não retornará.
                      items:
                        properties:
                          code:
                            description: O código de um código promocional aplicado.
                            type: string
                          external_id:
                            description: ID externo.
                            type: string
                        type: object
                      type: array
                    promotions:
                      $ref: '#/components/schemas/order.promotions'
                    status:
                      description: Status do pedido.
                      type: string
                  required:
                    - id
                    - mode
                    - currency_type
                    - currency
                    - amount
                    - status
                    - platform
                    - comment
                    - invoice_id
                    - promotions
                  type: object
                user:
                  description: Informações do usuário.
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      description: Endereço de e-mail do usuário.
                      type: string
                    external_id:
                      description: ID de usuário.
                      type: string
                  required:
                    - external_id
                    - email
                  type: object
              required:
                - notification_type
                - items
                - order
                - user
      responses:
        '200':
          description: Retorne para indicar o processamento bem-sucedido.
        '400':
          description: >-
            Retorne em caso de erro nas informações fornecidas (por exemplo, um
            parâmetro obrigatório ausente, falha na autorização, etc.).
      summary: Pagamento bem-sucedido do pedido (sem detalhes de pagamento e transação)
      tags:
        - separate-webhooks
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \

            -d '{
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                }

            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host:           your.hostname
            accept:         application/json
            content-length: 258
            content-type:   application/json
            authorization:  Signature d90d319f05df7b0f86d2485f48e7079f0f752523


            {
                "notification_type": "order_paid",
                "items": [
                  {
                    "sku": "com.xsolla.v.item_1",
                    "type": "virtual_good",
                    "is_pre_order": false,
                    "quantity": 3,
                    "amount": "1000",
                    "promotions": [
                      {
                        "amount_without_discount": "6000",
                        "amount_with_discount": "5000",
                        "sequence": 1
                      },
                      {
                        "amount_without_discount": "5000",
                        "amount_with_discount": "4000",
                        "sequence": 2
                      }
                    ],
                    "custom_attributes":
                      {
                        "purchased": 0,
                        "attr": "value"
                      }
                  },
                  {
                    "sku": "com.xsolla.v.item_new_1",
                    "type": "bundle",
                    "is_pre_order": false,
                    "quantity": 1,
                    "amount": "1000",
                    "promotions": []
                  },
                  {
                    "sku": "com.xsolla.gold_1",
                    "type": "virtual_currency",
                    "is_pre_order": false,
                    "quantity": 1500,
                    "amount": "[null]",
                    "promotions": []
                  }
                ],
                "order": {
                  "id": 1,
                  "mode": "default",
                  "currency_type": "virtual",
                  "currency": "sku_currency",
                  "amount": "2000",
                  "status": "paid",
                  "platform": "xsolla",
                  "comment": null,
                  "invoice_id": "1",
                  "promotions": [
                    {
                      "amount_without_discount": "4000",
                      "amount_with_discount": "2000",
                      "sequence": 1
                    }
                  ],
                  "promocodes": [
                    {
                      "code": "promocode_some_code",
                      "external_id": "promocode_sku"
                    }
                  ],
                  "coupons": [
                    {
                      "code": "WINTER2021",
                      "external_id": "coupon_sku"
                    }
                  ]
                },
                "user": {
                  "external_id": "id_xsolla_login_1",
                  "email": "gc_user@xsolla.com",
                  "country": "US"
                }
            }
  updated-subscription:
    post:
      description: >-
        Se alguns parâmetros na assinatura (`plan_id`, `date_next_charge`) foram
        alterados, e no caso de cada renovação de assinatura, a Xsolla envia um
        webhook com o tipo `update_subscription` para o URL do webhook.
      operationId: updated-subscription
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                subscription:
                  description: Dados da assinatura (objeto).
                  properties:
                    date_next_charge:
                      $ref: '#/components/schemas/subscription.date_next_charge'
                    plan_id:
                      $ref: '#/components/schemas/subscription.plan_id'
                    product_id:
                      $ref: '#/components/schemas/subscription.product_id'
                    subscription_id:
                      $ref: '#/components/schemas/subscription.subscription_id'
                    tags:
                      $ref: '#/components/schemas/subscription.tags'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    id:
                      $ref: '#/components/schemas/user.id'
                    name:
                      $ref: '#/components/schemas/user.name'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Assinatura atualizada
      tags:
        - subscriptions
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                    "notification_type": "update_subscription",
                    "settings": {
                      "project_id": 18404,
                      "merchant_id": 2340
                    },
                    "user": {
                        "id": "1234567",
                        "name": "John Smith"
                    },
                    "subscription": {
                        "plan_id": "b5dac9c8",
                        "subscription_id": "10",
                        "product_id": "Demo Product",
                        "date_next_charge": "2015-01-22T19:25:25+04:00"
                    }
                }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'update_subscription',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'id' => '1234567',
                    'name' => 'John Smith'
                ),
                'subscription' => array(
                    'plan_id' => 'b5dac9c8',
                    'subscription_id' => '10',
                    'product_id' => 'Demo Product',
                    'date_next_charge' => '2015-01-22T19:25:25+04:00'
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "update_subscription",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "name": "John Smith"
                },
                "subscription": {
                    "plan_id": "b5dac9c8",
                    "subscription_id": "10",
                    "product_id": "Demo Product",
                    "date_next_charge": "2015-01-22T19:25:25+04:00"
                }
            }
  user-search:
    post:
      description: >-
        <nt>Public User ID</nt> é um parâmetro que identifica exclusivamente o
        usuário e é conhecido por ele, diferentemente de <nt>User ID</nt>
        (<nt>Public User ID</nt> pode ser um e-mail, apelido, etc). A Xsolla
        envia um webhook com o tipo `user_search` quando uma compra é feita fora
        da loja do jogo (por exemplo, através de quiosques de dinheiro).
      operationId: user-search
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    id:
                      $ref: '#/components/schemas/user.id'
                    public_id:
                      $ref: '#/components/schemas/user.public_id'
                  required:
                    - id
                  type: object
              required:
                - notification_type
                - user
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Pesquisa do usuário
      tags:
        - user-validation
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                "notification_type": "user_search",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "public_id": "email@example.com"
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'user_search',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'public_id' => 'email@example.com'
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "user_search",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "public_id": "email@example.com"
                }
            }
  user-validation:
    post:
      description: >
        A Xsolla envia um webhook com o tipo `user_validation` para o URL do
        webhook 

        para verificar se um usuário está cadastrado no jogo. A solicitação é
        enviada 

        várias vezes como parte do processo de pagamento:


        * Quando um usuário escolhe uma forma de pagamento na interface de
        pagamento.

        * Quando um usuário insere dados no formulário de pagamento. Por
        exemplo, dados 
          de cartão bancário ou o CEP ao pagar via PayPal.
        * Quando um usuário clica em **Pagar agora** para prosseguir com o
        pagamento.

        * Quando o processo de pagamento for concluído e o status da transação
        for 
          alterado para `done`.

        A solicitação é enviada ao pagar com qualquer método de pagamento.


        Ao salvar o URL do webhook na Conta de Distribuidor, você pode conceder 

        permissões para receber informações detalhadas nos webhooks. Para fazer
        isso, 

        defina as opções necessárias como ativas na Conta de Distribuidor na
        seção <a 

        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/store">Project 

        settings &gt; Webhooks &gt; Advanced settings</a>.


        <div class="note">

        <p><strong>Observação</strong></p>

        <p>Se você se registrou na Conta de Distribuidor no dia 22 de janeiro de
        2025 ou antes, você encontrará as opções na seção <a
        href="https://publisher.xsolla.com/0/projects/0/edit/webhooks/payments">Project
        settings &gt; Webhooks &gt; Testing &gt; Payments &gt; Advanced
        settings</a>.</p>

        </div>


        <table>

        <thead>
            <tr>
                <th>Opção</th>
                <th>Descrição</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>Enviar apenas os parâmetros de usuário necessários sem dados confidenciais</td>
                <td><p>Somente as seguintes informações sobre o usuário são passadas no webhook:</p><ul><li>ID</li><li>país</li></ul></td>
            </tr>
            <tr>
                <td>Enviar parâmetros personalizados</td>
                <td>As informações sobre os <a href="/pt/api/pay-station/operation/create-token/">parâmetros de token personalizados</a> são passadas no webhook.</td>
            </tr>
        </tbody>

        </table>
      operationId: user-validation
      requestBody:
        content:
          application/json:
            schema:
              properties:
                notification_type:
                  $ref: '#/components/schemas/notification_type'
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    email:
                      $ref: '#/components/schemas/user.email'
                    id:
                      $ref: '#/components/schemas/user.id'
                    ip:
                      $ref: '#/components/schemas/user.ip'
                    name:
                      $ref: '#/components/schemas/user.name'
                    phone:
                      $ref: '#/components/schemas/user.phone'
                  required:
                    - id
                  type: object
              required:
                - notification_type
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      summary: Validação do usuário
      tags:
        - user-validation
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: >-
            curl -v 'https://your.hostname/your/uri' \

            -X POST \

            -H 'accept: application/json' \

            -H 'content-type: application/json' \

            -H 'authorization: Signature
            13342703ccaca5064ad33ba451d800c5e823db8f' \

            -d '{
                "notification_type":"user_validation",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                }
            }'
        - label: PHP
          lang: PHP
          source: |-
            <?php

            $request = array(
                'notification_type' => 'user_validation',
                'settings' => array(
                  'project_id' => 18404,
                  'merchant_id' => 2340
                ),
                'user' => array(
                    'ip' => '127.0.0.1',
                    'phone' => '18777976552',
                    'email'=> 'email@example.com',
                    'id'=> '1234567',
                    'country' => 'US'
                )
            );
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240
            authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f

            {
                "notification_type": "user_validation",
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "ip": "127.0.0.1",
                    "phone": "18777976552",
                    "email": "email@example.com",
                    "id": "1234567",
                    "name": "John Smith",
                    "country": "US"
                }
            }
  user-validation-in-webshop:
    post:
      description: >-
        A Xsolla envia um webhook de um site Web Shop para verificar se um
        usuário existe no jogo. O webhook é enviado do seguinte endereço IP:
        `34.102.38.178`.

        <div class="note"><strong>Observe</strong><br><br>

        O webhook é usado apenas para validação do usuário na Web Shop. Consulte
        essas <a target="_blank"
        href="https://developers.xsolla.com/pt/solutions/web-shop/authentication-and-analytics/set-up-authentication/">instruções</a>
        para obter mais informações sobre como configurar webhooks no Site
        Builder.</div>
      operationId: user-validation-in-webshop
      requestBody:
        content:
          application/json:
            schema:
              properties:
                settings:
                  description: Configurações personalizadas do projeto (objeto).
                  properties:
                    merchant_id:
                      $ref: '#/components/schemas/settings.merchant_id'
                    project_id:
                      $ref: '#/components/schemas/settings.project_id'
                  type: object
                user:
                  description: Dados do usuário (objeto).
                  properties:
                    country:
                      $ref: '#/components/schemas/user.country'
                    id:
                      $ref: '#/components/schemas/user.id'
                  required:
                    - id
                  type: object
              required:
                - user
      responses:
        '200':
          content:
            application/json:
              example:
                attributes:
                  - key: level
                    value: '2'
                  - key: register_country
                    value: AE
                removingKeys:
                  - company
                user:
                  id: '1234567890'
                  name: test-name
                  picture: https://example.com
              schema:
                properties:
                  attributes:
                    description: >-
                      Atributos de usuário utilizados para personalização.
                      Consulte a <a target="_blank"
                      href="https://developers.xsolla.com/pt/doc/login/features/user-attributes/#login_features_user_attributes">documentação</a>
                      para obter informações mais detalhadas.
                    items:
                      properties:
                        key:
                          description: Nome do atributo.
                          type: string
                        value:
                          description: Valor do atributo.
                      required:
                        - key
                        - value
                    type: array
                  removingKeys:
                    description: >-
                      Lista de atributos que você deseja excluir. Se você
                      especificar o mesmo atributo no parâmetro `attributes`,
                      ele não será excluído.
                    items:
                      type: string
                    type: array
                  user:
                    description: Dados do usuário (objeto).
                    properties:
                      id:
                        description: ID de usuário.
                        type: string
                      name:
                        description: Nome de usuário.
                        type: string
                      picture:
                        description: Link ao avatar do usuário.
                        type: string
                    required:
                      - id
                    type: object
                required:
                  - user
                type: object
          description: Retorna informações sobre o usuário.
        '404':
          description: Usuário não encontrado.
      summary: Validação de usuário na Web Shop
      tags:
        - user-validation
      x-codeSamples:
        - label: CURL
          lang: cURL
          source: |-
            curl -v 'https://your.hostname/your/uri' \
            -X POST \
            -H 'accept: application/json' \
            -H 'content-type: application/json' \
            -d '{
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "country": "US"
                }
            }'
        - label: HTTP
          lang: HTTP
          source: |-
            POST /your/uri HTTP/1.1
            host: your.hostname
            accept: application/json
            content-type: application/json
            content-length: 240

            {
                "settings": {
                  "project_id": 18404,
                  "merchant_id": 2340
                },
                "user": {
                    "id": "1234567",
                    "country": "US"
                }
            }
components:
  schemas:
    notification_type:
      description: Tipo de notificação.
      type: string
    payment_account.country:
      description: >-
        País da conta de pagamento. Por exemplo, o país do banco emissor do
        cartão ou o país especificado ao criar uma conta PayPal. Código de país
        de duas letras maiúsculas [ISO 3166-1
        alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      type: string
    payment_account.id:
      description: ID da conta de pagamento.
      type: string
    payment_account.name:
      description: >-
        O nome da conta de pagamento no sistema de pagamento (exemplo: número do
        cartão de pagamento, e-mail).
      type: string
    payment_account.payment_method:
      description: ID de método de pagamento.
      type: integer
    payment_account.type:
      description: 'Tipo de conta de pagamento (exemplo: cartão, PayPal).'
      type: string
    settings.merchant_id:
      description: ID de comerciante.
      type: integer
    settings.project_id:
      description: >-
        ID do projeto. Você pode encontrar esse parâmetro em sua [Conta de
        Distribuidor](https://publisher.xsolla.com/) ao lado do nome do projeto.
      type: integer
    user.country:
      description: >-
        País do usuário. Código de país de duas letras maiúsculas, de acordo com
        o [ISO 3166-1
        alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      type: string
    user.email:
      description: E-mail do usuário.
      type: string
    user.id:
      description: ID de usuário.
      type: string
    user.ip:
      description: IP do usuário.
      type: string
    user.name:
      description: Nome de usuário.
      type: string
    user.zip:
      description: CEP ou código postal do usuário.
      type: string
    subscription.date_create:
      description: >-
        Data de criação da assinatura. Data e hora de acordo com o [ISO
        8601](https://en.wikipedia.org/wiki/ISO_8601).
      type: string
    subscription.date_end:
      description: >-
        Data de término da assinatura. Data e hora de acordo com o [ISO
        8601](https://en.wikipedia.org/wiki/ISO_8601).
      type: string
    subscription.plan_id:
      description: ID do plano (externo se o plano foi criado via API).
      type: string
    subscription.product_id:
      description: ID do produto (se enviado no token de acesso).
      type: string
    subscription.subscription_id:
      description: ID de assinatura no banco de dados Xsolla.
      type: integer
    subscription.tags:
      description: Rótulos do plano.
      items:
        type: string
      type: array
    subscription.date_next_charge:
      description: >-
        Data da próxima cobrança. Data e hora de acordo com o [ISO
        8601](https://en.wikipedia.org/wiki/ISO_8601).
      type: string
    subscription.is_gift:
      description: >-
        Se a assinatura foi um presente. O parâmetro só é passado se o valor for
        `true`.
      type: boolean
    dispute-date:
      description: >-
        Data da abertura da disputa de acordo com o padrão [RFC
        3339](https://datatracker.ietf.org/doc/html/rfc3339).
      type: string
    dispute-reason:
      description: >-
        Motivo para a abertura da disputa. Consulte
        [documentation](/pt/solutions/payments/anti-fraud/chargeback/#payments_chargeback_reasons)
        para obter uma descrição dos grupos de motivos.
      enum:
        - non_receipt
        - not_as_described
        - duplicate_processing
        - paid_by_other_means
        - incorrect_amount
        - credit_not_processed
        - general
        - fraud
        - cancelled_recurring
        - cancelled_merchandise
        - late_presentment
        - no_authorization
        - problem_with_remittance
        - other
      type: string
    dispute-status:
      description: Status da disputa.
      enum:
        - new
        - accepted
        - no_actions_required
        - won
        - lost
      type: string
      x-enumDescriptions:
        accepted: <b>Aceita</b>
        lost: <b>Perdida</b>
        new: <b>Nova</b>
        no_actions_required: <b>Em progresso</b>
        won: <b>Ganha</b>
    dispute-type:
      description: Tipo de disputa.
      enum:
        - 1st_time_chargeback
        - 2nd_time_chargeback
        - arbitration
        - retrieval
        - representment
        - chargeback_reversal
        - representment_reversal
        - reimbursement
        - dispute
        - chargeback
        - claim
        - reimbursement_reversal
        - inquiry
        - other
      type: string
      x-enumDescriptions:
        1st_time_chargeback: 1º chargeback
        2nd_time_chargeback: 2º chargeback (pré-arbitragem).
        arbitration: >-
          Resolvendo uma disputa entre o banco emissor e o comerciante quando o
          1º chargeback e o 2º chargeback foram rejeitados.
        chargeback: 1º chargeback
        chargeback_reversal: O chargeback foi revogado.
        claim: Um disputa entre um cliente e um comerciante no PayPal.
        dispute: Um titular de cartão solicitou dados de pagamento ao banco.
        inquiry: Um titular de cartão solicitou dados de pagamento ao banco.
        other: >-
          Utilizado para tipos de chargeback não cobertos por qualquer outro
          tipo.
        reimbursement: O reembolso foi feito.
        reimbursement_reversal: O chargeback foi revogado.
        representment: >-
          A equipe de gerenciamento de chargebacks enviou evidências ao sistema
          de pagamento.
        representment_reversal: O chargeback foi revogado.
        retrieval: Um titular de cartão solicitou dados de pagamento ao banco.
    date-create:
      description: Data de pagamento.
      type: string
    external-id:
      description: >-
        ID de transação externo. Consulte o
        [FAQs](/pt/doc/pay-station/references/faq/#faq_payments_q_new_transaction_external_id)
        para saber mais.
      type: string
    transaction-id:
      description: ID de transação.
      type: integer
    dispute-payment-method:
      description: Método de pagamento.
      enum:
        - credit_debit_card
        - paypal
      type: string
      x-enumDescriptions:
        credit_debit_card: Cartão de crédito ou débito
        paypal: PayPal
    transaction-total-amount:
      description: Quantia de pagamento.
      format: float
      type: number
    currency:
      description: >-
        Moeda. Código da moeda de três letras de acordo com o [ISO
        4217](https://en.wikipedia.org/wiki/ISO_4217).
      type: string
    amount-float:
      description: Preço em moeda real.
      format: float
      type: number
    items.promotions:
      description: >-
        Promoções aplicadas para itens específicos no pedido.

        A matriz é retornada nos seguintes casos:
          - Uma promoção de desconto é configurada para um item específico.
          - Um código promocional com a configuração **Desconto em itens selecionados** é aplicado.

        Se nenhuma promoção no nível de itens for aplicada, será retornada uma
        matriz vazia.
      items:
        properties:
          amount_with_discount:
            description: Custo total dos itens com desconto.
            type: string
          amount_without_discount:
            description: Custo total dos itens sem desconto.
            type: string
          sequence:
            description: Ordem de aplicação de promoções.
            type: integer
        type: object
      type: array
    items.sku:
      description: >-
        ID do item único. Para itens com o tipo `game_key`, é usado um valor no
        formato `sku_drm`.
      type: string
    items.type:
      description: >-
        Tipo de item.

        Para itens do tipo `bundle`, incluindo pacotes de moeda virtual, a
        matriz `items` exibirá:
          - parâmetros do conjunto ou pacote de moeda virtual
          - itens incluídos no conjunto ou moedas incluídas no pacote.
          
        O tipo `value_point` é usado em operações de [pontos de
        fidelidade](/pt/solutions/loyalty-as-service/) – quando pontos são
        gastos ou concedidos.
      enum:
        - virtual_good
        - virtual_currency
        - game_key
        - bundle
        - value_point
      type: string
    currency-type:
      description: >-
        Tipo de moeda de pagamento. Para pedidos gratuitos, o valor `unknown` é
        especificado.
      enum:
        - real
        - virtual
        - unknown
        - loyalty_point
      type: string
      x-enumDescriptions:
        loyalty_point: pontos de fidelidade
        real: moeda real
        unknown: pedido gratuito
        virtual: moeda virtual
    order.promotions:
      description: >-
        Promoções aplicadas para o pedido inteiro.

        A matriz é retornada nos seguintes casos:
          - Uma promoção afeta o valor total da compra, como um código promocional com a configuração **Desconto na compra**.
          - Nenhum desconto é aplicado à compra, mas itens bônus são adicionados ao pedido. Nesse caso, os valores do custo com desconto ([amount_with_discount](/pt/webhooks/#operation/order-cancellation!path=order/promotions/amount_with_discount&t=request)) e sem desconto ([amount_without_discount](/pt/webhooks/#operation/order-cancellation!path=order/promotions/amount_without_discount&t=request)) são retornados e idênticos, já que nenhum desconto é aplicado.

        Se nenhuma promoção de nível de pedido for aplicada, é retornada uma
        matriz vazia.
      items:
        properties:
          amount_with_discount:
            description: Custo total dos itens com desconto.
            type: string
          amount_without_discount:
            description: Custo total dos itens sem desconto.
            type: string
          sequence:
            description: Ordem de aplicação de promoções.
            type: integer
        type: object
      type: array
    user.phone:
      description: Telefone do usuário.
      type: string
    order:
      description: >-
        Objeto que contém informações sobre um pedido. Para receber essas
        informações, defina a opção **Adicionar objeto do pedido ao webhook**
        como **On** na [Conta de Distribuidor](https://publisher.xsolla.com/) na
        seção **Project settings &gt; Webhooks &gt; Advanced settings**.
      type: object
    locale:
      description: >-
        Idioma do usuário. [Código de
        idioma](https://developers.xsolla.com/pt/doc/pay-station/features/localization/)
        de duas letras minúsculas.
      type: string
    quantity:
      deprecated: true
      description: >-
        Quantidade de itens que um único usuário pode comprar. Para definir uma
        quantidade ilimitada, passe `null`. Para tornar o item indisponível para
        compra, mas mantê-lo visível no catálogo, passe o valor "0".


        Se você usar esse parâmetro, a informação do limite de compra não é
        exibida no catálogo. Para exibir informações sobre o limite de compra no
        catálogo (por exemplo, "7/10"), passe o par `available` e `total` em vez
        de `quantity`.
      type: integer
    available:
      description: >-
        Quantidade restante de itens que o usuário pode comprar.


        Para exibir informações sobre o limite de compra no catálogo (ex.:
        "7/10"), passe o par `available` e `total`.
      type: integer
    total:
      description: >-
        Quantidade máxima de itens que um único usuário pode comprar.


        Para exibir informações sobre o limite de compra no catálogo (ex.:
        "7/10"), passe o par `available` e `total`.
      exclusiveMinimum: 0
      type: integer
    bundle_content:
      description: >-
        Matriz de objetos com conteúdo de pacote para exibição no catálogo. Ele
        pode ser usado apenas para o tipo de pacote
        [partner_side_content](https://developers.xsolla.com/pt/api/shop-builder/operation/admin-create-bundle/).
      items:
        properties:
          description:
            description: >-
              Descrição do item para exibir no catálogo como parte do pacote. Se
              não for fornecido, será passado o valor `null`.
            maxLength: 255
            type: string
          image_url:
            description: >-
              URL da imagem do item para exibição no catálogo como parte do
              pacote. Somente o protocolo HTTPS é suportado. Se não for
              fornecido, será passado o valor `null`.
            format: uri
            maxLength: 255
            type: string
          name:
            description: >-
              Nome do item para exibir no catálogo como parte do pacote. Se não
              for fornecido, será passada uma cadeia de caracteres vazia.
            maxLength: 255
            type: string
          quantity:
            default: 1
            description: Quantidade do item no pacote.
            minimum: 1
            type: integer
        type: object
      type: array
    date_from:
      description: >-
        Data em que o item ficará disponível para venda. Formatado de acordo com
        o padrão [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339).
      type: string
    date_until:
      description: >-
        Data em que o item ficará indisponível para venda. Formatado de acordo
        com o padrão [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339).
      type: string
    description:
      description: >-
        Descrição do item para exibição no catálogo. Ele substitui a descrição
        armazenada em um item.
      maxLength: 255
      type: string
    image_url:
      description: >-
        URL da imagem para exibição no catálogo. Ele substitui o URL da imagem
        armazenado em um item. Somente o protocolo HTTPS é suportado. Se o URL
        não estiver em conformidade com os requisitos, ele será ignorado.
      format: uri
      maxLength: 255
      type: string
    json_attributes:
      description: >-
        Um objeto JSON que contém atributos e valores de item. Ele substitui
        [custom_attributes](https://developers.xsolla.com/pt/webhooks/operation/successful-order-payment/#!path=items/0/custom_attributes&t=request)
        armazenado em um item. Se o JSON não estiver em conformidade com os
        requisitos ou for maior que o comprimento máximo, ele será ignorado.
      format: json
      maxLength: 500
      type: object
    name:
      description: >-
        Nome do item para exibição no catálogo. Ele substitui o nome armazenado
        em um item.
      maxLength: 255
      type: string
    sku:
      description: >-
        O ID do item único especificado em sua Publisher Account. Você deve
        passar o `sku` ou `item_id`.
      type: string
    item_id:
      description: >-
        ID de item único no lado de Xsolla. Você deve passar o `sku` ou o
        `item_id`.
      type: integer
    user.public_id:
      description: ID de usuário público.
      type: string
  responses:
    '204':
      description: Retorne para indicar o processamento bem-sucedido.
    '400':
      content:
        application/json:
          schema:
            properties:
              error:
                properties:
                  code:
                    type: string
                  message:
                    type: string
                type: object
            type: object
      description: >-
        Retorne em caso de erro nas informações fornecidas (por exemplo, um
        parâmetro obrigatório ausente, falha na autorização, etc.).
      x-examples:
        application/json:
          INCORRECT_AMOUNT:
            summary: Incorrect amount
            value:
              error:
                code: INCORRECT_AMOUNT
                message: Incorrect amount
          INCORRECT_INVOICE:
            summary: Incorrect invoice
            value:
              error:
                code: INCORRECT_INVOICE
                message: Incorrect invoice
          INVALID_PARAMETER:
            summary: Invalid parameter
            value:
              error:
                code: INVALID_PARAMETER
                message: Invalid parameter
          INVALID_SIGNATURE:
            summary: Invalid signature
            value:
              error:
                code: INVALID_SIGNATURE
                message: Invalid signature
          INVALID_USER:
            summary: Invalid user
            value:
              error:
                code: INVALID_USER
                message: Invalid user
    '500':
      description: Retorne para indicar erros temporários com seus servidores.
    400-payment:
      content:
        application/json:
          schema:
            properties:
              error:
                properties:
                  code:
                    type: string
                  message:
                    type: string
                type: object
            type: object
      description: >-
        Retorne em caso de erro nas informações fornecidas (por exemplo, um
        parâmetro obrigatório ausente, falha na autorização, etc.). Nesse caso,
        o dinheiro do usuário é debitado, mas a compra falha. Para fazer um
        reembolso, entre em contato com o suporte ao cliente Xsolla via
        support@xsolla.com.
      x-examples:
        application/json:
          INCORRECT_AMOUNT:
            summary: Incorrect amount
            value:
              error:
                code: INCORRECT_AMOUNT
                message: Incorrect amount
          INCORRECT_INVOICE:
            summary: Incorrect invoice
            value:
              error:
                code: INCORRECT_INVOICE
                message: Incorrect invoice
          INVALID_PARAMETER:
            summary: Invalid parameter
            value:
              error:
                code: INVALID_PARAMETER
                message: Invalid parameter
          INVALID_SIGNATURE:
            summary: Invalid signature
            value:
              error:
                code: INVALID_SIGNATURE
                message: Invalid signature
          INVALID_USER:
            summary: Invalid user
            value:
              error:
                code: INVALID_USER
                message: Invalid user
x-tagGroups:
  - name: Validação do usuário
    tags:
      - user-validation
  - name: Pagamentos
    tags:
      - payments
  - name: Serviços de jogos
    tags:
      - combined-webhooks
      - separate-webhooks
      - personalization
  - name: Antifraude
    tags:
      - anti-fraud
  - name: Assinaturas
    tags:
      - subscriptions
