Environments
KYC and KYB submissions are sent to
https://kyc.yativo.com, not the main API base URL. All other endpoints (status check, update) use the standard base URL. Include Authorization: Bearer {token} in every request.Integration approaches
Hosted URLs:
- Individual:
https://kyc.yativo.com/individual/{customer_id} - Business:
https://kyc.yativo.com/business/{customer_id}
Verification flow
1
Create a customer
Call
POST /customer to create a customer record and receive a customer_id.2
Upload documents (if using API)
Use
POST /storage/upload to upload files and receive back a hosted URL. Pass those URLs in the KYC payload. Alternatively, embed files as base64-encoded strings.3
Submit KYC or KYB
POST to
https://kyc.yativo.com/api/individual-kyc/submit or https://kyc.yativo.com/api/business-kyc/submit.4
Poll or receive webhook
Check
GET /customer/kyc/{customer_id} or listen for the kyc.status_updated webhook event.5
Customer approved
When
status is "approved" and is_va_approved is true, service endorsements are activated and payment rails become available.Upload documents
Before submitting KYC, upload any document files you will reference. Files must be PDF, JPG, JPEG, PNG, HEIC, or TIF and must not exceed 5 MB each.multipart/form-data with the field name document.
url value in the selfie_image, image_front_file, proof_of_address_file, and similar fields below.
Individual KYC
Submit
Step 1 — Personal details
Step 2 — Residential address
Step 3 — Identifying information
At least one government-issued ID document is required.Step 4 — Risk and purpose
Step 5 — Supporting documents
KYC example request
Business KYB
Submit
Step 1 — Business basics
Step 2 — Addresses
Bothregistered_address and physical_address use the same structure:
Step 3 — Associated persons
At least one person is required. Include all UBOs, directors, and authorized signers.Step 4 — Risk and purpose
Step 5 — Regulated activity
Step 6 — Business documents
At least one document is required.Step 7 — Business identifying information (optional)
Business-level ID documents (e.g. business licence).KYB example request
Check KYC / KYB status
string
required
The customer UUID.
Status values
Check both
status === "approved" and is_va_approved === true before enabling payment features for a customer.Update a KYC submission
Use this endpoint to correct information or provide missing documents after a rejection.customer_id is always required.
Service endorsements
After approval, customers receive service endorsements that unlock specific payment rails.Endorsement statuses
Regenerate an endorsement link
If an endorsement link has expired, regenerate it and share the new URL with the customer:Reference lookups
Occupation codes
Get the full list of valid occupation codes formost_recent_occupation_code:
Supported countries
Get the list of countries supported for customer registration and verification:Enum reference values
employment_status
expected_monthly_payments_usd
source_of_funds
account_purpose
high_risk_activities (KYB)
business_type (KYB)
cooperative, corporation, llc, partnership, sole_prop, trust, other
ID types by country
The acceptedtype values under identifying_information depend on the issuing country. Common types available globally:
Countries also accept country-specific types, for example:
Use
GET /auth/verification-locations to check which countries are supported, and consult the full ID type reference in the API reference section.
Webhooks
Configure your webhook endpoint in the Yativo dashboard to receive status updates automatically.Events
Payload example
Error handling
Common errors and fixes
Implementation notes
- KYC review typically completes within 24 hours. Complex cases may take longer.
- Use
Idempotency-Keyon all POST and PUT requests to prevent duplicate submissions. - Files can be passed as hosted URLs (from
POST /storage/upload) or base64-encoded strings — both are accepted. - For Nigerian customers (
nationality: "NG"),bvnandninare mandatory regardless of which ID type is provided. - The
statefield accepts both"US-CA"and"CA"— the API normalizes both forms. - Access tokens expire in 600 seconds. Implement token refresh before making KYC submissions in long-running flows.

