Skip to main content
This documentation provides a step-by-step guide on how to test the user onboarding experience for Gnosis Pay V2 in a sandbox environment.

1. Authentication

1

Get access token

To get access token, please go through the authentication guide here.

2. User Registration

1

Sign up with email

Send an email verification request to POST /email-verification with a One-Time Password (OTP) to the user’s email address.
cURL
2

Register user

Register a new user with email OTP and create a user profile. POST /user endpoint returns a new access token with userID that must be used as the bearer token for all subsequent API requests - otherwise the calls will fail.Optionally, provide a shareToken for Sumsub reusable KYC.
If the access token lacks a userID, it indicates that user registration failed because the email was never properly submitted.
cURL
3

Get onboarding status of user

After user registration, use the access token to retrieve the user’s current onboarding status.GET /user/onboarding will indicate the next required step in the onboarding process.

User Onboarding States

The onboarding status values to indicate the current step and required user actions:
cURL
4

Accept Terms of Service (ToS)

At this point, the user is registered in the Gnosis Pay system and has an associated userID. Call the endpoint GET /user/onboarding. The response from JSON will be following returned with status of action_accept_tos.
UX tip: Handle ToS acceptance within the email registration flow to avoid introducing an additional screen in the onboarding process. In the same screen, render the Terms (or link to them) and include a mandatory “I agree to the Terms of Service” checkbox. Disable form submission until the checkbox is selected. After successful registration and token issuance, automatically trigger the SoF acceptance call with the new token.

Request Terms of Service

Fetch the current Terms of Service that users must agree to before continuing with the onboarding process via the endpoint GET /terms.
cURL
Submit the accepted Terms of Service via the POST /user/terms endpoint.
cURL
You can check the status of the user’s acceptance of the Terms of Service via the GET /user/terms endpoint.
cURL

3. KYC Process

1

Get onboarding status

Call the GET /user/onboarding API to retrieve the current status of the user’s onboarding process. If the status is action_complete_kyc, you can proceed with the KYC process. The response will include the status and a webSdkURL for completing KYC verification.
2

Complete KYC

Access the Sumsub URL provided in the response to begin the KYC verification process. In the sandbox environment, you can use Sumsub’s predefined templates for testing purposes.
As you are in the sandbox environment, you can use fake documents or use one provided by Sumsub.
To complete the verification process:
  1. Open an iframe with the provided webSdkUrl
  2. Use the verification document templates for Proof of Identity (POI) and Proof of Address (POA)
  3. Complete the liveness check as prompted
3

Handle KYC resubmission request

If GET /user/onboarding returns action_kyc_resubmission_requested, the KYC provider has reviewed the submission and is requesting the user resubmit their documents. The response shape is identical to action_complete_kyc and includes a fresh webSdkUrl:
Open the Sumsub iframe again with the provided webSdkUrl and have the user resubmit their documents, following the same steps as the initial KYC completion.
4

Handle KYC manual review (contact support)

If GET /user/onboarding returns kyc_manual_review, the KYC provider has flagged the check for manual review. This is a non-recoverable state from the user’s side — no webSdkUrl is provided and the user cannot self-resolve it.
Display a clear message directing the user to contact the customer support. No further onboarding actions are available until the manual review is resolved.
5

Complete SOF

After completing the KYC process, the next steps is to proceed to the Source of Funds (SOF) verification step. Call the GET /user/onboarding, which will return the next required action to complete SOF verification along with the questions that need to be answered. Alternatively, retrieve the SOF questions directly using the GET / source-of-funds endpoint.
cURL
Once all SOF questions have been reviewed and answered by user, submit the responses through the POST /source-of-funds endpoint to complete this step of the onboarding process.
cURL

4. Account Setup

1

Check onboarding status

Check the user’s onboarding status using the GET /user/onboarding endpoint to determine if their KYC verification has been accepted. If the KYC is approved, the user status will transition to the following:
In next step, we will create GP spending safe wallet address.
2

Create GP Account

In this step, you will initiate the Gnosis Pay account provisioning and creation process. Call POST /user/account endpoint to create an account for the authenticated user.
cURL
Once the account provisioning begins, the onboarding status will be updated to waiting_account_setup state, indicating that the account is being set up in the system.
3

Retrieve Authenticated User

Call the GET /user endpoint to retrieve the full user profile, including their GP spending wallet address.
cURL