Webhooks - Sacado



Para que os eventos ocorridos com o seu perfil (ex.: títulos que foram antecipados) sejam informados há você, existem Webhooks que são chamados no momento em que tais eventos ocorrem.

Quando um evento acontece, o sistema envia uma requisição HTTP POST para todos os webhooks configurados contendo as informações relativas ao evento e links HATEOAS que auxiliam na navegação da sua API pelos outros recursos que se relacionam com o tipo de evento.

Nossos webhooks contam com um mecanismo de retry, portanto retentamos durante duas horas ou até recebermos o HTTP status 200 OK

Autenticação

Token de Autenticação

Você pode definir um header, um tipo de token e o valor desse token para a autenticação.

Por exemplo:

Authorization: Bearer 6062949f-d17e-4e4d-b359-b3926544e2cc

Validação do Payload

Quando você define um token de autenticação, a Monkey faz uso dele para a geração de um hash de assinatura do payload. Esse hash é enviado em cada requisição no header X-Hub-Signature.

A Monkey utiliza HMAC hex digest para calcular o hash, você pode utilizar o mesmo mecanismo para gerar e validar o token.

Ex:

def generated_sha256(body)
  'sha256=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), 'AUTH_TOKEN', body)
end

def verify_signature(body)
  return halt 500, "Error on validate token!" unless Rack::Utils.secure_compare(generated_sha256(body), request.env['X-Hub-Signature'])
end

Restrição de IPs

Você pode restringir as requisições utilizando os IPs da Monkey.

Homologação: 34.192.48.76 e 34.192.8.231

Produção: 34.194.174.23 e 23.21.183.94

Configuração de Webhook

Para receber estas requisições, você deve configurar um webhook, para isso consulte a documentação de api de sacado.

Eventos

Evento Tipo (Cadastro) Tipo (Busca) Descrição
Título Negociado CUSTODY_RESPONSE_GROUPED CustodyResponseEvent Dispara uma requisição para /payables-response com dados dos títulos que foram comprados ou recusados pelo investidor.
Título Deleteado PAYABLE_DELETED PayableDeletedEvent Dispara uma requisição para /payables com dados do título que foi deletado. No body da requisição existe um campo indicando a ação eventType: PayableDeletedEvent
Título Duplicado PAYABLE_DUPLICATED PayableDuplicatedEvent Dispara uma requisição para /payables com dados do título que foi enviado para criação, porém já existente na plataforma. No body da requisição existe um campo indicando a ação eventType: PayableDuplicatedEvent
Boleto Gerado BILL_GENERATED BillGeneratedEvent Dispara uma requisição para /bill com os dados do boleto (Linha Digitável e URL), esse evento não indica que o boleto já foi aceito.
Boleto Registrado BILL_REGISTERED BillRegisteredEvent Dispara uma requisição para /bill com os dados do boleto (Linha Digitável e URL), quando é registrado no DDA.