Soletrader users
The page presents the user steps and validation checks for the hosted IDV flow for the Soletrader user type.
Prerequisites
Before launching a hosted IDV Session for a Soletrader, please ensure that:
- The ID proof they will use is accepted by Mangopay
- The Registration Proof they will upload conforms to the one expected by Mangopay
- They have details about the registration of their sole proprietorship
- The data in the following Legal User object fields matches their ID proof:
LegalRepresentative.FirstNameLegalRepresentative.LastName
Flow description
When a hosted IDV session is generated for a Legal Soletrader:
- The session
StatusisPENDINGand can be submitted within 7 days, at which point it becomesEXPIRED. This emits theIDENTITY_VERIFICATION_PENDINGwebhook. - The sole proprietor opens the session and sees a welcome screen explaining:
- That they will need to provide business details
- That they may need to provide the Registration Proof (RP) document (a link to the KYB local page is provided later in the flow)
- That they will need to complete the liveness check with their ID and smartphone, with a link to Mangopay’s accepted ID documents
- The sole proprietor enters details of their sole proprietorship:
- Country of registration
- Optionally, registration number provided by the relevant national authority
- Registered business name
- Registered business address
- Mangopay uses business details to attempt a lookup in the relevant national registry (check type
BUSINESS_VERIFICATION) - Regardless of the result, the sole proprietor uploads their accepted Registration Proof
- The sole proprietor completes the liveness ID check (via QR code or directly if session opened on a phone) by:
- Taking a photo of their ID (or two photos if it’s a driver’s license or national ID card)
- Taking a selfie of their face
- The session is redirected to the
ReturnUrl - Mangopay performs automated liveness validation checks:
IDENTITY_DOCUMENT_VERIFICATIONIDV_NAME_MATCH_CHECKIDV_AGE_CHECK
- If successful, Mangopay checks that the name from the ID proof is present in the registered name (
BUSINESS_NAME_MATCH).- If successful, the session’s status becomes
VALIDATED - If unsuccessful, the session is reviewed manually (
REVIEW) before the final outcome
- If successful, the session’s status becomes
Checks performed
For Soletrader Users, the following checks are performed in the order listed:
Outcomes
For a Soletrader user, the following outcomes are possible (from a PENDING status):
Automated validation
The Status becomes VALIDATED if all automated checks performed were successful. This emits the IDENTITY_VERIFICATION_VALIDATED webhook. In this case:
- The verified data is overwritten in the User object:
LegalRepresentative.FirstName(even if the fields previously referenced a different individual)LegalRepresentative.LastNameLegalRepresentative.BirthdayNameCompanyNumber(if entered in the session)
- The User’s
KYCLevelbecomesREGULAR
Automated refusal
The Status becomes REFUSED if any of these checks fail:
IDENTITY_DOCUMENT_VERIFICATIONIDV_NAME_MATCH_CHECKIDV_AGE_CHECK
This emits the IDENTITY_VERIFICATION_FAILED webhook. In this case:
- You can retrieve more information in the IDV Session’s:
Checks.CheckStatus- For which checks wereREFUSEDChecks.Reasons– For the refusal reasons (Typeand presetValue)
- You need to generate a new session to retry (even if some of the checks were validated)
Manual review
Provided the IDENTITY_DOCUMENT_VERIFICATION and IDV_AGE_CHECK are successful, the Status becomes REVIEW if either of the following checks fail:
BUSINESS_VERIFICATIONBUSINESS_NAME_MATCH
This emits the IDENTITY_VERIFICATION_INCONCLUSIVE webhook. In this case:
- Mangopay reviews the session data and documents manually.
- The
Checks.CheckStatusshows which checks wereREFUSEDand triggered the manual review - Automatically validated checks are returned, including verified data, but the User object data is only overwritten if the session is validated
Validation after review
If the manual review is successful, the Status changes from REVIEW to VALIDATED. In this case:
- The verified data is overwritten in the User object:
LegalRepresentative.FirstName(even if the fields previously referenced a different individual)LegalRepresentative.LastNameLegalRepresentative.BirthdayNameCompanyNumber
- The User’s
KYCLevelbecomesREGULAR
Refusal after review
If the manual review is unsuccessful, then the status changes to REFUSED.
In this case:
- Verified data may be returned in the IDV Session but no action is taken with it
- You can retrieve more information in the IDV Session’s:
Checks.CheckStatus- For which checks wereREFUSEDChecks.Reasons– For the refusal reasons –Typeand, in the case of a manual review, a custom message in theValue
- You need to generate a new session to retry (even if some of the checks were validated)
Testing
For general guidance on testing the hosted IDV experience in Sandbox, see Testing.
For a Soletrader, the simulation of checks performed retain their conditional logic, so some are only available depending on your previous selection:
IDV_NAME_MATCH_CHECKandIDV_AGE_CHECKare only performed ifIDENTITY_DOCUMENT_VERIFICATIONis validatedBUSINESS_NAME_MATCHis only performed ifBUSINESS_VERIFICATIONis validated
To simulate a REVIEW session, validate the IDV checks except any of BUSINESS_VERIFICATION or BUSINESS_NAME_MATCH.
Sequence diagram
The following diagram gives an overview of the integration flow:
Integration flow
Initiate the hosted session
Call the POST Create an IDV Session endpoint with the UserId to initiate a hosted KYC/KYB verification session.
You must include a ReturnUrl to which the session redirects once it is completed, before the outcome is known.
In the API response:
- The
HostedUrlvalue is the URL for the unique session, with yourReturnUrlencoded and appended. - The
StatusisPENDING, indicating that the session is available via theHostedUrlvalue, and the user has not successfully completed all the necessary steps.
The PENDING status emits the IDENTITY_VERIFICATION_PENDING webhook event type with the session Id (read more about setting up webhooks).
Redirect the user to the hosted session
Redirect the user to the HostedUrl value received in the response.
By default, the session can be submitted within 7 days, after which the Status changes to EXPIRED. If the liveness step has been opened (the QR code was generated), the session instead expires 1 hour after it started.
The object Status remains PENDING regardless of whether the session has been started or not. On your side you can track whether the HostedUrl was accessed by the user.
Let the user complete the session
On the HostedUrl, the experience guides the sole proprietor through confirming or entering business details, uploading the Registration Proof, and completing the ID liveness check using their smartphone. If the session is opened on desktop then a QR code is displayed for the user to scan.
Receive the user after completion
Once the session is completed, the HostedUrl redirects to the ReturnUrl.
The outcome of the session is not returned immediately.
Listen to webhooks
When the outcome of the session is known, the Status is updated from PENDING and a webhook notification is emitted.
The PENDING value can change directly to one of:
Or, the session may first pass to a temporary state before the final outcome:
Handle outcomes
Once you receive a webhook, call GET View an IDV Session for more details about the session.
In a successful case, this endpoint returns the verified data points that are updated in the User object.
For REFUSED cases, the endpoint returns information about which Checks failed and for what reasons.
To see key details about all the sessions attempted for a user, call GET List IDV Session for a User.
State machine
The following diagram shows the statuses of the IDV Session object for a Soletrader user:
Webhooks
The hosted KYC/KYB verification feature takes time for the user to complete.
You are strongly recommended to implement webhooks for IDV Sessions and rely on them in your integration.
Once you receive a webhook notification, call GET View an IDV Session for more details.
The following event types are available for a Soletrader:
IDENTITY_VERIFICATION_PENDING– The IDV Session’sStatusisPENDING. TheHostedUrllink is valid for completion and must be submitted within 7 days (or 1 hour after the liveness step is opened). The session may or may not have been started.IDENTITY_VERIFICATION_VALIDATED– The IDV Session’sStatuschanged toVALIDATEDand the User became KYC/KYB verified.IDENTITY_VERIFICATION_FAILED– The IDV Session’sStatuschanged toREFUSEDand the User was not KYC/KYB verified. A new session is needed for them to retry.IDENTITY_VERIFICATION_INCONCLUSIVE– The IDV Session’sStatuschanged toREVIEWand the session is under manual review by Mangopay’s teams before an outcome can be given.IDENTITY_VERIFICATION_EXPIRED– The IDV Session’sStatuschanged toEXPIRED. A new session is needed to retry.IDENTITY_VERIFICATION_OUTDATED– The IDV Session’sStatuschanged toOUT_OF_DATEindicating that the user’s KYC/KYB verification status was downgraded. To regain KYC/KYB verified status, the user must complete a new IDV Session successfully.
Verified data
The hosted KYC/KYB session gathers user data which is then verified as part of the process. This data is returned in the session’s Checks.Data. You can retrieve it using the GET View an IDV Session endpoint.
These data points are overwritten if the session Status is VALIDATED, but the Data may still be returned if the status is REFUSED or REVIEW.
As part of the IDENTITY_DOCUMENT_VERIFICATION check, the data in the next table is extracted from the ID document. If this check fails, the session Status is REFUSED and no data is overwritten.
As part of the BUSINESS_VERIFICATION check, the data in the next table is entered by the user and then validated against the national registry. If this check fails, then the session goes for manual review. If the session Status is ultimately VALIDATED, then the data entered is considered validated and overwritten in the user object. If the session outcome is REFUSED, no data is overwritten.