Com obtenir resultats de verificació amb webhooks

Didit no t'envia un correu quan una verificació canvia d'estat: configura un webhook perquè el teu backend se n'assabenti en el moment que passa, i verifica la signatura abans de confiar-hi.

Short answer

Un webhook és una petició HTTP que Didit envia a la teva URL quan alguna cosa canvia. Afegeix una destinació a API & Webhooks, subscriu-te als esdeveniments que vulguis - no hi ha comodí, cal llistar-los tots - guarda el secret de signatura, i verifica la signatura abans de processar res.

Didit no t'envia cap correu quan una sessió passa a In Review o Declined. Per saber en el moment en què un estat canvia, sense haver de refrescar la consola, configura un webhook - una URL al teu servidor a la qual Didit envia l'actualització automàticament.

Els webhooks són el patró d'integració recomanat. Fer polling a l'endpoint de decisió funciona com a alternativa, però és més lent, costa més peticions, i es perd esdeveniments que només s'arriben a lliurar per webhook - edicions de dades fetes per un revisor, canvis d'estat de transaccions, i canvis a nivell d'entitat.

#Configurar-ne un

  1. Vés a API & Webhooks

    A la Business Console, obre l'aplicació per a la qual vols rebre esdeveniments i després vés a API & Webhooks.

  2. Afegeix una destinació

    Dona-li una etiqueta, la URL pública HTTPS del teu endpoint, i tria els esdeveniments que vulguis rebre - com a mínim, els canvis d'estat de sessió.

  3. Guarda el secret de signatura

    La destinació et mostra un secret un sol cop. Guarda'l - el teu servidor el fa servir per confirmar que una petició realment ve de Didit i no d'un impostor. Passos complets de verificació: Verificació de signatura.

  4. Prova-ho

    Fes servir Try Webhook a la mateixa pàgina per enviar un esdeveniment de prova completament format - escenaris d'aprovat, declinat, en revisió, KYB, entitat i transacció - al teu endpoint. D'aquesta manera pots validar la teva integració sense executar una verificació real.

Destinacions de webhook a la consola de Didit amb els esdeveniments subscrits i l'historial de lliuraments
  1. Add destination registra la URL a la qual Didit envia els resultats.
  2. Verifica cada lliurament contra aquest secret de signatura abans de confiar-hi.
  3. Tria quins esdeveniments rep una destinació.
  4. Test Webhook envia un payload d'exemple perquè puguis confirmar que el teu endpoint l'accepta.
Cada destinació té els seus propis esdeveniments subscrits, secret de signatura i registre de lliuraments.

#Els esdeveniments als quals et pots subscriure

No hi ha comodí - llista cada família d'esdeveniments que vulguis. Repartir-los entre diverses destinacions és vàlid i sovint queda més net.

EsdevenimentEs dispara quan
status.updatedL'estat d'una sessió de KYC o KYB canvia. El que gairebé segur que vols
data.updatedLes dades de verificació s'editen després de la creació - un revisor corregint un camp
user.status.updatedUn usuari consolidat es mou entre ACTIVE, FLAGGED i BLOCKED
user.data.updatedEl perfil, els comptadors o els identificadors d'un usuari consolidat canvien
business.status.updatedUna empresa consolidada canvia d'estat
business.data.updatedLes dades d'una empresa consolidada canvien
transaction.createdEs crea una transacció i el seu veredicte inicial ja està llest
transaction.status.updatedL'estat d'una transacció canvia més endavant
travel_rule.status.updatedL'estat d'un intercanvi de Travel Rule canvia
Note

No existeix cap session.status.updated ni kyc.completed. Si t'has subscrit a un nom que no és en aquesta llista, no rebràs res - i semblarà exactament una fallada de lliurament. Comprova el nom primer.

#Què hauria de fer el teu endpoint

  • Verifica la signatura abans de qualsevol altra cosa. Calcula l'HMAC del cos en brut de la petició - mai d'una versió re-serialitzada del JSON parsejat, perquè tornar-lo a convertir en string canvia els bytes i la signatura no coincidirà. Fes servir una comparació de temps constant.
  • Retorna un 2xx ràpidament. Fes la feina pesada de manera asíncrona, després de respondre.
  • Sigues idempotent. Basa't en l'id de l'esdeveniment, o en id de sessió + estat + tipus de webhook. Els reintents i els duplicats passen.
  • Gestiona cada estat que t'importi, incloent-hi els que arriben molt després de l'alta - una sessió aprovada pot passar més endavant a In Review a través del monitoratge continu d'AML.
  • Només HTTPS. Els endpoints en HTTP simple no són compatibles.

#Reintents

Davant d'un 5xx, un 404, un timeout, o una fallada de connexió, Didit reintenta dues vegades:

  • Primer reintent aproximadament 1 minut després de la fallada inicial
  • Segon reintent aproximadament 4 minuts després d'això

Passat això, el lliurament es descarta. Cada intent queda registrat per separat a la pestanya Deliveries de la destinació, així que pots veure exactament què ha passat en lloc d'haver-ho d'endevinar.

Important

Dos reintents en cinc minuts no és una cua durable. Si el teu endpoint està caigut durant una hora, aquells esdeveniments es perden. Reconcilia en arrencar fent polling a l'endpoint de decisió per a les sessions de les quals no tinguis cap estat terminal - els webhooks són el camí ràpid, no l'únic camí.

#Darrere d'un tallafoc o un WAF

Didit fa els lliuraments des de la IP estàtica 18.203.201.92 amb un user agent DiditWebhook/2.0. Si el teu edge bloqueja clients desconeguts - la postura per defecte de Cloudflare, per exemple - permet aquesta IP per al nom d'host receptor, o els lliuraments fallaran abans d'arribar al teu codi.

#Encara no tens backend?

Mentre en construeixes un, pots seguir supervisant els resultats manualment a la secció Verifications de la consola, o fer servir mentrestant un enllaç de verificació sense codi.

#Següents passos