Skip to main content
POST

Resubmit Merchant KYC

Resubmits a KYC application for a sub-merchant. This endpoint handles both Khaime KYC (African markets) and Stripe Connect (other markets) based on the merchant’s existing submission.
For Khaime KYC: This endpoint will fail if the merchant’s KYC status is pending_review or approved. Check the current status with Get KYC Status first.For Stripe Connect: You can call this anytime to get a fresh onboarding URL to resume or update verification.

How Resubmission Works

Path Parameters

merchantId
number
required
The ID of the sub-merchant.

Request Body

For African Countries (Khaime KYC)

Same fields as Submit KYC. You can use either the structured format or legacy flat format. Provide complete data, not just changed fields.

For Other Countries (Stripe Connect)

For Stripe Connect merchants, call this endpoint to get a fresh onboarding session. The merchant can then resume or update their verification on Stripe.
When to use this: If the merchant didn’t complete onboarding, if their session expired, or if Stripe requires additional information.
return_url
string
required
URL to redirect the merchant after they complete Stripe onboarding. This should be a page on your platform.
refresh_url
string
required
URL to redirect the merchant if the Stripe onboarding link expires. Typically the same page that initiates KYC.
You don’t need to pass country or other fields — the system uses the existing submission data to generate a new onboarding session.

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.

Data Storage

All resubmitted KYC data is stored in the KycSubmissions table:
Important: The KycSubmissions table is the single source of truth. Legacy fields in Educatorportfolio are deprecated.

Error Codes