curl --request GET \
--url 'https://gateway.amana.io/uaepass/callback'
import requests
url = "https://gateway.amana.io/uaepass/callback"
headers = {}
response = requests.request("GET", url, headers=headers)
print(response.json())
const response = await fetch('https://gateway.amana.io/uaepass/callback', {
method: 'GET',
headers: {},
});
console.log(await response.json());
{
"access_token": "<string>",
"crmAccessToken": "<string>",
"manualLinkingToken": "<string>",
"newAccount": true
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
UAE Pass sign-in
Handle UAE Pass callback
Exchange the UAE Pass authorization code for the user’s details after they return from UAE Pass.
GET
/
uaepass
/
callback
curl --request GET \
--url 'https://gateway.amana.io/uaepass/callback'
import requests
url = "https://gateway.amana.io/uaepass/callback"
headers = {}
response = requests.request("GET", url, headers=headers)
print(response.json())
const response = await fetch('https://gateway.amana.io/uaepass/callback', {
method: 'GET',
headers: {},
});
console.log(await response.json());
{
"access_token": "<string>",
"crmAccessToken": "<string>",
"manualLinkingToken": "<string>",
"newAccount": true
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
UAE Pass sign-in is only for users in the UAE.
Query parameters
string
Authorization code returned by UAE Pass
string
Session state returned by UAE Pass
string
Error code if user denied access
Response
200 Success.
string
string
CRM access token, only returned if the user needs manual linking
string
The secret key that will be passed to manual linking API.
boolean
Indicates whether this is a new account (signup) or existing account (login)
Possible Errors
| Error | Possible cause | What to do |
|---|---|---|
| 400 | Invalid or missing field | Check the request against the schema. |
| 401 | Token missing or expired | Log in again or use the refresh token. |
| 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 GET \
--url 'https://gateway.amana.io/uaepass/callback'
import requests
url = "https://gateway.amana.io/uaepass/callback"
headers = {}
response = requests.request("GET", url, headers=headers)
print(response.json())
const response = await fetch('https://gateway.amana.io/uaepass/callback', {
method: 'GET',
headers: {},
});
console.log(await response.json());
{
"access_token": "<string>",
"crmAccessToken": "<string>",
"manualLinkingToken": "<string>",
"newAccount": true
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>"
}
{
"error": "<string>",
"message": "<string>",
"details": {}
}
Last modified on October 8, 2026
