| No | Stack Technology | Link |
|---|---|---|
| 1 | Android Native | Link |
| 2 | IOS Native | Link |
| 3 | Flutter | Link |
| 4 | React Native | Link |
| 5 | Web Browser | Web Browser |
This sdk will generate META that will be used in the next step. As looked in the chart.
Whitelist IP is used to secure your API from unauthorized access. You can whitelist your IP in here.
BASE URL IS : https://api.fazpass.com
URL: /v2/trusted-device/check
Check device status & user. This endpoint also an initiation for other endpoint.
"pic_id":"anvarisy@gmail.com/62851++++",
"meta":"encrypted"
"merchant_app_id":"7a8s7sadad7a7gas77das7899089as8dasd"URL: /v2/trusted-device/enroll
Registering user and device as an authenticated user
"pic_id":"anvarisy@gmail.com/62851++++",
"meta":"encrypted",
"merchant_app_id":"com.tokopedia.tkpd",
"challenge":"id"/v2/trusted-device/validate
Validating user and device, this will return score and confidence level of security level.
"fazpass_id":"fazpass_id",
"meta":"encrypted",
"merchant_app_id":"com.tokopedia.tkpd",
"challenge":"id"/v2/trusted-device/remove
Remove this user & device from authenticated user
"fazpass_id":"fazpass_id",
"meta":"encrypted",
"merchant_app_id":"com.tokopedia.tkpd",
"challenge":"id"/v2/trusted-device/send/notification
Send notification into connected device that already trusted
"pic_id":"",
"merchant_app_id":"7a8s7sadad7a7gas77das7899089as8dasd",
"meta":"",
"selected_device":"device_id"/v2/trusted-device/validate/notification
Verify if the received notification is valid or not, this will auto enroll user that request send notification.
"notification_id":"",
"merchant_app_id":"7a8s7sadad7a7gas77das7899089as8dasd",
"meta":"",
"result":true/false/v2/trusted-device/remove/another-device Remove linked device from trusted device
{
"fazpass_id": "17d82ff72ec9343c9fb04a4965265377f144d5ea862737dc",
"merchant_app_id": "{{APP_ID}}",
"meta": "{{META_STAGING_UGLY}}",
"selected_device": "c519a31b-839f-4e33-9bfc-5b64fe38593f",
"challenge":"95e2c319-4d94-4f5b-bb55-d43ed03a13cc"
}After you call the API, you will get the response. This should like this
"status":true,
"code":200
"data":{
"meta":""
}Meta is an object that contains information about the user's device.
{
"identification":{
"data":{
"trx_id":"",
"challenge":"UUID",
"fazpass_id":"fazpass_id",
"confidence": {
"score": 170,
"level": "LOW"
},
"is_active":true/false,
"time_stamp":353666389900000,
"platform":"android/ios",
"application":"com.fazpass.app"
}
},
"features":{
"data":{
"version":"",
"device_intelligence":true/false
}
},
"root":{
"data":{
"result":true/false
}
},
"emulator":{
"data":{
"result":true/false
}
},
"tempering":{
"data":{
"result":true/false
}
},
"clonning":{
"data":{
"result":true/false
}
},
"screen_sharing":{
"data":{
"result":true/false
}
},
"debuging":{
"data":{
"result":true/false
}
},
"device_information":{
"data":{
"id": "1779c4c7-a526-4eee-aeb1-d1a5df92d9e0",
"name":"Samsung",
"os_version":"Q",
"series":"A30",
"cpu":"Mediatek",
"reset_time":""
}
},
"sim_information":{
"data":
[
{
"sim_operator":"",
"sim_serial":""
},
{
"sim_operator":"",
"sim_serial":""
}
]
},
"biometric":{
data:{
"level":"LOW/HIGH",
"is_changed":false/true,
"is_available":true/false
}
},
"gps_information":{
"data":{
"lat":"2.90887363",
"lng":"2.90887363",
"is_spoofed":true/false,
"distinct": {
"time":"",
// On Km
"distance":"8.0"
}
}
},
"linked_devices":{
"data":[
{
"id": "c519a31b-839f-4e33-9bfc-5b64fe38593f",
"name": "vivo",
"os_version": "Android 27",
"series": "vivo 1816",
"cpu": "MT6762V/WR",
"enrolled_date": "2024-01-01T05:14:38.606Z"
}
]
},
"ip_information":{
"data":{
"ip_address":"127.0.0.1",
"geolocation":{
"lat":2.90887363,
"lng":2.90887363,
"country":"Indonesia",
"prefix":"",
"state_province": "West Java",
"district": "Kota Bogor",
"city": "Bogor",
"time_zone": "Asia/Jakarta",
}
"asn":{
"number":9876,
"name":"",
},
"isp":{
"name":""
},
"connection":{
"type":"hosting/line/etc",
"usage":"consumer"
},
}
}Contains key user identification information.
Fields:
- trx_id (String): Transaction ID for tracking specific transactions.
- challenge (UUID): UUID for user verification challenges.
- fazpass_id (String): Unique Fazpass ID for user identification.
- scoring (Float): Trust score, e.g., 90.0.
- risk_level (String): User risk level, can be
"HIGH"or"LOW". - is_active (Boolean): User active status,
trueif active. - time_stamp (Long): Timestamp in milliseconds.
- platform (String): Platform used,
"android"or"ios". - application (String): Application package name, e.g.,
"com.fazpass.app".
Contains information on device features.
Fields:
- version (String): SDK version used.
- device_intelligence (Boolean): Indicates if device intelligence detection is active.
Detects if the device is rooted.
Fields:
- result (Boolean):
trueif root is detected.
Checks if the app is running on an emulator.
Fields:
- result (Boolean):
trueif an emulator is detected.
Indicates any system or application tempering.
Fields:
- result (Boolean):
trueif tempering is detected.
Detects if the app is a cloned version.
Fields:
- result (Boolean):
trueif the app is a cloned version.
Detects if screen sharing is active.
Fields:
- result (Boolean):
trueif screen sharing is detected.
Detects if the app is in debug mode.
Fields:
- result (Boolean):
trueif debugging is active.
Contains detailed device information.
Fields:
- id (UUID): Unique device ID.
- name (String): Brand name, e.g.,
"Samsung". - os_version (String): OS version, e.g.,
"Q". - series (String): Device series, e.g.,
"A30". - cpu (String): CPU details, e.g.,
"Mediatek". - reset_time (time): latest factory reset time of device, e.g.,
"2024-10-08T07:31:34Z".
SIM card details for the device.
Fields:
- sim_operator (String): SIM operator name.
- sim_serial (String): SIM serial number.
Device biometric status.
Fields:
- level (String): Biometric security level, can be
"LOW"or"HIGH". - is_changed (Boolean):
trueif biometric status has changed. - is_available (Boolean):
trueif biometrics are available.
GPS and location data of the device.
Fields:
- lat (String): Latitude of the device.
- lng (String): Longitude of the device.
- is_spoofed (Boolean):
trueif location spoofing is detected. - distinct (Object):
- time (String): Time of the location difference.
- distance (Float): Distance of location change in kilometers.
Contains information on devices previously linked.
Fields:
- id (UUID): Unique ID of the linked device.
- name (String): Name of the linked device, e.g.,
"vivo". - os_version (String): OS version of the linked device.
- series (String): Device series.
- cpu (String): Device CPU details.
- Enrolled_date (ISO Date): Enrollment date of the linked device.
Provides network and IP-based location data.
Fields:
- ip_address (String): IP address of the user.
- geolocation (Object):
- lat (Double/Float): Latitude of the IP location.
- lng (Double/Float): Longitude of the IP location.
- country (String): Country of the IP.
- prefix (String): IP prefix.
- state_province (String): State or province of the IP.
- district (String): District of the IP.
- city (String): City of the IP.
- timeZone (String): Time zone of the IP location.
- asn (Object):
- number (Integer): ASN number.
- name (String): ASN name.
- isp (Object):
- name (String): ISP name of the user.
- connection (Object):
- type (String): Connection type, e.g.,
"hosting". - usage (String): Usage type, e.g.,
"consumer".
- type (String): Connection type, e.g.,
| Error Name | Combined Code | Explanation |
|---|---|---|
| ErrGeneral | 50000 | General error with HTTP 500 Internal Server Error code. |
| ErrInvalidToken | 50012 | Token is invalid with HTTP 500 code. |
| ErrExpiredToken | 50013 | Token is expired with HTTP 500 code. |
| ErrInvalidMerchantId | 50014 | Invalid merchant ID with HTTP 500 code. |
| ErrGatewayDoesNotExists | 40001 | Gateway does not exist with HTTP 400 Bad Request code. |
| ErrInvalidOtp | 40002 | OTP is not valid with HTTP 400 code. |
| ErrInvalidRequest | 40003 | Invalid request with HTTP 400 code. |
| ErrMerhantAppNotFound | 40404 | Merchant app not found with HTTP 404 Not Found code. |
| ErrInvalidKey | 40005 | Invalid key with HTTP 400 code. |
| ErrMerchantRule | 40006 | Rule not set with HTTP 400 code. |
| ErrStoreEndUser | 50007 | End user failed to save with HTTP 500 code. |
| ErrStoreDevice | 50008 | Device failed to save with HTTP 500 code. |
| ErrStoreUserApp | 50009 | User app failed to save with HTTP 500 code. |
| ErrLogActivity | 50010 | Log activity failed to save with HTTP 500 code. |
| ErrUpdateUserApp | 50011 | Update user app failed with HTTP 500 code. |
| ErrSaveKey | 50015 | Save key failed with HTTP 500 code. |
| ErrStoreMerchantApp | 50016 | Store merchant app failed with HTTP 500 code. |
| ErrFazpassIdNotFound | 40417 | Fazpass ID not found with HTTP 404 code. |
| ErrFazpassIdNotActive | 40018 | Fazpass ID not active with HTTP 400 code. |
| ErrStorMerchantRule | 50019 | Store merchant rule failed with HTTP 500 code. |
| ErrEcrypte | 50020 | Error in encryption with HTTP 500 code. |
| ErrDecprypte | 50021 | Error in decryption with HTTP 500 code. |
| ErrKeyNotExist | 50022 | Key does not exist with HTTP 500 code. |
| ErrGetAllMercahntApp | 50023 | Error getting all merchant app with HTTP 500 code. |
| ErrStatusMerchantApp | 50024 | Invalid status of merchant app with HTTP 500 code. |
| ErrGetAllLoActivityEndUser | 50025 | Error getting all activity by user with HTTP 500 code. |
| ErrUpdateMerchantApp | 50026 | Update merchant app failed with HTTP 500 code. |
| ErrRevokeDeviceUser | 50027 | Error revoke device user with HTTP 500 code. |
| ErrPackageIsExist | 40028 | Package already exists with HTTP 400 code. |
| ErrWhiteListIp | 40029 | IP not registered with HTTP 400 code. |
| ErrFcmToken | 40030 | FCM token update failed with HTTP 400 code. |
| ErrNotifiableNotRegister | 40031 | Device cannot send notification with HTTP 400 code. |
| ErrDeviceNotFound | 40032 | Device not found with HTTP 400 code. |
| ErrDeviceNotFoundNotregister | 40033 | Device not found or app not registered with HTTP 400 code. |
| ErrSendNotification | 40034 | Error sending notification with HTTP 400 code. |
| ErrValidationExpired | 40035 | Validation notification expired with HTTP 400 code. |
| ErrAlreadyValidation | 40036 | Validation already done with HTTP 400 code. |
| ErrValidationNo | 40037 | Validation response no with HTTP 400 code. |
| ErrFileAuthFormatMustBeP8 | 40038 | File auth format must be .p8 with HTTP 400 code. |
| ErrUploadFileAuthKey | 40039 | Upload file auth key failed with |







