Integration approaches
Option A: Hosted links (recommended)
The simplest integration. You create a customer, then redirect them to Yativo’s hosted verification flow athttps://kyc.yativo.com.
Step 1: Keep your API key on your backend
Every call to Yativo is made with your API key (X-Api-Key and X-Api-Secret). Make those calls from your backend only. Your web or mobile app talks to your backend, and your backend talks to Yativo.
Step 2: Create a customer
Step 3: Redirect to hosted KYC
Embedding in an iframe
If you prefer to embed verification within your application instead of a full redirect:Step 4: Wait for the endorsement result
Verification results arrive only through the customer’s endorsements. Each endorsement covers one service, such asbase or sepa, and has its own status. Listen for the endorsement.updated webhook on your backend, then tell your frontend. See Handle endorsement updates.
While you wait, show the customer that verification is in progress. Don’t show an approval until the endorsement for the service they need is approved.
Option B: Custom API integration
Build your own multi-step form that collects customer data and submits it directly to the KYC API.Step 1: Collect personal information
When
nationality is "NG", both bvn and nin (each exactly 11 digits) are required by the API. Show these fields conditionally based on the selected nationality.Step 2: Upload files via Yativo storage
Before submitting the KYC form, upload document images using Yativo’s storage endpoint. This keeps payloads small and avoids base64 encoding large files.Step 3: Collect residential address
Step 4: Collect ID document
Step 5: Collect financial information
Step 6: Submit to the KYC API
The KYC submission endpoint is at
https://kyc.yativo.com, not the main API. Send the same API key headers you use for every other request.Handle endorsement updates
Register your webhook once withPOST /business/webhook (see Webhooks). Yativo sends endorsement.updated with the customer’s full list of endorsements each time one changes:
endorsement list from GET /customer/{customer_id} on your backend. There, service is title-cased ("Faster payments"), and each entry also has hosted_kyc_url, errors and requirements_due to show the customer what to fix. See Track verification with endorsements.
UI/UX best practices
Progress indicators Show a clear multi-step progress bar so customers know where they are in the verification process. For individual KYC: Personal Info → Address & Documents → ID Document → Financial Info → Review & Submit. Clear error messages Display field-level validation errors immediately, not just on submit. Translate API error codes into user-friendly language. The API returns adata object with field-specific error arrays on 422 responses.
Document upload previews
Always show a preview of uploaded documents before submission. This helps customers catch blurry or incorrectly oriented images before they fail review.
capture="environment" on file inputs to open the rear camera directly on mobile:
kyc_link from the status response to send them back to the hosted flow for corrections.

