1. Authentication
Get access token
To get access token, please go through the authentication guide here.
2. User Registration
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.- Sandbox
- Production
cURL
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.- Sandbox
- Production
cURL
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:| Status | Description | User Action Required |
|---|---|---|
action_accept_tos | Terms of Service acceptance required - user registered but hasn’t accepted required terms | Review and accept Terms of Service |
waiting_kyc_setup | KYC initialization in progress - all terms accepted, KYC process being set up | Wait for KYC setup completion |
action_complete_kyc | KYC verification pending - KYC check created but pending user completion | Complete KYC verification via Sumsub webSdkUrl |
action_kyc_contact_support | KYC provider flagged the check as requiring manual review — this is a non-recoverable state from the user’s side | Contact support |
action_kyc_resubmission_requested | KYC provider has requested the user resubmit their KYC documents — a new Sumsub session URL is provided | Re-complete KYC verification via Sumsub using the provided webSdkUrl |
action_complete_sof | Source of Funds questionnaire required - KYC approved, SOF answers needed | Answer Source of Funds questionnaire |
action_create_account | Ready for account creation - KYC approved and SOF completed | Proceed with account creation |
waiting_account_setup | Account provisioning in progress - account is being set up in the system | Wait for account setup completion |
completed | Onboarding complete - account is active with cardholder ID | Start using the platform |
rejected | Onboarding rejected - account is blocked, closed, or KYC verification failed | Contact support or retry if applicable |
- Sandbox
- Production
cURL
Accept Terms of Service (ToS)
At this point, the user is registered in the Gnosis Pay system and has an associated Submit the accepted Terms of Service via the You can check the status of the user’s acceptance of the Terms of Service via the
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 currentTerms of Service that users must agree to before continuing with the onboarding process via the endpoint GET /terms.- Sandbox
- Production
cURL
POST /user/terms endpoint.- Sandbox
- Production
cURL
GET /user/terms endpoint.- Sandbox
- Production
cURL
3. KYC Process
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.Complete KYC
- Sandbox
- Production
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.To complete the verification process:
As you are in the sandbox environment, you can use fake documents or use one provided by Sumsub.
- Open an iframe with the provided
webSdkUrl - Use the verification document templates for Proof of Identity (POI) and Proof of Address (POA)
- Complete the liveness check as prompted
Handle KYC resubmission request
If Open the Sumsub iframe again with the provided
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:webSdkUrl and have the user resubmit their documents, following the same steps as the initial KYC completion.Handle KYC manual review (contact support)
If
GET /user/onboarding returns action_kyc_contact_support, 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.Complete SOF
After completing the KYC process, the next steps is to proceed to the Source of Funds (SOF) verification step. Call the Once all SOF questions have been reviewed and answered by user, submit the responses through 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.- Sandbox
- Production
cURL
POST /source-of-funds endpoint to complete this step of the onboarding process.- Sandbox
- Production
cURL
4. Account Setup
Check onboarding status
Check the user’s onboarding status using the In next step, we will create GP spending safe wallet address.
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:Create GP Account
In this step, you will initiate the Gnosis Pay account provisioning and creation process. Call Once the account provisioning begins, the onboarding status will be updated to
POST /user/account endpoint to create an account for the authenticated user.- Sandbox
- Production
cURL
waiting_account_setup state, indicating that the account is being set up in the system.Retrieve Authenticated User
Call the
GET /user endpoint to retrieve the full user profile, including their GP spending wallet address.- Sandbox
- Production
cURL