Webhook
Receba notificações em tempo real sobre eventos da plataforma
Endpoint de Recebimento
O cadastro da URL de webhook deve ser inserido no portal de desenvolvedor. A plataforma enviará notificações para o endereço configurado sempre que eventos relevantes ocorrerem.
Formato de Envio
Todas as requisições geradas a partir de webhooks são efetuadas com o método POST, com o conteúdo no corpo (body) da requisição no formato JSON. Os headers enviados são:
Content-Type: application/json; charset=UTF-8
Sua aplicação deve estar preparada para receber requisições POST com body JSON neste formato e processá-las adequadamente.
Tempo Máximo de Resposta
A plataforma espera que sua aplicação responda com o código HTTP 2XX (200, 201, etc) em no máximo 10 segundos. Códigos de redirecionamento (3XX) não serão seguidos e serão considerados como falha.
Caso o processamento do webhook demande mais tempo, recomenda-se receber a requisição, armazená-la em uma fila interna e retornar imediatamente o código 200. O processamento efetivo pode ser feito de forma assíncrona.
Política de Retentativas
São realizadas 5 tentativas de envio caso seu sistema esteja fora do ar ou responda com um código HTTP diferente de 200 ou 201.
Acompanhe os logs dos webhooks em nosso painel. Basta acessar o sistema administrativo SellerPay utilizando sua conta de desenvolvedor. Selecionar a loja no topo da página. Agora em menu vá em Log → webhook. Pronto, você pode analisar e até forçar o reenvio de webhooks com falha de comunicação.
Exemplos de Payload por Tipo
O campo tipo identifica a natureza do evento. Abaixo estão os payloads para cada tipo de webhook suportado pela plataforma.
Tipo: Aplicativo
Enviado quando ocorre uma desinstalação de aplicativo por parte do cliente.
{
"tipo": "Aplicativo",
"dados": {
"codigo": "",
"situacao": "delete",
"mensagem": "A aplicação foi desinstalada",
"idApp": 0,
"nomeApp": "",
"data": "2022-08-11 09:53:00"
}
}
Tipo: Ciclo
Enviado quando um novo ciclo de faturamento é criado na plataforma.
{
"tipo": "Ciclo",
"dados": {
"codigo": "",
"situacao": "novo",
"canal": "",
"data": "2022-08-11 09:53:00"
}
}
Tipo: Pedido
Enviado para aviso de pagamento ou cancelamento do título do pedido.
{
"tipo": "Pedido",
"dados": {
"chavePedido": "",
"pedido": "",
"pedidoCanal": "",
"pedidoComplementar": "",
"canal": "",
"chaveNFe": "",
"percComissaoPrevista": 0,
"valorComissaoPrevista": 0,
"regraComissaoPrevista": "",
"idApp": "",
"nomeApp": "",
"situacao": "criado",
"mensagem": "Pedido criado no sistema",
"data": "2022-08-11 09:53:00"
}
}
Parâmetros do Body
Estrutura dos campos enviados no corpo da requisição de webhook.
| Campo | Descrição | Tipo | Tamanho |
|---|---|---|---|
| tipo | Tipo do JSON. Exemplo: aplicativo, ciclo, pedido etc | string | 255 |
| dados | Informações do webhook | object |
Campos do objeto "dados" - Tipo Aplicativo
Campos enviados quando o tipo é "Aplicativo" (desinstalação de aplicativo).
| Campo | Descrição | Tipo |
|---|---|---|
| codigo | Código da loja | string |
| situacao | Situação do evento | string |
| mensagem | Mensagem detalhada do evento | string |
| idApp | Código da sua aplicação | string |
| nomeApp | Nome da sua aplicação | string |
| data | Data do processamento | string |
Resposta de Sucesso
Sua aplicação deve responder com código HTTP 200 ou 201 e o seguinte corpo JSON para confirmar o recebimento do webhook:
{
"retorno": "sucesso",
"obs": ""
}
| Campo | Descrição | Tipo | Tamanho | Obrigatório |
|---|---|---|---|---|
| retorno | Mensagem de retorno. Utilizar o termo "sucesso" | string | 255 | sim |
| obs | Campo de observação (campo texto livre) | string | 255 | não |
Resposta de Erro
Em caso de erro no processamento, sua aplicação deve responder com código HTTP entre 400 e 599 e o seguinte corpo JSON:
{
"retorno": "sua mensagem de erro"
}
| Campo | Descrição | Tipo | Tamanho | Obrigatório |
|---|---|---|---|---|
| retorno | Mensagem de retorno. Exemplo: Json não informado, Loja não ativa | string | 255 | sim |