Webhook do Pix.

Por meio do webhook, notificamos nossos clientes sobre a validação de chaves, pagamentos, recebimentos, restituições, devoluções e entrega de comprovantes.

Eventos notificados

Abaixo listamos os eventos em que notificamos:

EventoDescrição
PagamentoEste evento de notificação ocorrerá quando houver finalização do fluxo de pagamento, com a informação do status final da transação
RecebimentoEste evento de notificação ocorrerá quando houver um recebimento ou restituição for finalizado com sucesso na conta do cliente API
DevoluçãoEste evento de notificação ocorrerá quando houver finalização do fluxo de devolução, com a informação do status final da transação
Validação de ChavesEste evento de notificação ocorrerá em resposta à API de validação de chaves, informando se a chave é válida
Solicitação de ComprovanteEste evento de notificação ocorrerá em resposta à solicitação de comprovantes de pagamento ou devolução realizada na funcionalidade Comprovantes de Pagamento e Devolução.

⚠️

Importante:

  1. Realizamos algumas tentativas de reenvio do webhook, e após quantidade de tentativas, os reenvios cessam;
  2. Se a URL cadastrada demorar mais de 1000ms para responder a notificação, o envio do webhook é cancelado;
  3. Podem ocorrer falhas, por isso, é importante que seja implementado um mecanismo de fallback para a realização de consulta das transações via API;
  4. Recomendamos que os eventos sejam tratados com idempotência, pois, eventualmente, a mesma mensagem poderá ser enviada mais de uma vez, e a falta desse tipo de tratamento pode trazer consequências sérias, tais como pagamentos em duplicidade, impressão de recebimento em dobro e outras.

Cadastro de rota

É necessário que o cliente cadastre uma rota acessível na internet para receber as notificações do webhook.

Solicitamos os campos:

CampoDescriçãoFormatoObrigatório
urlURL do cliente que receberá o evento quando disparado de acordo com a regra de negócio do eventostringSim
eventosTipo de evento que deseja receber, com as opções Pagamento, Recebimento, DevolucaoEfetuada e ValidacaoChavesarray of stringsSim
autorizacaoMecanismo de segurança que o Banco BS2 utilizará para enviar o webhook. Enumeração: none, basic ou bearerobjectSim

Como resposta, enviamos status de sucesso (família HTTP 200).

Webhook - Criar/Atualizar


📝

Nota:

Podem ser personalizadas URLs distintas para cada evento de notificação. Uma notificação será enviada cada vez que ocorrer um evento, na conta configurada.

A conta definida na configuração, é obtida através do contexto em que o access_token utilizado na requisição foi gerado.

Registro do certificado DNS

Após cadastrar o webhook é preciso registrar o certificado do DNS da rota parametrizada.

A funcionalidade Webhook - Certificado - Inclusão/Atualização atualiza o certificado para todas as rotas configuradas. Já o método Webhook - Certificado - Inclusão/Atualização por ID permite selecionar uma rota específica e realizar a atualização do certificado.

Solicitamos os campos:

CampoDescriçãoFormatoObrigatório
configuracaoIdIdentificador do webhook configuradostringSim
certificadoEnviar o certificado X.509 codificado em base64 da rota do seu webhook (Arquivo *.cer)stringSim

Como resposta, enviamos status de sucesso HTTP 204.

Mais detalhes de como configurar o DNS no link Como exportar DNS.

Obtenção das configurações

Retornamos as configurações de todos os webhooks cadastrados em todas as contas do cliente. Resposta:

TipoDescriçãoFormatoNullable
idIdentificador único do webhookstringSim
eventoTipo de evento cadastrado na rota, com as opções Pagamento, Recebimento, DevolucaoEfetuada e ValidacaoChavesstringNão
contaNumeroNúmero da conta vinculada ao webhookintegerNão
somenteComTxIdobsoleto, não utilizar--
urlURL cadastrada para receber o eventostringSim
autorizacaoMecanismo de segurança que o Banco BS2 utilizará para enviar o webhook. Enumeração: none, basic ou bearerobjectSim

Webhook - Obter

Exclusão de configuração de notificação

Essa funcionalidade permite excluir uma notificação configurada.

Solicitamos os campos:

TipoDescriçãoFormatoObrigatório
configuracaoIdIdentificador do webhook configuradostringSim

