Pular para o conteúdo principal

Webhook

Atualizações no status de fraude (Para RentalAgreements que sejam derivados para análise manual ou que sejam respondidos como Pendente), são notificados por meio de Webhook. Para tanto, é necessário, por meio da equipe do suporte, configurar um endereço do endpoint por onde vamos notificar as atualizações e também um secret_token que será utilizado para assinar a requisição.

O cliente pode, apesar de não recomendável, também utilizar a técnica de polling. Neste caso, basta não configurar o endpoint de webhook e utilizar os endpoints de recuperação de RentalAgreement para proceder com o polling.

Assinatura

Exemplo de cálculo de assinatura em Python:

hmac_obj = hmac.new(
signature_key.encode('utf-8'),
(endpoint + method + payload).encode('utf-8'),
hashlib.sha1
)
return hmac_obj.hexdigest()

Para garantir que a requisição recebida no endpoint do webhook parte dos nossos servidores, uma assinatura HMAC é enviada no Header Signature, semelhante ao processo de autenticação.

Após realizar o cálculo do valor esperado da assinatura do lado do servidor, é necessário comparar a assinatura calculada com a enviada. Caso as assinaturas sejam compatíveis, isso significa que a requisição partiu dos nossos servidores e que é confiável.

Requisição

Exemplo de requisição:

{
"rental_agreement_id": "123456",
"fraud_status": "automatically_approved",
"upgrade_status": "automatically_approved",
"event_date": "2019-10-01T10:37:25-03:00"
}

A requisição possui o formato acima e notifica a mudança no status de fraude.

Retentativas

A notificação é considerada realizada quando recebe como resposta um HTTP Status 200. Caso as notificações falhem, serão feitas retentativas, com os seguintes intervalos, até que um 200 seja retornado ou as tentativas terminem:

  • 10 segundos
  • 30 segundos
  • 60 segundos
  • 120 segundos
  • 120 segundos
  • 3600 segundos
  • 7200 segundos
  • 36000 segundos