Phase 3: RESPOND - How to implement a solution
Phase 3 requires VASPs to implement most Veriscope API endpoints and subscribe & respond to webhook events.
Implementation requirements are best understood by walking through a full end-to-end flow from attestation through to decrypting IVMS data and accepting/rejecting a transfer. Please refer to the End-to-end Walkthrough Guide.
Overview of the end-to-end flow
 
| Step | VASP | Task | 
|---|---|---|
| 1 | oVASP | Post attestion. The attestation is posted to all nodes as a webhook event. | 
| 2 | bVASP | Receive attestation | 
| 3 | bVASP | Create and send initial KYC template with signature data | 
| 4 | oVASP | Receive initial KYC template | 
| 5 | oVASP | Encrypt KYC/IVMS data with bUser’s public key | 
| 6 | oVASP | Send updated KYC template with signature data and encrypted KYC/IVMS data | 
| 7 | bVASP | Receive updated KYC template with encrypted KYC/IVMS data | 
| 8 | bVASP | Encrypt KYC/IVMS data with oUser’s public key | 
| 9 | bVASP | Send updated KYC template with encrypted KYC/IVMS data. The encrypted KYC/IVMS data must be before a status code can be sent. | 
| 10 | oVASP | Receive updated KYC template | 
| 11 | oVASP | Decrypt bVASP KYC/IVMS and perform checks (e.g. name screening) and decide whether to proceed (accept/reject the transfer) | 
| 12 | oVASP | Send updated KYC template with accept/reject status code | 
| 13 | bVASP | Decrypt oVASP KYC/IVMS and initiate additional checks (e.g. name screening) | 
| 14 | bVASP | Send updated KYC template with accept/reject status code | 
| 15 | oVASP | Process the withdrawal / broadcast on-chain |