How it works (the flow)
- Run the standard KYC wizard, through Sumsub approval —
PATCH /kycwith personal info, the Mexican address, and anidentificationNumbersentry for the RFC; upload the ID document (/kyc/documents/identification), proof of address (/kyc/documents/proof-of-address), and selfie (/kyc/documents/biometric); thenPOST /kyc/activateand get it toapproved. Mexico activation requires this to already be approved — it imports identity data from it rather than taking its own. POST /onboarding/start-mexico— Registers the smart wallet’smxnWalletAddress+mxnWalletIndexfor the MXN rail, the same “one call per currency” step every other region does (see Integration flow).POST /latam/mx/kyc/activate— Takes no body. Starts the Mexico KYC workflow from the already-approved Sumsub profile. A CLABE is provisioned in the background.GET /latam/mx/kyc/launch/agreements— Send the user to the provider’s hosted verification page. Completing it is required for approval — without it the review never completes.GET /latam/mx/kyc/status— Poll untilapproved.
A Mexican user who also wants a USD account follows the Rest of world flow in addition to this one — the two are independent activations over the same KYC profile.
The RFC is a hard prerequisite
Mexico activation reads the RFC (the Mexican tax id) straight off the KYC profile and submits it to the provider astaxId. Sumsub does not always carry
it, so it has to be on the profile before you activate:
issuingCountryCode is ISO 3166-1 alpha-3. The response carries
canActivate and, when it is false, a missing array — check it before
calling activate rather than reading the 400 back.
CURP is not required. It was only used by the per-user bank-account registration, which was removed when ramps moved to a shared business account. Sending one is harmless; omitting it does not block activation.
Activation
400 if that profile isn’t approved yet, or if the RFC is missing from it.
Returns the review status:
Hosted verification (required for approval)
kyc/status is still proposed.
GET .../kyc/launch/idv is a deprecated alias that returns this same payload — kept only for integrations built before the provider consolidated its separate agreements and bank-verification launches into one flow. Use launch/agreements going forward.html into a WebView or browser as-is (it auto-submits), or build the form-POST yourself from url + fields.
Status values
Ramps route through BMONI’s shared business account, so there is no per-user bank-account compliance gate —
approved is the terminal success state.
Next step
Once status isapproved, move money with Mexico — MXN on/offramp — depositing MXN to the user’s CLABE onramps automatically, and offramps are a quote followed by an order. Users who onboarded before the MXNe → MEXe token migration should also be checked for a legacy balance — see MXNe → MEXe migration.
