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.

POST https://{seu_dominio}/{uri_opcional}

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.

JSON - Aplicativo
{
    "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.

JSON - Ciclo
{
    "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.

JSON - 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:

JSON - Resposta Sucesso (HTTP 200 ou 201)
{
    "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:

JSON - Resposta Erro (HTTP 400 a 599)
{
    "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