How to onboard new Users to Gnosis Pay.
jwt
, you’ll need it for all the next steps.
jwt
token, it’s time to register your user in the Gnosis Pay system.
userId
, your user is already registered.GET /api/v1/user
. If you get a 401 Unauthorized Error
, the user isn’t registered yet.team@gnosispay.com
and is valid for 5 minutes.partnerId
, which is a unique identifier for your app that has been communicated to you. This is the only place where you need to include it in the request.referralCouponCode
, you can include it here too.kycStatus
(check it with GET /api/v1/user
).
Here are the different KYC statuses you might see, and what they mean for your user:
KYC Status | Description | What your user should do |
---|---|---|
notStarted | No KYC process started | Start KYC |
documentsRequested | Applicant must upload documents. Status moves to pending when done. | Upload documents |
pending | Awaiting verification processing | Nothing—just wait! |
processing | Profile is being processed | Nothing—system is checking |
approved | All verification checks passed | Nothing—KYC is complete |
resubmissionRequested | Some checks failed; user can re-submit required steps | Re-submit documents |
rejected | Final rejection; user cannot try again | Nothing (final rejection) |
requiresAction | Manual check required by our team | Wait or contact support |
kycStatus
is notStarted
or documentsRequested
.kycStatus
from the user endpoint, and act if users are in certain states.Provide a way to contact your support if the kycStatus
is:requiresAction
rejected
pending
processing
resubmissionRequested
approved
, you can move on to the next step.userId
is present in the JWT)kycStatus
is approved
isSourceOfFundsAnswered
on the user endpoint response is false
userId
in JWT)kycStatus
is approved
isPhoneValidated
is false
in the user endpoint responseisPhoneValidated
will be true
.POST /api/v1/account
)POST /api/v1/safe/set-currency
)GET /api/v1/account/signature-payload
)PATCH /api/v1/account/deploy-safe-modules
)userId
in JWT)kycStatus
is approved
isSourceOfFundsAnswered
is true
isPhoneValidated
is true
safeWallet
is an empty array in the user endpoint responsedeployed: true
if it worked, and a transactionHash
you can use to track it.safeWallet
from the user response from GET /api/v1/user
endpoint won’t be empty anymore.tokenSymbol
and fiatSymbol
are null
in the response from GET /api/v1/safe-config
.accountStatus
is null
in the response from GET /api/v1/safe-config
.accountStatus
is a number that is not 0
in the response from GET /api/v1/safe-config
. accountStatus: 0
would mean that the Safe modules are already deployed.@gnosispay/account-kit
to have a handy AccountIntegrityStatus
enum.AccountIntegrityStatus.Ok
, which is 0
, means that the Safe modules are already deployed.AccountIntegrityStatus.DelayQueueNotEmpty
, which is 7
, means the module is deployed correctly, but the Safe has a pending transaction, which could happen later on.accountStatus
field will be 0
in the safe config response.