Sandbox mock responses

Get deterministic responses from our Sandbox environment when using the mock mode, according to the following guidelines.

Using the Sandbox on mock mode

You can use the Sandbox environment in mock mode to get deterministic responses. This is useful for testing and development purposes, as it allows you to simulate API responses without making requests from an actual mobile device.

Learn more about usage modes

Mock responses

When using the Sandbox in mock mode, the following rules apply:

Number Verification

InputResponse StatusResponse Body
phoneNumber ends in 1200devicePhoneNumberVerified: true
phoneNumber ends in 2200devicePhoneNumberVerified: false
phoneNumber ends in 3...0200devicePhoneNumberVerified: random (depends on request timestamp being even or odd)

QoD (v0.10) create session

InputResponse StatusResponse Body
device > networkAccessIdentifier / phoneNumber / ipv4Address / ipv6Address ends in 9409code: "CONFLICT"
message: "Another session is created for the same UE"
duration Not in range 1...86400 seconds400message: error on duration not in range
Valid input201Provided input adding: sessionId, startedAt, expiresAt, qosStatus, messages

SIM Swap

Check operation

InputResponse StatusResponse Body
phoneNumber ends in 1200simSwapped: true
phoneNumber ends in 2200simSwapped: false
phoneNumber ends in 3...0200simSwapped: random (depends on request timestamp being even or odd)

Retrieve date

InputResponse StatusResponse Body
phoneNumber ends in 9409code: "CONFLICT"
message: "Another request is created for the same phone number"
phoneNumber ends in 0...8200latestSimChange: "2024-01-14T13:16:33.167Z"

Device Location Verification (v0.2)

InputResponse StatusResponse Body
device > networkAccessIdentifier / phoneNumber / ipv4Address / ipv6Address ends in 4404message: Device not found
maxAge included and > 14400404message: Device not found in the given maxAge
maxAge not included
center > latitude round to integer ends in 0
200verificationResult: "UNKNOWN"
maxAge included
center > latitude round to integer ends in 0
200verificationResult: "UNKNOWN"
lastLocationTime: (30 minutes + maxAge) to now
center > latitude round to integer ends in 1200verificationResult: "PARTIAL"
lastLocationTime: (30 minutes + maxAge) to now
matchRate: something between 50 if radius=2 and 99 if radius=200
center > latitude round to integer is even200verificationResult: "TRUE"
center > latitude round to integer is odd200verificationResult: "FALSE"

Device Status (v0.4)

InputResponse StatusResponse Body
ueId > externalId / msisdn / ipv4addr / ipv6addr ends in 1200roaming: true
ueId > externalId / msisdn / ipv4addr / ipv6addr ends in 2200roaming: false
ueId identifier ends in 3...0200roaming: random (depends on request timestamp being even or odd)

Know Your Customer (KYC) Match (v0.2)

InputResponse StatusResponse Body
Any invalid input400message: Details on the invalid input value
Valid input200For every input value, response includes...
match: boolean
matchScore: 0...100 (only for some keys)
Those will be the result of matching the request data with a mock user persona

KYC Age Verification (v0.1)

For this API, the rules's input is the login_hint parameter, which is used to retrieve the access token used to authenticate the request (not directly as a request parameter). The response will be based on the last digit of the login_hint.

It will determine which mock user persona is used to verify the age of the user, by comparing the ageThreshold in the request body with the user's age.

InputResponse StatusResponse Body
login_hint is even200ageCheck: Result of verifying the ageThreshold for a mock user born in June 10th, 2004
login_hint is odd200ageCheck: Result of verifying the ageThreshold for a mock user born in January 31st, 1971

KYC Tenure (v0.1)

For this API, the rules's input is the login_hint parameter, which is used to retrieve the access token used to authenticate the request (not directly as a request parameter). The response will be based on the last digit of the login_hint.

It will determine which mock user persona is used to verify the line holding tenure, by comparing the tenureDate in the request body with the user's tenure.

InputResponse StatusResponse Body
login_hint is even200tenureDateCheck: Result of verifying the tenureDate for a mock user with a tenure start date of April 30th, 2025
login_hint is odd200tenureDateCheck: Result of verifying the tenureDate for a mock user with a tenure start date of December 30th, 2023

Scam Signal (v0.2)

InputResponse StatusResponse Body
phoneNumber is even200callInProgress: false
phoneNumber is odd200callInProgress: true
callStartTime: "2023-07-03T12:27:08.312Z"