Skip to main content
Yativo requires identity verification before customers can access payment services such as virtual accounts, send money, and payment rails. Individual users go through KYC (Know Your Customer) and businesses go through KYB (Know Your Business).

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.
Send the file as multipart/form-data with the field name document.
Use the returned url value in the selfie_image, image_front_file, proof_of_address_file, and similar fields below.

Individual KYC

Submit

This is a five-step data model submitted in one payload. All required fields must be present in a single request.

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

Both registered_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.
Send only the fields you need to correct. customer_id is always required.

Service endorsements

After approval, customers receive service endorsements that unlock specific payment rails.

Endorsement statuses

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 for most_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 accepted type 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-Key on 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"), bvn and nin are mandatory regardless of which ID type is provided.
  • The state field 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.