Marketplace
Get Merchant KYC Status
Retrieve the current KYC verification status for a sub-merchant.
GET
Intro
Returns a sub-merchant’s current KYC verification status and latest submission details — whether they can accept payments and receive payouts right now — for both Khaime KYC (African markets) and Stripe Connect (everywhere else).Context
This is the read side of the KYC lifecycle: call it after Submit KYC to see the outcome, poll it while a merchant is mid-onboarding, and check it before deciding whether to send traffic to Resubmit KYC. It’s also the cheapest way to confirm a merchant is ready before you attempt a charge with theirsub_merchant_id.
Hows
Path parameters
number
required
The ID of the sub-merchant.
Response — Khaime KYC merchant
Response — Stripe Connect merchant
Response fields
verification_status values
khaime_submission object (African markets)
Present when the merchant is on Khaime KYC (NG, GH, ZA, KE).
This status endpoint returns a smaller, summary view — it does not echo back
legal_name, id_country, or bank account details. If you need those, they’re in the response from Submit KYC or Resubmit KYC, or from Get Merchant Details.stripe_connect object (non-African markets)
Present when the merchant is on Stripe Connect.
Determining readiness
khaime_submission, stripe_connect) are for showing merchants and your own team more detail — you shouldn’t need to branch on provider just to decide if a merchant is chargeable.
Error cases
Whys
A single normalizedstatus on top of two providers’ native statuses. Khaime KYC and Stripe Connect model verification completely differently internally (a review queue status vs. charges_enabled/payouts_enabled flags plus outstanding requirements). Rather than making you learn both models, the endpoint reduces both down to the same handful of status values and two booleans you can act on immediately.
verification_status kept alongside status. It predates the normalized status field and is retained so existing integrations built against the kyc_-prefixed values keep working.
Why nots
- Not a KYC submission or update endpoint. This is read-only — use Submit KYC or Resubmit KYC to change anything.
- Doesn’t return bank account details. For bank details on file, use Get Merchant Details or the response from the submit/resubmit endpoints.
- Not a live poll of Stripe. The Stripe fields reflect the last state Khaime received via webhook (or, occasionally, an on-demand refresh) — not necessarily this exact second’s state on Stripe’s side. For most integrations the lag is immaterial, but don’t treat this as a real-time Stripe API proxy.
Related
- Submit KYC — submit a new KYC application
- Resubmit KYC — resubmit after rejection
- Setup Payout — configure bank details for payout
