Simulating outcomes
In non-production environments, you can drive an inquiry to a specific state by callingPOST /v1/verification/simulate with the verification_id you got back from POST /v1/verification/start and the action you want to simulate. The endpoint fires the corresponding webhook event and updates the inquiry status — exactly as a real event from our external provider would.
Request
Accepted actions
The endpoint is unavailable in production. Don’t reference it from production code paths.
Recommended test plan
We’d recommend partners walk through this matrix before going live.Backup happy path
1
Start verification, then simulate `approve_inquiry`
Call
POST /v1/verification/start, then POST /v1/verification/simulate with action: "approve_inquiry". Confirm you receive an inquiry.approved webhook within a few seconds.2
Generate a key
Confirm the key and signature are returned, and that the signature verifies against the verification key CoinCover issued you during integration. A failed verification means the response should be treated as untrusted — exercise that path before going live.
3
Encrypt and store a backup
Confirm each entry in the
backup array of the response includes a backup_id, and the returned checksum matches your local SHA-256 of the plaintext.Recovery happy path
1
Start a fresh verification, then simulate `approve_inquiry`
A new
verification_id is required for each recovery.2
Recover the backup
Confirm the response’s
backup array includes the same backup_item_key you stored and a recovery_package with algorithm: "gpg".3
Decrypt locally with your GPG private key
Decrypt the
recovery_package.data payload and verify its SHA-256 matches the checksum you stored.4
Re-back-up the rotated material
Use the same approved
verification_id to call POST /v1/backup/store and confirm the new backup writes successfully.