Configurar webhooks

Webhooks são notificações sobre eventos que ocorrem no sistema. Quando um evento específico ocorre, a Xsolla envia uma solicitação HTTP, na qual os dados do evento são transmitidos ao seu aplicativo. Isso normalmente é uma solicitação POST no formato JSON.

Exemplos de evento:

  • interação de usuário com um catálogo de itens
  • pagamento ou cancelamento de um pedido

Lista de webhooks

Para vender chaves de jogo, a validação do usuário e a creditação dos itens não são necessários. Você pode conectar webhooks se quiser receber informações sobre eventos, tais como de pagamento ou de cancelamento de pedido.

Se você conectar webhooks, é importante processar todos os webhooks necessários por vir.

Observação

No lado da Xsolla, há duas opções para receber webhooks no caso de compra de itens e reembolsos: informações com dados de pagamento e transações e informações sobre itens comprados podem vir separadamente, ou serem combinadas em um webhook. Por padrão, todos os novos projetos recebem o webhook combinado.

Para trocar à nova opção de recebimento de webhooks combinados, contate seus Gerentes de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.

Mais informações sobre opções de recebimento de webhook

Recebendo informações em webhooks combinados:

Se você se cadastrou na Conta de Distribuidor após 22 de janeiro de 2025, você recebe todas as informações nos webhooks Pagamento bem-sucedido do pedido (order_paid) e Cancelamento do pedido (order_canceled). Neste caso, você não precisa processar os webhooks Pagamento (payment) e Reembolso (refund).

Recebimento de informações em webhooks separados:

Se você se cadastrou na Conta de Distribuidor no dia 22 de janeiro de 2025 ou antes, você recebe os seguintes webhooks:

Você precisa processar todos os webhooks recebidos.

Para a operação completa da loja no jogo e gerenciamento de pagamento, é necessário implementar o processamento dos webhooks principais:

Nome do webhookDescrição
User validation > User validation (user_validation)É enviado em diferentes estágios do processo de pagamento para confirmar se o usuário está registrado no jogo.
Serviços de jogo > Webhooks combinados > Pagamento bem-sucedido do pedido (order_paid)Contém dados de pagamento, dados de transação e informações sobre os itens comprados. Use os dados do webhook para adicionar itens ao usuário.
Game services > Combined webhooks > Order cancellation (order_canceled)Contém dados do pagamento cancelado, dados de transação e informações sobre os itens comprados. Use os dados do webhook para remover os itens comprados.

O esquema abaixo demonstra o processo de comprar e retornar itens usando webhooks combinados.

Observação
Reembolsos e estornos podem ser iniciados não só pelo usuário, mas também pela Xsolla ou pelo provedor de pagamentos.

Se a personalização do catálogo de itens for implementada no lado do aplicativo, configure o processamento da personalização do catálogo no lado do parceiro.

Observação
Para receber pagamentos reais, você só precisa assinar o Contrato de Licenciamento e implementar o processamento dos webhooks:
Observação
Você pode usar a integração do PlayFab para receber informações de pagamento e cancelamento de pedidos em vez de usar webhooks.

Configuração de webhooks na Conta de Distribuidor

Para ativar o recebimento de webhooks:

  1. No projeto na Conta de Distribuidor, acesse a seção Settings > Webhooks.
  2. No campo Webhook server, especifique o URL do seu servidor, onde você deseja receber webhooks no formato https://example.com. Você também pode especificar o URL que encontrar em uma ferramenta para testar webhooks.
Aviso
O protocolo HTTPS é usado para transferir dados; o protocolo HTTP não é suportado.
  1. Uma chave secreta para assinar webhooks de projeto é gerada por padrão. Se quiser gerar uma nova chave secreta, clique no ícone de atualização.
  2. Clique em Ativar webhooks.

Ao salvar o URL no campo Webhook server, você pode ver a seção Advanced settings onde você pode conceder permissões para receber informações detalhadas nos webhooks. Para fazer isso, defina as opções necessários como ativadas. Na linha de cada permissão, você pode ver a lista de webhooks afetados pelas configurações.

Observação
Se você se cadastrou na Conta de Distribuidor no dia 22 de janeiro de 2025 ou antes, você encontrará as opções na seção Settings > Webhooks > Testing > Payments > Advanced settings.
Observação
Para testar webhooks, você pode selecionar qualquer site dedicado, tal como webhook.site, ou uma plataforma, tal como ngrok.
Aviso
Não é possível enviar webhooks a URLs diferentes. O que você pode fazer na Conta de Distribuidor é especificar um URL de teste primeiro e então substituí-lo pelo real.
Para desativar o recebimento de webhooks:
  1. No projeto dentro da Conta de Distribuidor, vá para a seção Settings > Webhooks.
  2. Clique em Disable webhooks.

Teste de webhooks na Conta de Distribuidor

Uma seção para testar webhooks é exibida na Conta de Distribuidor abaixo das configurações avançadas depois que você ativar webhooks no seu projeto.

Você pode testar os seguintes webhooks:

