Get user token
curl --request POST \
--url https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2 \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"phoneNumber": "+5215521206703",
"countryCode": "MX"
}
'import requests
url = "https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2"
payload = {
"phoneNumber": "+5215521206703",
"countryCode": "MX"
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({phoneNumber: '+5215521206703', countryCode: 'MX'})
};
fetch('https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '+5215521206703',
'countryCode' => 'MX'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2"
payload := strings.NewReader("{\n \"phoneNumber\": \"+5215521206703\",\n \"countryCode\": \"MX\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"+5215521206703\",\n \"countryCode\": \"MX\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"+5215521206703\",\n \"countryCode\": \"MX\"\n}"
response = http.request(request)
puts response.read_body{
"userId": "OSZwErXgt1MGPHwkYJVqz3LTN0R2"
}{
"reason": "Missing or invalid phone number in request body."
}{
"reason": "Missing or invalid API key"
}{
"reason": "User not found for the given alias."
}{
"reason": "An unhandled error has occurred"
}Users
Get user token
Resolves and returns a RaaS user ID from a raw phone number.`
POST
/
auth
/
get-user-token-v2
Get user token
curl --request POST \
--url https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2 \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"phoneNumber": "+5215521206703",
"countryCode": "MX"
}
'import requests
url = "https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2"
payload = {
"phoneNumber": "+5215521206703",
"countryCode": "MX"
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({phoneNumber: '+5215521206703', countryCode: 'MX'})
};
fetch('https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '+5215521206703',
'countryCode' => 'MX'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2"
payload := strings.NewReader("{\n \"phoneNumber\": \"+5215521206703\",\n \"countryCode\": \"MX\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"+5215521206703\",\n \"countryCode\": \"MX\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://raas-partner-cv.nomas.cash/v1/auth/get-user-token-v2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"+5215521206703\",\n \"countryCode\": \"MX\"\n}"
response = http.request(request)
puts response.read_body{
"userId": "OSZwErXgt1MGPHwkYJVqz3LTN0R2"
}{
"reason": "Missing or invalid phone number in request body."
}{
"reason": "Missing or invalid API key"
}{
"reason": "User not found for the given alias."
}{
"reason": "An unhandled error has occurred"
}Authorizations
Body
application/json
User alias (phone with country code).
Resolve an existing user by phone or email for partner “get user token” style calls.
If both email and phoneNumber fields are sent in the same request, email takes precedence and phoneNumber will be ignored.
Response
200 — OK. User resolved; optional CIP fields depend on tenant.
Scenarios for this response (keep in sync with testing-sandbox.mdx):
| Scenario | How to reproduce | Typical code / body |
|---|---|---|
| Known user by phone or email | E.164 phoneNumber (with +) or email that already exists for the tenant; align countryCode with the number when you send it. | Success JSON: userId (and optional status / statusDetail). |
See also Full scenario matrix.
Successful user resolution for partner token endpoints (id + optional CIP snapshot).
User ID
Status of the user's CIP process
Available options: Completed, UpgradePending, UpgradeInProgress, UpgradeFailed, UpgradeSoftFailed, AccountUpgradeInProgress
Status detail of the user's CIP process
Available options:
None, InvalidAddress, InvalidEMail, UnreadableDoc, ProvideAdditionalInfo, InvalidPersonalData, OtpPrivacyMissing, OtpContractMissing, Compliance, ComplianceBlocked, OfacFailed