Before ingesting verifications, make sure the related client has already been ingested. See the Ingesting Clients guide.
All SDK examples assume you have initialized the Corsa client as shown in the Node.js SDK Configuration or Python SDK Configuration guide.
Overview
A verification represents a single identity check run against a client by an external KYC/KYB provider. Corsa normalizes the result into a unifiedstatus field while also preserving the provider’s raw status for audit purposes.
Each verification belongs to exactly one client and is uniquely identified by the combination of provider + providerId.
Verification statuses:
Step 1: Create a Verification
Endpoint:POST /v1/clients/{clientId}/verifications
Returns 409 Conflict if a verification with the same provider + providerId already exists for this client.
Request Fields
Step 2: Update a Verification
Endpoint:PUT /v1/clients/{clientId}/verifications/{verificationId}
Use this endpoint to update a verification when its status changes at the provider — for example, when a PENDING check is completed.
Step 3: Look Up a Verification
Endpoint:GET /v1/clients/{clientId}/verifications/lookup?provider={provider}&providerId={providerId}
Use this to retrieve an existing verification by provider + providerId without storing the Corsa verification ID on your side.
Verification Response
A successful create or update returns the full verification object:Integration Pattern
The typical flow when integrating with a KYC provider:- Client submits verification at your platform — create a
PENDINGverification in Corsa. - Provider webhook fires with the result — update the verification status in Corsa.
- Corsa reflects the updated status on the client profile for compliance review.