Nome da aba para testes de webhooksNome e tipo de webhook
Payments and StoreUser validation > User validation (user_validation)
Serviços de jogo > Webhooks combinados > Pagamento bem-sucedido do pedido (order_paid)
Game services > Combined webhooks > Order cancellation (order_canceled)
SubscriptionsUser validation > User validation (user_validation)
Payments > Payment (payment)
DisputeAnti-fraud > Dispute (dispute)
Observação
Encontre abaixo instruções para testar o cenário com webhooks combinados.

Para testar webhooks:

  1. Na seção de testes de webhooks, acesse a aba Payments and Store.
  2. Na lista suspensa, selecione Game keys. Se os pacotes de chave de jogo não estiverem configurados no seu projeto, você verá um botão para configurá-los.
  3. Preencha os campos necessários:
    • Xsolla order ID — ID de pedido no lado da Xsolla. Ao testar, você pode usar qualquer valor numérico.
    • Xsolla invoice ID — ID de transação no lado da Xsolla. Ao testar, você pode usar qualquer valor numérico.
    • Items — itens dos quais você deseja receber informações no webhook. Selecione o SKU dos itens na lista suspensa e indique a quantidade. Você pode escolher múltiplos itens do mesmo tipo pressionando + e adicionando-o em uma nova fileira.
    • User ID — ao testar, você pode usar qualquer combinação de letras de dígitos.
    • Invoice ID — ID de transação no lado do seu jogo. Ao testar, você pode usar qualquer combinação de letras de dígitos. Não é um parâmetro necessário para um pagamento bem-sucedido, mas você pode passá-lo para vincular o ID de transação do seu lado ao ID de transação no lado da Xsolla.
    • Amount — quantia de pagamento. Ao testar, você pode usar qualquer valor numérico.
    • Currency — selecione uma moeda da lista suspensa.
  4. Clique em Testar webhook.

Os webhooks Successful payment for order, Order cancellation e User validation com os dados especificados são enviados ao URL fornecido. Os resultados dos testes ede cada tipo de webhook são exibidos abaixo do botão Test webhook. Para cada webhook, você precisa configurar o processamento de ambos cenários: um bem-sucedido e um com um erro.

Observação
Se aparecer uma mensagem de erro no bloco de teste informando que o teste não foi aprovado, verifique as configurações de resposta do webhook no webhook listener. Informações sobre esses erros estão disponíveis nos resultados do teste.

Ouvinte de webhooks

O ouvinte de webhooks é um código de programa que permite receber webhooks de entrada em um endereço URL especificado, ao gerar uma assinatura e ao enviar uma resposta para o servidor webhook da Xsolla.

Geração de assinatura

Ao receber um webhook, você deve garantir a segurança da transmissão de dados. Para fazer isso, você deve gerar uma assinatura a partir dos dados do webhook e verificar se ela corresponde à assinatura enviada no cabeçalho da solicitação HTTP.

Para gerar uma assinatura:

  1. Concatene o JSON do corpo da solicitação e da chave secreta do projeto.
  2. Aplique a função de hash criptográfico SHA-1 à cadeia de caracteres obtida na primeira etapa.

Enviando respostas ao webhook

Para confirmar o recebimento do webhook, seu servidor deve retornar:

  • O código HTTP 200, 201 ou 204 no caso de uma resposta bem-sucedida.
  • O código HTTP 400 com uma descrição do problema se o usuário especificado não for encontrado ou uma assinatura inválida for passada.

Seu manipulador de webhook também pode retornar um código 5xx em caso de problemas temporários em seu servidor.

Se o servidor da Xsolla não receber uma resposta aos webhooks Pagamento bem-sucedido do pedido e Cancelamento de pedido, ou receber uma resposta com um código 5xx, os webhooks são reenviados de acordo com o seguinte cronograma:

  • 2 tentativas com um intervalo de 5 minutos
  • 7 tentativas com um intervalo de 15 minutos
  • 10 tentativas com intervalo de 60 minutos

No máximo 20 tentativas de envio de webhooks são feitas dentro de 12 horas a partir da primeira tentativa.

A lógica de retorno para os webhooks Payment e Refund é descrita na respectiva página de webhook.

Se o servidor da Xsolla não receber uma resposta ao webhook Validação do usuário ou receber uma resposta com um código 400 ou 5xx, o webhook Validação do usuário não é reenviado.

Nesse caso, um erro é exibido ao usuário e os webhooks Pagamento e Pagamento bem-sucedido do pedido não são enviados.

Observação
A lista completa e o mecanismo dos webhooks, juntamente com exemplos detalhados de seu processamento, estão descritos na documentação de webhooks.
Este artigo foi útil?
Obrigado!
Podemos melhorar alguma coisa? Mensagem
Que pena ouvir isso
Explique porque este artigo não foi útil para você. Mensagem
Obrigado pelo seu feedback!
Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
Última atualização: 31 de Dezembro de 2025

Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

Relatar um problema
Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
Forneça um e-mail para que possamos responder
Obrigado pelo seu feedback!
Não conseguimos enviar seu feedback
Tente novamente mais tarde ou contate-nos via doc_feedback@xsolla.com.