Skip to main content
POST

Submit Merchant KYC

Submits a Know Your Customer (KYC) application for a sub-merchant in your marketplace. This is required before a merchant can receive payouts.
The merchant must already exist in your marketplace. Create or link them first via Create Merchant before submitting KYC.

How KYC Works

Khaime uses a unified KYC system that routes to the appropriate provider based on the merchant’s country: For African markets (NG, GH, ZA, KE): You submit identity documents, business info, and bank details directly. Khaime reviews and approves. For other markets: The merchant completes Stripe’s hosted onboarding flow. You receive a URL to redirect them — Stripe collects all identity and business information directly.

Path Parameters

merchantId
number
required
The ID of the sub-merchant.

Request Body

For African Countries (Khaime KYC)

You can submit KYC data in two formats:
  1. Structured format (recommended) — Uses owner, business, and bank_account objects
  2. Flat format (legacy) — Individual fields at the root level

For Other Countries (Stripe Connect)

For non-African countries, Khaime uses Stripe Connect for identity verification. You only need to provide minimal information — Stripe collects everything else directly from the merchant through their secure hosted onboarding flow.
What Stripe Collects: Personal information, government ID, business details, bank account for payouts, and tax information. All data is collected securely by Stripe — it never passes through your servers.
country
string
required
ISO 3166-1 alpha-2 country code (e.g. US, GB, CA, DE, FR, AU).
business_type
string
The type of business. One of: individual, registered_business. Defaults to individual.
preferred_currency
string
Settlement currency for payouts. Automatically derived from country — you typically don’t need to specify this.
return_url
string
required
URL to redirect the merchant after they complete Stripe onboarding. This should be a page on your platform that handles the post-onboarding flow (e.g., shows a success message or redirects to their dashboard).
refresh_url
string
required
URL to redirect the merchant if the Stripe onboarding link expires or they need to restart. Typically the same page that initiates KYC.
Redirect URLs are required for Stripe Connect. When merchants complete Stripe’s onboarding flow, they need to be redirected back to your platform — not Khaime’s dashboard. This ensures a seamless white-label experience.

Stripe Onboarding Flow


Response

African Countries (Khaime KYC)

Other Countries (Stripe Connect)

Embedded vs Redirect: Use onboarding_url for a simple redirect flow. Use client_secret with Stripe.js for embedded onboarding that keeps users on your site.

Response Fields

KycSubmission Object (Source of Truth)

All KYC and bank data is stored in the KycSubmissions table. This is the single source of truth.

KYC Status Flow

Auto-approval: For African markets with valid Nigerian bank details and no country mismatch, KYC may be auto-approved immediately (status approved in the response).

Error Codes



Next Steps