Skip to main content
Sandbox has two separate verification checks. Your Yativo account has to be approved before most API calls succeed. Each customer you create still goes through the same KYC or KYB submission as production. Sandbox base URL: https://smtp.yativo.com/api/v1.

Your account

The API allows a call when the signed-in user or the linked business has both of these:
  • kyc_status is approved (comparison ignores case)
  • is_kyc_submitted is true
Until that is true, calls outside account setup return:
GET /profile is available before approval. It returns kyc_status and is_kyc_submitted. When is_business is true, errors lists business fields that are still empty: business_legal_name, business_operating_name, incorporation_country, business_operation_address, entity_type, business_registration_number, business_tax_id, business_industry, business_sub_industry, business_description, business_website, account_purpose, plan_of_use, is_pep_owner, is_ofac_sanctioned, shareholder_count, shareholders, directors_count, directors, documents, administrator, use_case, estimated_monthly_transactions, estimated_monthly_payments, is_self_use, terms_agreed_date. On the business record, kyc_status is one of not submitted, pending, approved, or rejected. A new business record starts at not submitted.
GET /profile also works with an API key. Payment, customer, virtual account, and payout calls stay on the 403 above until the account is approved.

Sandbox business verification

The production dashboard opens a hosted verification page. The sandbox dashboard collects business verification in the app, at /business_kyc on smtp.yativo.com.
1

Company information

Legal name, doing-business-as name, country of incorporation, operating address, entity type, registration number, and tax ID.Saving this step with a legal name sets the user’s is_kyc_submitted to true. It does not change kyc_status. The account stays on the 403 until kyc_status is approved.
2

Business description

Industry, sub-industry when that industry has one, description, website, account purpose, and how you plan to use Yativo. The website value has to contain http.
3

Ownership

Whether any ultimate beneficial owner is a politically exposed person (is_pep_owner), whether any owner is sanctioned (is_ofac_sanctioned), and shareholders. Each shareholder saved from this step stores name, email, and percentage.You can email a shareholder from this step to complete their own verification. A successful request returns Email notification sent successfully.
4

Management

Number of directors and one entry per director. The count has to match the number of directors you add. Each director saved from this step stores name, role, and email.
5

Usage

How you plan to use Yativo, estimated monthly transfer volume, estimated monthly payment count, and whether the payments are for yourself (is_self_use is "1" or "0").
6

Administrator

Choose an existing person or add an administrator with name, email, phone number, and position. You can email that person to complete verification. The success message is the same as on the ownership step.
7

Documents

Upload PNG, JPG, JPEG, or PDF files. The dashboard stores each file with POST /storage/upload (field name document) and keeps the URL from data.document.Saved documents are an array of { "type", "URL" }.
8

Terms

Accept the terms. The dashboard sends the details collected above with terms_agreed_date set to the time you accept. The confirmation screen says the submission is under review.

Entity types

The company step offers these entity_type values:

Volume ranges

estimated_monthly_transactions: estimated_monthly_payments: Industry, sub-industry, and account purpose are fixed lists in the form. Submitting the form records the business details. It does not set kyc_status to approved. Poll GET /profile until kyc_status is approved and is_kyc_submitted is true on the user or the business.

Customer KYC

POST /customer creates a customer record. That request does not submit identity documents and does not set the customer to approved. Customer verification uses the same hosted pages and submission API in sandbox and production, on a separate sandbox host:
  • Individual: https://kyc-sandbox.yativo.com/individual/{customer_id}
  • Business: https://kyc-sandbox.yativo.com/business/{customer_id}
  • Submit: POST https://kyc-sandbox.yativo.com/api/individual-kyc/submit or POST https://kyc-sandbox.yativo.com/api/business-kyc/submit
  • Lookups: the same paths as production, on https://kyc-sandbox.yativo.com/api
Production uses https://kyc.yativo.com with the same paths. The sandbox dashboard links to those same hosted pages. Track the result through the customer’s endorsements: the endorsement.updated webhook, or the endorsement list on GET /customer/{customer_id} on the sandbox base URL. Each service is available when its endorsement is approved. See Track verification with endorsements. GET /customer/{customer_id} is behind the account check above, so it returns the account 403 until your own account is approved.

Sandbox test values

On sandbox, identity numbers always pass, so you don’t need real Nigerian details. After your request passes validation, these values are stored and verified in place of what you sent. A malformed BVN, NIN or phone is still rejected, exactly as in production. Sandbox also differs in these ways:
  • Every BVN validates, and spei is always approved.
  • The duplicate-person check is off, so you can submit the same person under any number of customers without a 409.
  • Placeholder names are still blocked. A name containing test, yativo or admin permanently blocks the customer_id, so use realistic names.
Never use these values in production. See the go-live checklist.