GET /phone to read the stored phone and countryCode.
This page documents both modes so you can follow the path that matches how you onboarded.
If you do not require phone OTP for your users
Pass the number in E.164 format asphone on the first POST /cards/virtual. That is how the phone is set. See Create Virtual Card.
If you require phone OTP for your users
Users must verify the number with SMS before it is stored.Onboarding
Phone verification is the last step of onboarding.GET /user/onboarding stays action_verify_phone until the phone is verified. Completing the OTP flow with POST /phone moves the status to completed. See Onboard to Gnosis Pay.
Requesting an OTP (and setting the phone the first time with POST /phone) requires KYC approved and an active account. Otherwise the API returns 422 KYC_NOT_APPROVED or 422 ACCOUNT_NOT_READY.
Add a verified phone
1
Send an OTP
Call
POST /phone/verification with the number in E.164 format. The user receives a 6-digit SMS code. Codes expire; requesting another code too soon returns 422 PHONE_OTP_RESEND_TOO_SOON.- Sandbox
- Production
cURL
2
Confirm the code
Call
POST /phone with { "code": "<6 digits>" }. phone is optional here; the number stored is the one that received the SMS. Omitting code returns 409 PHONE_VERIFICATION_REQUIRED.- Sandbox
- Production
cURL
Change a verified phone
Request a new OTP withPOST /phone/verification, then confirm with PATCH /phone and { "code": "<6 digits>" }. PATCH only updates an existing number: if the user has no phone yet, the response is 404 and the OTP is not consumed.
Change a phone without verification
CallPATCH /phone with the new number in E.164 format and omit code. If the user has no phone yet, the response is 404.
If you require phone OTP for your users, this call fails with
409 PHONE_VERIFICATION_REQUIRED. Use the OTP change flow above instead.- Sandbox
- Production
cURL