Saltar para o conteúdo principal
Didit angaria 7,5 milhões de dólares para construir a infraestrutura para identidade e fraude
Didit
Voltar ao blog
Blog · 15 de março de 2026

Idempotência de Webhooks para KYC: Um Guia para Desenvolvedores (PT-PT)

Garanta integrações KYC fiáveis com a idempotência de webhooks. Aprenda a evitar o processamento duplicado, gerir falhas com elegância e construir sistemas de conformidade financeira robustos.

Por DiditAtualizado
webhook-idempotency-kyc-integration.png

Idempotência de Webhooks para KYC: Um Guia para Desenvolvedores

Integrar processos de Conheça o Seu Cliente (KYC) na sua aplicação é crucial para a conformidade e prevenção de fraudes. Um método comum para receber atualizações em tempo real dos fornecedores de KYC é através de webhooks. No entanto, a inerente falta de fiabilidade das redes pode levar à entrega duplicada de webhooks. É aqui que a idempotência de webhooks se torna essencial. Sem ela, corre o risco de processar o mesmo evento KYC várias vezes, o que pode levar a dados incorretos, verificações de conformidade falhadas ou até mesmo penalidades financeiras. Este guia fornece uma análise aprofundada da implementação da idempotência de webhooks para uma integração KYC robusta e fiabilidade da API.

Ponto Chave 1: A idempotência de webhooks impede o processamento duplicado de eventos, garantindo a consistência dos dados nos seus fluxos de trabalho KYC.

Ponto Chave 2: A implementação da idempotência envolve o rastreamento de eventos de webhook processados usando um identificador único, tipicamente um ID de webhook.

Ponto Chave 3: O tratamento de erros adequado e os mecanismos de repetição são cruciais juntamente com a idempotência para lidar com falhas transitórias.

Ponto Chave 4: Os webhooks da Didit incluem um campo de id único para uma gestão fácil da chave de idempotência.

Compreender o Problema: Por Que os Webhooks Nem Sempre São Fiáveis

Os webhooks são chamadas de retorno HTTP acionadas por um evento num servidor (neste caso, o seu fornecedor de KYC, como a Didit). Embora convenientes, são suscetíveis a problemas de rede e falhas intermitentes. Um fornecedor de KYC pode tentar reenviar um webhook se não receber uma resposta OK 2xx imediata. Esta é uma boa prática por parte deles para garantir a entrega, mas pode resultar na sua aplicação receber o mesmo webhook várias vezes. Considere um cenário em que uma verificação KYC é concluída com sucesso. O fornecedor envia um webhook para a sua aplicação, mas uma falha na rede impede que o seu servidor reconheça o recebimento. O fornecedor tenta novamente e a sua aplicação processa o evento novamente, o que pode acionar ações indesejadas, como a criação de contas de utilizador duplicadas ou a atualização incorreta dos estatutos de conformidade. Isto é particularmente perigoso quando se lida com dados financeiros sensíveis e requisitos regulamentares.

O Que É Idempotência?

Idempotência, no contexto de webhooks, significa que processar o mesmo evento de webhook várias vezes tem o mesmo efeito que processá-lo apenas uma vez. A chave para alcançar isto é usar um identificador único (normalmente fornecido pelo próprio webhook) para rastrear quais eventos já foram processados. Quando um webhook é recebido, a sua aplicação verifica se o identificador já foi visto antes. Se sim, o pedido é ignorado; caso contrário, o evento é processado e o identificador é registado. Isto garante que, mesmo que o webhook seja entregue várias vezes, a ação seja executada apenas uma vez.

Implementar a Idempotência de Webhooks: Um Guia Passo a Passo

Aqui está um detalhamento de como implementar a idempotência na sua integração KYC:

  1. Identificador Único: O fornecedor de KYC deve fornecer um identificador único para cada evento de webhook. Na Didit, incluímos um campo id único em todos os payloads de webhook.
  2. Armazenamento: Você precisa de um mecanismo de armazenamento persistente (base de dados, cache, etc.) para armazenar os identificadores de webhook processados. Considere as implicações de desempenho ao escolher uma solução de armazenamento; uma pesquisa rápida é crucial.
  3. Pesquisa: Quando um webhook é recebido, consulte o seu armazenamento para verificar se o identificador já existe.
  4. Processamento: Se o identificador não for encontrado, processe o evento de webhook.
  5. Registo: Após o processamento bem-sucedido, armazene o identificador no seu armazenamento.
  6. Tratamento de Erros: Implemente um tratamento de erros robusto. Se o processamento falhar, registe o erro e potencialmente tente novamente (com repetição exponencial), mas não armazene o ID. Isto garante que um evento falhado possa ser repetido sem violar a idempotência.

Exemplo de Código (Python)

import redis
import json

redis_client = redis.Redis(host='localhost', port=6379, db=0)

def process_kyc_webhook(webhook_payload):
  webhook_id = webhook_payload.get('id')

  if redis_client.exists(webhook_id):
    print(f'Webhook com ID {webhook_id} já processado. Ignorando.')
    return True # Indicar sucesso (idempotente)

  try:
    # Processar o evento KYC aqui...
    print(f'Processando webhook com ID: {webhook_id}')
    # ... a sua lógica de processamento KYC ...

    redis_client.set(webhook_id, 'processed')
    return True
  except Exception as e:
    print(f'Erro ao processar webhook com ID {webhook_id}: {e}')
    return False # Indicar falha no processamento

# Exemplo de utilização
webhook_data = {'id': 'unique_webhook_123', 'event': 'kyc_approved', 'user_id': 'user123'}
process_kyc_webhook(webhook_data) 

Escolher o Armazenamento Certo para as Chaves de Idempotência

A escolha do armazenamento para as chaves de idempotência depende da escala e dos requisitos de desempenho da sua aplicação. Algumas opções incluem:

  • Redis: Excelente para armazenamento em memória de alto desempenho. Ideal para aplicações com tráfego de webhook elevado.
  • Bases de Dados (PostgreSQL, MySQL): Fiáveis e escaláveis, mas podem ter maior latência do que o Redis.
  • Tabelas Hash: Se a sua aplicação estiver a ser executada num ambiente distribuído, uma tabela hash distribuída pode fornecer uma solução escalável.

Considere fatores como a velocidade de leitura/escrita, a durabilidade dos dados e a escalabilidade ao tomar a sua decisão. Para os webhooks da Didit, o Redis é uma escolha popular devido à sua baixa latência e facilidade de integração.

Como a Didit Ajuda

A Didit fornece webhooks robustos com um campo id único em cada payload. Isto simplifica a implementação da idempotência na sua integração. Também oferecemos:

  • Entrega Fiável: Empregamos mecanismos de repetição para garantir a entrega do webhook.
  • Documentação Abrangente: Documentação clara e concisa para orientar o seu processo de integração.
  • Suporte Dedicado: A nossa equipa de suporte está disponível para ajudá-lo com quaisquer questões ou problemas.

Pronto para Começar?

Implementar a idempotência de webhooks é uma boa prática para construir integrações KYC fiáveis. Seguindo os passos descritos neste guia, pode garantir que a sua aplicação lida com os eventos de webhook corretamente, mesmo em caso de falhas na rede.

Explore as soluções KYC da Didit: Ver Preços | Leia a Documentação | Solicite uma Demonstração

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitorização de Transações e Rastreio de Carteiras. Integre em 5 minutos.

Peça a uma IA para resumir esta página
Idempotência de Webhooks para KYC.