curl --request POST \
--url 'https://gateway.amana.io/onboarding/step/phone' \
--header 'Content-Type: application/json' \
--data '{
"sid": "<string>",
"phone": "<string>",
"countryCode": "<string>",
"requestId": "<string>"
}'
import requests
url = "https://gateway.amana.io/onboarding/step/phone"
headers = {"Content-Type": "application/json"}
payload = {
"sid": "<string>",
"phone": "<string>",
"countryCode": "<string>",
"requestId": "<string>"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.json())
const response = await fetch('https://gateway.amana.io/onboarding/step/phone', {
method: 'POST',
headers: {"Content-Type": "application/json"},
body: JSON.stringify({"sid": "<string>", "phone": "<string>", "countryCode": "<string>", "requestId": "<string>"}),
});
console.log(await response.json());
{
"otpRequestId": "<string>",
"status": "success",
"whatsapp": true,
"sms": true,
"email": true,
"telegram": true,
"nextStep": "otp"
}
{
"error": "INVALID_REQUEST",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
Onboarding & KYC
Sign-up step 5: phone
Save the user’s phone number and send a one-time code to it.
POST
/
onboarding
/
step
/
phone
curl --request POST \
--url 'https://gateway.amana.io/onboarding/step/phone' \
--header 'Content-Type: application/json' \
--data '{
"sid": "<string>",
"phone": "<string>",
"countryCode": "<string>",
"requestId": "<string>"
}'
import requests
url = "https://gateway.amana.io/onboarding/step/phone"
headers = {"Content-Type": "application/json"}
payload = {
"sid": "<string>",
"phone": "<string>",
"countryCode": "<string>",
"requestId": "<string>"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.json())
const response = await fetch('https://gateway.amana.io/onboarding/step/phone', {
method: 'POST',
headers: {"Content-Type": "application/json"},
body: JSON.stringify({"sid": "<string>", "phone": "<string>", "countryCode": "<string>", "requestId": "<string>"}),
});
console.log(await response.json());
{
"otpRequestId": "<string>",
"status": "success",
"whatsapp": true,
"sms": true,
"email": true,
"telegram": true,
"nextStep": "otp"
}
{
"error": "INVALID_REQUEST",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
Headers
string
Body
Content type:application/json
string
required
Sign-up session ID returned by the first sign-up step.
string
required
string
required
string
required
Response
200 Success.
string
enum<string>
Available options:
success, errorboolean
boolean
boolean
boolean
enum<string>
Available options:
otpPossible Errors
| Error | Possible cause | What to do |
|---|---|---|
| 400 | Invalid or missing field | Check the request against the schema. |
| 403 | IP not whitelisted, or account restricted | Confirm your IP is whitelisted; otherwise contact Amana. |
| 429 / 5xx | Rate limit, or temporary issue on our side | Retry with backoff; contact support if it persists. |
curl --request POST \
--url 'https://gateway.amana.io/onboarding/step/phone' \
--header 'Content-Type: application/json' \
--data '{
"sid": "<string>",
"phone": "<string>",
"countryCode": "<string>",
"requestId": "<string>"
}'
import requests
url = "https://gateway.amana.io/onboarding/step/phone"
headers = {"Content-Type": "application/json"}
payload = {
"sid": "<string>",
"phone": "<string>",
"countryCode": "<string>",
"requestId": "<string>"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.json())
const response = await fetch('https://gateway.amana.io/onboarding/step/phone', {
method: 'POST',
headers: {"Content-Type": "application/json"},
body: JSON.stringify({"sid": "<string>", "phone": "<string>", "countryCode": "<string>", "requestId": "<string>"}),
});
console.log(await response.json());
{
"otpRequestId": "<string>",
"status": "success",
"whatsapp": true,
"sms": true,
"email": true,
"telegram": true,
"nextStep": "otp"
}
{
"error": "INVALID_REQUEST",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
Last modified on October 8, 2026