Como resposta, enviamos status de sucesso HTTP 204.

Obtenha o Id pelo método Webhook - Obter

Exemplos de retorno do Webhook

A seguir, detalhamos os campos dos contratos que serão enviados nas notificações.

Recebimento / Restituição

Nas notificações de recebimento e restituição (evento Recebimento), enviamos as informações:

CampoDescriçãoFormato
EndToEndIdIdentificador da transação Pixstring
txidIdentificador da transação com a finalidade de conciliaçãostring
ValorValor da transaçãodouble
HorarioData e hora em que a transação foi efetivadadate-time
PagadorObjeto contendo dados do pagadorobject
Pagador.CpfDocumento CPF/CNPJ do pagadorstring
Pagador.NomeNome do pagadorstring
InfoPagadorMensagem informada pelo pagador para o recebedorstring
DevolucoesDados preenchidos quando se trata de restituição, ou seja, devolução a crédito na conta do clienteobject
Devolucoes.IdIdentificador da restituição gerado pelo Banco BS2string
Devolucoes.RtrIdIdentificador da transação de restituiçãostring
Devolucoes.ValorValor da restituiçãodouble
Devolucoes.HorarioHorário da restituiçãodate-time
Devolucoes.StatusStatus da restituição, que será efetivadostring
StatusStatus da transação de recebimento, que será efetivadostring
MotivoMotivo é informado pela contraparte em caso de restituiçãostring

Pagamento

Nas notificações de pagamento, enviamos os campos:

CampoDescriçãoFormato
StatusStatus do pagamento, conforme tabela Status Pagamentostring
PagamentoIdIdentificador único do pagamentostring
ErroObjeto com descrição do erro, se ocorrerobjeto
Erro.CodigoCódigo do errostring
Erro.DescricaoDescrição do errostring
EndToEndIdIdentificador da transaçãostring
EndToEndIdOrigemIdentificador do pagamento que originou a devoluçãostring
ValorValor do pagamentodecimal
DataData do pagamentodate-time
CampoLivreMensagem destinada ao recebedorstring
PagadorObjeto contendo os dados do pagadorobject
Pagador.NomeNome do pagadorstring
Pagador.NomeFantasiaNome fantasia do pagadorstring
Pagador.DocumentoCPF/CNPJ do pagadorstring
Pagador.IspbISPB do pagadorstring
Pagador.AgenciaAgência bancária do pagadorstring
Pagador.ContaConta do pagadorstring
Pagador.ContaTipoTipo de conta do pagadorstring
Pagador.ChaveDictChave Pixstring
RecebedorObjeto contendo os dados do recebedorobject
Recebedor.NomeNome do recebedorstring
Recebedor.NomeFantasiaNome fantasia do recebedorstring
Recebedor.DocumentoCPF/CNPJ do recebedorstring
Recebedor.IspbISPB do recebedorstring
Recebedor.AgenciaAgência bancária do recebedorstring
Recebedor.ContaConta do recebedorstring
Recebedor.ContaTipoTipo de conta do recebedorstring
Recebedor.ChaveDictChave Pixstring
SolicitacaoIdIdentificador da solicitação de pagamento gerado pelo Banco BS2guid
ReenvioObjeto contendo informações do envio da notificaçãoobject
Reenvio.UltimoEnvioIdidentificador do último envio da notificaçãostring
Reenvio.TentativaQuantidade de tentativas de envio da notificaçãostring

Devolução

Nas notificações de recebimento, enviamos os campos:

CampoDescriçãoFormato
dataHoraCriacaoData e hora da criação da devoluçãodate-time
IdDevolucaoIdentificador da devoluçãostring
ValorDevolucaoValor da devoluçãodouble
CodigoMotivoCódigo do motivo de devolução, conforme tabela [Motivo devolução]string
MotivoDevolucaoDescrição do motivo de devolução, conforme tabela [Motivo devolução]string
E2EoriginalIdentificador da mensagem que originou a devoluçãostring
bancoRecebedorBanco recebedor da devoluçãostring
bancoPagadorBanco pagador da devoluçãostring

Validação de chaves

Nas notificações de validação de chaves, enviamos os campos:

CampoDescriçãoFormato
IdIdentificador da validação de chaveguid
ChaveChave Pixstring
ValidaDetermina se a chave é válida (True) ou inválida (False)boolean