type=business. The flow is different from type=individual — it has its own set of endpoints, its own data shape, and its own review timeline. Read this page first, then follow Onboarding a business customer for the step-by-step.
Two onboarding paths: Standard and Minimal
Every business customer carries akyb_scope that controls two things:
- What data you have to send to onboard them.
- Which currencies they can hold a Virtual Bank Account in.
kyb_scope | What you have to send | VBA currencies |
|---|---|---|
FULL (Standard KYB) | Business identity (name, registration number, country of incorporation), beneficial owners summing to 100% ownership, an ID document for each owner, plus a formation document (e.g. Certificate of Incorporation). | NGN, USD, GBP, EUR. |
MINIMAL | Business identity (name, registration number, country of incorporation) plus a formation document. No beneficial owners required. | NGN only. |
Who can use Minimal KYB?
Minimal KYB is gated by an admin-controlled allow list. Most platforms onboard their business customers under the Standard (FULL) path. Minimal KYB exists for platforms whose use case is genuinely Nigerian-naira-only — typically Nigerian fintechs collecting payments in NGN for their own customers, where the underlying NGN provider doesn’t require beneficial-ownership data. If your platform is on the allow list:- You can pass
kyb_scope=MINIMALon a customer create. - If you omit
kyb_scope, your customers default toMINIMAL. - You can still pass
kyb_scope=FULLexplicitly when you need a customer to qualify for non-NGN currencies.
- Sending
kyb_scope=MINIMALreturns422. - If you omit
kyb_scope, your customers default toFULL. - This is the right path for almost everyone — contact support@blaaiz.com only if your use case is genuinely NGN-only.
Upgrading from Minimal to Full
A Minimal customer can be upgraded to Full at any time viaPOST /customer/{id}/upgrade-kyb-scope — you supply the beneficial owners and the customer flips to FULL. After the upgrade, you upload owner ID files and call /submit again to re-verify the customer under the Standard floor.
Upgrades are one-way. Once a customer is on Full, they stay on Full. There is no admin downgrade.
The rest of this guide covers the Standard (FULL) flow. For Minimal onboarding see Onboarding a business customer → Minimal KYB onboarding.
Why a different flow than individuals?
A business customer is a company. Verifying it requires more than an ID document and a selfie:- Beneficial owners (FULL only) — every owner / signatory / director that meets the threshold, with personal ID for each.
- A KYB document collection (both scopes) — incorporation certificate, articles of incorporation, share register, bank statements, etc. The exact set depends on the jurisdiction and the business profile.
id_file / id_file_back / proof_of_address_file / liveness_check_file slots that work for individual customers don’t model this. Business customers use a separate set of endpoints.
Lifecycle states
Three records each carry their own state. They share the same four-state vocabulary, but the rules differ.Customer (verification_status)
| State | Customer fields | Owners / documents (any kind of edit) |
|---|---|---|
PENDING | Editable | Editable |
PROCESSING | Locked | Locked |
VERIFIED | Locked | Locked |
REJECTED | Editable | Editable |
PROCESSING is the active-review window — the saved customer state is frozen so compliance reviews a stable picture. Wait for the customer-level webhook before attempting edits. VERIFIED is final; corrections on a verified customer go through operations (see Customer data corrections).
Owner and KYB document (status)
Each owner and each document has its own status, even while the customer is PENDING.
| State | Editable by you? |
|---|---|
PENDING | Yes |
PROCESSING | No — under compliance review |
APPROVED | No — compliance has signed off |
REJECTED | Yes — fix and re-submit |
PENDING owner is locked while the customer is PROCESSING or VERIFIED. Locked edits return 400. To correct an APPROVED owner or document, contact operations — see Customer data corrections.
Editing a REJECTED owner or document
When you edit a previously rejected owner or document — change a field, replace a file, anything — its status automatically flips back to PENDING and its admin_comments are cleared. You don’t need to manually reset state. Fix the data, then call /submit to re-route the corrected record through review.
What /submit does
When you call POST /api/external/customer/{customer}/submit:
- The customer flips from
PENDING(orREJECTEDon re-submission) toPROCESSING. - Every
PENDINGowner flips toPROCESSING. - Every
PENDINGKYB document flips toPROCESSING. - Owners and documents that were already
APPROVEDorREJECTEDare not touched. - A
customer.status_changedwebhook fires for the customer-level transition.
What we check before accepting a /submit
/submit runs a set of checks before flipping the customer into PROCESSING. If any check fails, the response is 422 with a message naming the specific gap, the customer stays editable, and you can fix and call /submit again.
The required set depends on the customer’s kyb_scope. Minimal needs the identity baseline plus a formation document; Full needs everything Minimal needs plus beneficial owners.
Both Minimal and Full
Customer-level identitybusiness_nameis set.country(registered-address country) is set and a valid ISO alpha-2 code.registration_numberis set.incorporation_countryis set and a valid ISO alpha-2 code.countryequalsincorporation_country. By company law a company’s registered office sits in its country of incorporation, so the two must agree.operating_countryis set whenever any otheroperating_*address field is set, and is a valid ISO alpha-2 code (the operating address can be in a different country from the registered one).
- At least one document of a formation type:
CERTIFICATE_OF_INCORPORATION,ARTICLES_OF_INCORPORATION,BENEFICIAL_OWNERSHIP_CERTIFICATE,INCORPORATION_DOCUMENTS, orCAC_STATUS_REPORT.
Full only — the additional rules
Owners- At least one owner attached.
- The owners’
ownership_percentagevalues sum to exactly 100. - Owner emails are unique within the customer (case-insensitive).
- For each owner:
id_document_frontis uploaded;id_document_backis uploaded fordrivers_license,id_card, andresident_permittypes and absent forpassport. - For each owner with the field set:
date_of_birthis at least 18 years ago,id_expiry_dateis strictly after today, andnationality/country/id_document_countryare valid ISO alpha-2 codes.
/submit.
Verification timeline
Business KYB review typically takes 1–5 business days. Compliance reviews each owner and each document individually before issuing the customer-level verdict. This is longer than individual KYC because business verification involves additional checks against company registries, beneficial-ownership records, and risk databases.Re-submission
If a customer comes back asREJECTED, look at the admin_comments on each owner and each KYB document. The rejected items are editable; the approved items stay locked. Fix the rejected ones (replace files, edit fields) and call /submit again. The customer flips back to PROCESSING for re-review.
See Handling KYB rejections.
Upgrading from Minimal to Full
Akyb_scope=MINIMAL customer is restricted to NGN VBAs. To enable USD / GBP / EUR for that customer, call POST /customer/{id}/upgrade-kyb-scope with the beneficial-owner data.
The upgrade endpoint:
- Checks that the customer is currently
MINIMAL(or has no scope set, which is treated as Minimal). If they’re alreadyFULL, returns422. - Checks that the customer is not currently in
PROCESSING. If they are, returns400— wait for the customer-level webhook before retrying. - Saves the new owners (and any optional augmentations like
industry_type,business_type, etc.). - Flips
kyb_scopetoFULL. One-way — there is no downgrade. - If the customer was
VERIFIED, transitions them back toPENDING. An upgrade is a re-onboarding under stricter rules; existing NGN VBAs are unaffected.
- Upload owner ID files via the normal owner-file endpoints (per owner, per slot).
- Call
POST /customer/{id}/submitto re-verify under the Standard checks.
kyb_scope. The regular PUT /customer/{id} endpoint rejects kyb_scope in the payload — admin downgrades are also blocked by the same rule. To “fix” a customer onboarded at the wrong scope, talk to support.
What KYB unlocks
A verified business customer can hold Virtual Bank Accounts and act as a payout recipient. NGN VBAs are available for both Minimal and Full customers. USD, GBP, and EUR VBAs are gated tokyb_scope=FULL — Minimal customers are NGN-only.
For payout currency support on business customers, see Creating your first payout. For verified individual customers, see Virtual Bank Accounts.
