Request
Getting Started
What is Fazpass? We are a company that is focused to help you guys to simplify the integration process for OTP verification, by bringing OTP aggregator as our services.
What is OTP aggregator ? OTP aggregator is a service that capable to simplify your integration process by only one time writing a code, you can easily jump from one platform to another, jumping from SMS OTP into Misscall OTP or Whatsapp OTP or other platform by only one click in our dashboard.
Each platform will have the possibility of more than 1 vendor. What is a vendor? vendor is a service from 1 or more companies that have specific services for each platform.
Pre Acquired
Before you can use all the services in fazpass, such as OTP, misscall and verification you must have merchant_key (Token) for accessing fazpass API. you can get merchant_key (Token) by registering here for our production.we will send it to you by email, you will get email for the detailed access. If you have a problem, you can ask directly for our live support here. to accessing our dashboard, you can go here for Production env
Note : You need to use merchant_key (Token) for every API / Services you use
To use Fazpass API you need authentication using merchant_key (Token) . That can be done by setting the Authorization HTTP header. Please refer to the detail below for further information about how and where the Authorization can be implemented.
Authorization: {{type}} {{Token}}
type = Bearer Token
Token = merchant_key
Integration Flow
-
Admin Side
On the Admin side, the admin should do few things before the engineer can implement the API correctly. in this part, we will guide you, how to setup a gateway before you the engineer can integrate and use the Generate and verification API
- Admin login to Fazpass dashboard
-
Admin go to proxy menu
- Admin Add new gateway
-
Admin fill the form
Field Description Gateway Your gateway name Channel Name Select otp channel (misscall, SMS,email, whatsapp,etc) Select Provider Name Select your desire provider e.x : Citcall Subject / title user for email OTP title (will be ignored for SMS,whatsapp and miss call) Message Custom your message, please ensure use “{OTP}” to insert generate OTP in between your custom message (will be ignored for miss call and official whatsapp) OTP Length min 4 max 8 Note / purpose purpose for the gateway e.x login, register, transaction, etc Credential key If you have a special price from the provider, feel free to insert a credential key here. Enable gateway set gateway enable by clicking it - Save the data
This step for the admin is finished. and the engineer can start integration in the API side
-
Engineering Side
On the engineering side, you as engineer will integrate Fazpass API in a view step.
- Login to dashboard
- Go to proxy menu
-
See the gateway purpose and gateway key
If you get the gateway key, you can start to integrate the Fazpass OTP using API generate and then validate it using API verification
Before we jump to API, this is endpoint env for our setup
HTTP Request Endpoint
This Request Endpoint is needed for your integration process so that your system can request OTP through Fazpass services
Base URL https://api.fazpass.com/
API Request OTP
This Api will allow you to send OTP from any provider selected in the gateway with the OTP being masked. so we will generate and mask the OTP and send it to the user. and the user will verify it.
POST {base_url}/v1/otp/request
{
"Email": "Your Email", (optional)
"phone": "Your Phone",
"gateway_key": "gateway from dashboard"
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description | Status |
---|---|---|---|
Json Type | Raw | JSON method needed to use in the body | required |
phone | string | end-user mobile number | required |
gateway key | string | input with gateway key from the dashboard | required |
Request response example for SMS
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
Request response example for Whatsapp
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
For Whatsapp official if the number is new to the agregator system, they will check if the number have an association with whatsapps or not. if the checking success, then you need to HIT AGAIN to send the OTP.
Request response example for Misscall
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Prefix | Number | Prefix used for phone call |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
Request response example for Email
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
API Validate OTP
You will need to implement this API to verified the Requested OTP from above API
POST {base_url}/v1/otp/verify
{
"otp_id": "your OTP ID",
"otp":"OTP inputed from user"
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description |
---|---|---|
OTP ID | String | OTP id generated from request API |
OTP | Number | OTP number inserted by user |
Responses | Description |
---|---|
OTP Invalid | Data otp tidak ditemukan |
OTP Expired | OTP sudah kadaluarsa |
OTP has been verified | OTP sudah diverifikasi sebelum nya atau verifikasi ke dua kalinya |
OTP validation for SMS,Email and Whatsapp
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
OTP validation for Miss Call
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
MISC
this section will redirect you if you have other flow implemented in your system.
If you already create an OTP generator and verification you can read this document for further information.
If you already have the verification system but you want fazpass to generate and send your OTP you can read this document for further information.
for other function in admin dashboard, you can refer to this document
we also have ui/ux suggestion in the bellow section of this document
UI / UX SUGGESTION
Our services will provide many service methods for you to verify your user. As for flexibility, there will be some different methods in the UI or UX for your application. In this section we will give some suggestions for the UI or UX of the application regardless of the OTP verification based on what method you will use.
Our Services may consist of SMS, Whatsapp, miss call, email and other user verification methods. these services need different UI in the implementation especially for miss calls.
How to determine what UI or UX to use? In the previous section, after your engineer integrates the “Request API” every time you call the API, your system will get a response like shown below.
In the response you will see our services will give you response parameters such as ID, OTP(masked), OTP_lenght and CHANNEL. As you can see, the CHANNEL parameter will be filled with “what method you use for verification” and you will be able to determine what kind of UI or UX to use based on what channel.
Channel response list
Name | Purpose |
---|---|
sms | this mean you use SMS as sending method for the OTP |
misscall | this mean you use miss call as sending method for the OTP |
this mean you use official whatsapp channel as sending method for the OTP | |
WhatsApp Long Number | this mean you use unofficial whatsapp channel / long number whatsapp version as sending method for the OTP |
this mean you use email as sending method for the OTP |
Custome Personalize Messages
if you need to more personalize message such as you need to add name by adding “parameter_1” to your api and dashboard like what shown bellow
POST {base_url}/v1/otp/request
{
"Email": "Your Email", (can be empty)
"phone": "Your Phone", (can be empty)
"gateway_key": "gateway from dashboard"
"params": [
{
"tag": "parameter_1",(optional)
"value": "value 1"
},
{
"tag": "parameter_2", (optional)
"value": "value 2"
}
]
}
Note : this custom personalize will only work for sms, email and WA long number
UI suggest
For miss call we suggest following ui to implement
For sms / WA we suggest following ui to implement
or Email we suggest following ui to implement
Generate
Getting Started
If you read this document, you might have read the “request api” document before. if you are not yet read it, you can read it here.
Each platform will have the possibility of more than 1 vendor. What is a vendor? vendor is a service from 1 or more companies that have specific services for each platform.
Pre Acquired
Before you can use all the services in fazpass, such as OTP, misscall and verification you must have merchant_key (Token) for accessing fazpass API. you can get merchant_key (Token) by registering here for our production. we will send it to you by email, you will get email for the detailed access. If you have a problem, you can ask directly for our live support here. to accessing our dashboard, you can go here for Production env
Note : You need to use merchant_key (Token) for every API / Services you use
To use Fazpass API you need authentication using merchant_key (Token) . That can be done by setting the Authorization HTTP header. Please refer to the detail below for further information about how and where the Authorization can be implemented.
Authorization: {{type}} {{Token}}
type = Bearer Token
Token = merchant_key
HTTP Generate Endpoint
This Request Endpoint is needed for your integration process so that your system can request OTP through Fazpass services
Base URL https://api.fazpass.com/
API Generate OTP
Before you guys can use api generate, you must set a gateway in the dashboard. You can read how to set the gateway in the dashboard here.
This Api will allow you to send OTP from any provider selected in the gateway with the OTP generated from our system with no masking. We will send it to the user. and the user will verify it.
POST {base_url}/v1/otp/generate
{
"Email": "Your Email",(optional)
"phone": "Your Phone",
"gateway_key": "gateway from dashboard"
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description | Status |
---|---|---|---|
Json Type | Raw | JSON method needed to use in the body | required |
phone | string | end-user mobile number | required |
gateway key | string | input with gateway key from the dashboard | required |
OTP | Number | input your generated OTP number | required |
Generate OTP SMS
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
Generate OTP Whatsapp
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
note : For Whatsapp official if the number is new to the agregator system, they will check if the number have an association with whatsapps or not. if the checking success, then you need to HIT AGAIN to send the OTP.
Generate OTP Misscall
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Prefix | Number | Prefix used for phone call |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
Generate OTP Email
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
API Validate OTP (optional)
If you already have the verification system, you can choose either implement this verification API or you can just skip it.
IF you guys skip this API, you won’t get any statistics regarding OTP send statistics, validation success statistics and you can’t use automatic vendor switcher. But if you implement our verification API, you can see and get all data and you can use our automatic switcher feature.
POST {base_url}/v1/otp/verify
{
"otp_id": "your OTP ID",
"otp":"OTP inputed from user"
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description |
---|---|---|
OTP ID | String | OTP id generated from request API |
OTP | Number | OTP number inserted by user |
OTP validation for SMS and Whatsapp
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
OTP validation for Miss Call
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Channel Response List
Name | Purpose |
---|---|
sms | this mean you use SMS as sending method for the OTP |
misscall | this mean you use miss call as sending method for the OTP |
this mean you use official whatsapp channel as sending method for the OTP | |
WhatsApp Long Number | this mean you use unofficial whatsapp channel / long number whatsapp version as sending method for the OTP |
this mean you use email as sending method for the OTP |
Custome Personalize Messages
if you need to more personalize message such as you need to add name by adding “parameter_1” to your api and dashboard like what shown bellow
POST {base_url}/v1/otp/request
{
"Email": "Your Email", (can be empty)
"phone": "Your Phone", (can be empty)
"gateway_key": "gateway from dashboard"
"params": [
{
"tag": "parameter_1",(optional)
"value": "value 1"
},
{
"tag": "parameter_2", (optional)
"value": "value 2"
}
]
}
Note : this custom personalize will only work for sms, email and WA long number
Send
Getting Started
If you read this document, you might have read the “request api” document before. if you are not yet read it, you can read it here.
Each platform will have the possibility of more than 1 vendor. What is a vendor? vendor is a service from 1 or more companies that have specific services for each platform.
Pre Acquired
Before you can use all the services in fazpass, such as OTP, misscall and verification you must have merchant_key (Token) for accessing fazpass API. you can get merchant_key (Token) by registering here for our production.we will send it to you by email, you will get email for the detailed access. If you have a problem, you can ask directly for our live support here. to accessing our dashboard, you can go here for Production env
Note : You need to use merchant_key (Token) for every API / Services you use
To use Fazpass API you need authentication using merchant_key (Token) . That can be done by setting the Authorization HTTP header. Please refer to the detail below for further information about how and where the Authorization can be implemented.
Authorization: {{type}} {{Token}}
type = Bearer Token
Token = merchant_key
HTTP Send Endpoint
This Request Endpoint is needed for your integration process so that your system can request OTP through Fazpass services
Base URL https://api.fazpass.com/
API Send OTP
Before you guys can use api send, you must set a gateway in the dashboard. You can read how to set the gateway in the dashboard here.
This Api will allow you to send OTP from any provider selected in the gateway with the OTP generated from your system. We will send it to the user. and the user will verify it.
NOTE : THIS METHOD NOT SUPPORT FOR MISSCALL
POST {base_url}/v1/otp/send
{
"phone": "Yourphone",
"gateway_key": "gateway from dashboard",
"otp": "123456"
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description | Status |
---|---|---|---|
Json Type | Raw | JSON method needed to use in the body | required |
phone | string | end-user mobile number | required |
gateway key | string | input with gateway key from the dashboard | required |
OTP | Number | input your generated OTP number | required |
Send OTP SMS
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
Send OTP Whatsapp
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
OTP Length | Number | OTP length set from dashboard |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
note : For Whatsapp official if the number is new to the agregator system, they will check if the number have an association with whatsapps or not. if the checking success, then you need to HIT AGAIN to send the OTP.
API Validate OTP (optional)
If you already have the verification system, you can choose either implement this verification API or you can just skip it.
IF you guys skip this API, you won’t get any statistics regarding OTP send statistics, validation success statistics and you can’t use automatic vendor switcher. But if you implement our verification API, you can see and get all data and you can use our automatic switcher feature.
POST {base_url}/v1/otp/verify
{
"otp_id": "your OTP ID",
"otp":"OTP inputed from user"
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description |
---|---|---|
OTP ID | String | OTP id generated from request API |
OTP | Number | OTP number inserted by user |
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Channel Response List
Name | Purpose |
---|---|
sms | this mean you use SMS as sending method for the OTP |
misscall | this mean you use miss call as sending method for the OTP |
WhatsApp (coming soon) | this mean you use official whatsapp channel as sending method for the OTP |
WhatsApp Long Number (coming soon) | this mean you use unofficial whatsapp channel / long number whatsapp version as sending method for the OTP |
email (coming soon) | this mean you use email as sending method for the OTP |
Custome Personalize Messages
if you need to more personalize message such as you need to add name by adding “parameter_1” to your api and dashboard like what shown bellow
POST {base_url}/v1/otp/request
{
"Email": "Your Email", (can be empty)
"phone": "Your Phone", (can be empty)
"gateway_key": "gateway from dashboard"
"params": [
{
"tag": "parameter_1",(optional)
"value": "value 1"
},
{
"tag": "parameter_2", (optional)
"value": "value 2"
}
]
}
Note : this custom personalize will only work for sms, email and WA long number
Blasting
Getting Started
if you read this document, you might have read the “otp” document before. if you are not yet read it, you can read it here.
Each platform will have the possibility of more than 1 vendor. What is a vendor? vendor is a service from 1 or more companies that have specific services for each platform.
Pre Acquired
Before you can use all the services in fazpass, such as OTP, misscall and verification you must have merchant_key (Token) for accessing fazpass API. you can get merchant_key (Token) by registering here for our production.we will send it to you by email, you will get email for the detailed access. If you have a problem, you can ask directly for our live support here. to accessing our dashboard, you can go here for Production env
Note : You need to use merchant_key (Token) for every API / Services you use
To use Fazpass API you need authentication using merchant_key (Token) . That can be done by setting the Authorization HTTP header. Please refer to the detail below for further information about how and where the Authorization can be implemented.
Authorization: {{type}} {{Token}}
type = Bearer Token
Token = merchant_key
HTTP Send Endpoint
This Request Endpoint is needed for your integration process so that your system can request message through Fazpass services
Production https://api.fazpass.com/
API Blasting message
Before you guys can use api send, you must set a gateway in the dashboard
-
Admin Side
On the Admin side, the admin should do few things before the engineer can implement the API correctly. in this part, we will guide you, how to setup a gateway before you the engineer can integrate and use the Generate and verification API
- Admin login to Fazpass dashboard
-
Admin go to proxy menu
- Admin Add new gateway
-
Admin fill the form
Field Description Gateway Your gateway name Channel Name Select otp channel (misscall, SMS,email, whatsapp,etc) Select Provider Name Select your desire provider e.x : Citcall Subject / title user for email OTP title (will be ignored for SMS,whatsapp and miss call) Message Custom your message, please ensure use “{OTP}” to insert generate OTP in between your custom message (will be ignored for miss call and official whatsapp) OTP Length min 4 max 8 Note / purpose purpose for the gateway e.x login, register, transaction, etc Credential key If you have a special price from the provider, feel free to insert a credential key here. Enable gateway set gateway enable by clicking it You can write HTML script directly, or upload a template file. make sure to put “<HTML>”,” </HTML>”,” <BODY>”,”</BODY>” tag to ensure the email will be rendered in all platform
- Save the data
This step for the admin is finished. and the engineer can start integration in the API side
-
Engineering Side
On the engineering side, you as engineer will integrate Fazpass API in a view step.
- Login to dashboard
- Go to proxy menu
-
See the gateway purpose and gateway key
If you get the gateway key, you can start to integrate the Fazpass OTP using API generate and then validate it using API verification
Before we jump to API, this is endpoint env for our setup
NOTE : THIS METHOD NOT SUPPORT FOR MISSCALL
HTTP Request Endpoint
POST {base_url}/v1/message/send
{
"phone": "085726451070",//can be empty or not use
"email": "sigit.hnadi@gmail.com",
"gateway_key": "9c1abaff-ecdf-4b03-bf55-fa6f9be47b95",
"params": [
{
"tag": "parameter_1",
"value": "sigit"
},
{
"tag": "parameter_2",
"value": "Anda berhak mendapatkan promosi menarik dari kammi berupa promosi potongan harga sebesar 50%, berlaku sampai desember 2022"
}
]
}
To use Fazpass API you need to submit a RAW JSON object to the body. The RAW JSON object takes the following properties
the url is case sensitive
Parameters | Type | Description | Status |
---|---|---|---|
Json Type | Raw | JSON method needed to use in the body | required |
phone | string | end-user mobile number | required |
string | Email end-user | required | |
gateway key | string | input with gateway key from the dashboard | required |
Tag | string | input yourtag inputted in the dashboard for dynamic text tag classified as Parameter_x, you can change “x” with number | required |
Value | string | Value filled for the tag
Parameter_x > can be filled with custom string up to 4096 char. NOTES : we recommended to fill up to 1024 char due to limitation in whatsapp, and 140 chat for sms |
required |
Case and exsamples
-
you have static text with dynamic variable such as “name”, “promo”
you can fill “parameter_1” with your users “name” and the “parameter_2” can be filled with your promotional content
-
you need a completely dynamic long text send from your side
you can just put the “parameter_1” in our dashboard and you can fill the variable with your own word
Send Long Message SMS / Whatsapp Long number / Email
Response status
Parameters | Type | Description |
---|---|---|
Status | Boolean |
Response status from request api true = OTP send success, return message and data false = OTP send failed, only return message |
Message | String | response message regarding of status |
Data | Array | set array of data |
ID | String | OTP id generated after OTP generated |
OTP | String | OTP number send to user (masked) |
Channel | String | Channel to send OTP, setting from dashboard |
Provider | String | Provider to send OTP, setting from dashboard |
Purpose | String | Provider of using OTP, setting from dashboard to send OTP |
Message | String | Your Message |
Channel response list
Name | Purpose |
---|---|
sms | this mean you use SMS as sending method for the message |
WhatsApp Long Number | this mean you use unofficial whatsapp channel / long number whatsapp version as sending method for the message |
this mean you use email as sending method for the message |
Looping And HTML Render For Email (Additional)
for looping case you can add following code in your html template or you can download the full example code here.
for custom template using HTML / css function as array data, you can refer here.
API hit with HTML tag in json data
{
"email": "ikwanpuji90@gmail.com",
"gateway_key": "58982aaa-edf3-4e2a-824c-5f65dee33ce5",
"params": [
{
"tag": "loop",
"data": [
{
"header": [
{
"site_url": "http://localhost/bhi/?utm_source=system&utm_medium=email&utm_campaign=Thank you for shopping with Beauty Haul Indo!",
"site_logo": "http://localhost/bhi/assets/logo_beautyhaul.png"
}
]
},
{
"footer": [
{
"ig_logo": "http://localhost/bhi/assets/ig.png",
"tiktok_logo": "http://localhost/bhi/assets/tiktok.png",
"fb_logo": "http://localhost/bhi/assets/fb.png",
"yt_logo": "http://localhost/bhi/assets/yt.png",
"line_logo": "http://localhost/bhi/assets/line2.png",
"wa_logo": "http://localhost/bhi/assets/wa.png",
"copyright_year": "2022",
"contact_link": "http://localhost/bhi/contact-us?utm_source=system&utm_medium=email&utm_campaign=Thank you for shopping with Beauty Haul Indo!"
}
]
},
{
"payment_info": [
{
"va_number": "13448018955500072",
"how_to_link": "http://localhost/bhi/how-to-order/virtual-account-bca?utm_source=system&utm_medium=email&utm_campaign=Thank you for shopping with Beauty Haul Indo!"
}
]
},
{
"items": [
{
"quantity": "20",
"subtotal": "100.000",
"product_variant": {
"option": "Size",
"value": "150ml"
},
"product_img": "",
"pre_order": {
"date": "2022-10-12"
},
"brand_title": "KLAIRS",
"product_title": "Gentle Black Fresh Cleansing Oil",
"detail_link": "http://localhost/bhi/product/detail/gentle-black-fresh-cleansing-oil?utm_source=system&utm_medium=email&utm_campaign=Thank you for shopping with Beauty Haul Indo!",
"children": []
}
]
},
{
"calculation": [
{
"subtotal": "Rp 345.000",
"total": "Rp 500.000",
"discount": "",
"cc_discount": "",
"gc": {
"code": "",
"value": ""
},
"insurance": "",
"loyalty_points": "",
"wooden_crate": "",
"gift_wrap_service": "",
"uniq": "",
"service_charge": ""
}
]
},
{
"shipping": [
{
"name": "da da",
"phone": "123213",
"address": "dada",
"address2": "",
"district": "Tagineri",
"city": "Kab. Jayawijaya",
"state": "Papua",
"country": "Indonesia",
"zip": "99557"
}
]
},
{
"web":"<h1 style='color:red;'>Sukses1</h1>",
"web2":[
{
"a":"<h1 style='color:orange;'>Sukses2</h1>",
"b":"<h1 style='color:green;'>Sukses3</h1>",
"c":{
"d":"<h1 style='color:blue;'>Sukses4</h1>",
"e":"<h1 style='color:yellow;'>Sukses5</h1>"
}
}
]
}
]
},
{
"tag": "parameter_1",
"value": "Complete Your Payment"
},
{
"tag": "parameter_2",
"value": "Ikwan (ini dari parameter)"
},
{
"tag": "parameter_3",
"value": "<div>Your order has been successfully placed. Please pay before <span style=\"color:#E4002B; font-weight: 700;\">24 December 2022 14:15</span></div>"
},
{
"tag": "parameter_4",
"value": "3RWXGWU3"
},
{
"tag": "parameter_5",
"value": "Rp 500.000"
},
{
"tag": "parameter_6",
"value": ""
},
{
"tag": "parameter_7",
"value": ""
}
]
}
1 loop
{{ range $key, $index := (index .Pages 0).detail }}
<tr style="vertical-align:center;margin-top:2px;">
<td align="center" style="width: 15%;">{{$index.nomor}} </td>
<td align="center" style="width: 25%;">{{$index.sku}}</td>
<td align="center" style="width: 25%;">{{$index.qty}}</td>
<td align="center" style="width: 35%;">{{$index.price}}</td>
</tr>
{{ end }}
2-n loop
// 1st array
{{ range $key, $index := (index .Pages 0).detail }}
<tr style="vertical-align:center;margin-top:2px;">
<td align="center" style="width: 15%;">{{$index.nomor}}</td>
<td align="center" style="width: 25%;">{{$index.sku}}</td>
<td align="center" style="width: 25%;">{{$index.qty}}</td>
<td align="center" style="width: 35%;">{{$index.price}}</td>
</tr>
{{ end }}
// sub-1st array
<tfooter>
<tr style="vertical-align:center">
<th>Summary</th>
<th></th>
<th>Total</th>
<th align="center">{{ (index (index .Pages 1).summary 0).total}}</th>
</tr>
<tr style="vertical-align:center">
<th></th>
<th></th>
<th>Discount</th>
<th align="center">{{ (index (index .Pages 1).summary 0).discount}}</th>
</tr>
</tfooter>
// 2nd array
{{ range $key, $index := (index .Pages 2).history }}
<tr style="vertical-align:center;margin-top:2px;">
<td align="center" style="width: 15%;">{{$index.nomor}} </td>
<td align="center" style="width: 35%;">{{$index.transaksi}}</td>
<td align="center" style="width: 25%;">{{$index.total}}</td>
<td align="center" style="width: 25%;">{{$index.point}}</td>
</tr>
{{ end }}
API json exsample for N-array
{
"email": "sigit.handi@gmail.com",
"gateway_key": "dfe5c18f-084f-4f15-b238-65e26b28809a",
"params": [
{
"tag": "parameter_1",
"value": "Tuan Ikwan"
},
{
"tag": "payment",
"value": "3400"
},
{
"tag": "subtotal",
"value": "2900"
},
{
"tag": "shipping",
"value": "50"
},
{
"tag": "total",
"value": "3400"
},
{
"tag": "address",
"value": "Jl. Medan Merdeka Barat No.9, RT.2/RW.3, Gambir, Kecamatan Gambir, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10110"
},
{
"tag": "loop",
"data": [
{
"detail":[
{
"nomor": "1",
"sku": "item-1",
"qty": "2",
"price": "2000"
},
{
"nomor": "2",
"sku": "item-2",
"qty": "1",
"price": "1000"
}
]
},
{
"summary":[
{
"total": "3000",
"discount": "10"
}
]
},
{
"history":[
{
"nomor": "1",
"transaksi": "inv/20221221/1",
"total": "2800",
"point": "10"
},
{
"nomor": "2",
"transaksi": "inv/20221201/11",
"total": "2900",
"point": "10"
},
{
"nomor": "3",
"transaksi": "inv/20221112/33",
"total": "3300",
"point": "5"
}
]
}
]
}
]
}
Attachment
attachment should be base 64
maximum all attachment is 8MB / 8192KB
{
"tag": "attach",
"attachments":[
{
"fileName":"click_button.png",
"content": "BASE64 GENERATED STRING",
},
{
"fileName": "otp_usage.xlsx",
"content": "BASE64 GENERATED STRING",
},
{
"fileName": "abstrak.pdf",
"content": "BASE64 GENERATED STRING",
}
]
}
MISC
this section will redirect you if you have other flow implemented in your system.
for other function in admin dashboard, you can refer to this document
we also have ui/ux suggestion in the bellow section of this document
Callback Usage
Getting Started
To enable callback please login to your dashboard by assessing https://dashboard.fazpass.com/.
and go to the setting menu like in the picture bellow
Just enable the callback and input your callback URL
we will send you the callback using the below parameter.
Method and Payload
POST
{
"transaction_id": "b3008bd0-92b6-496a-87df-e8cdaf904231",
"service": "otp",
"gateway": "9affcc7b-47d2-4cb8-9ab2-4d9ae862b5ae",
"method": "Generate",
"provider": "Wavecell",
"product": "SMSOTP",
"phone": "6285726451070",
"token": "8489",
"status": "DELIVERED",
"duration": 4887872836,
"created_at": "2024-03-12T05:03:17Z",
"reported_at": "2024-03-12T05:03:16Z"
}
Apendix
1XX | Provisional |
---|---|
100 | Trying |
180 | Ringing |
181 | Call is being forwarded |
182 | Queued |
183 | Session in progres |
199 | Early Dialogue Terminated |
2XX | Successfull |
---|---|
200 | OK |
201 | Accepted |
204 | No Notification |
3XX | Redirection |
---|---|
300 | Multiple Choice |
301 | Moved Permanently |
302 | Moved Temporarily |
305 | Use Proxy |
380 | Alternative Service |
4XX | Client Failure |
---|---|
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
403 | Forbiden |
404 | Not Found |
405 | Method Not Allowed |
406 | Not Acceptable |
407 | Proxy Authentication Required |
408 | Request Timeout |
409 | Conflict |
410 | Gone |
411 | Length Required |
412 | Conditional Request Failed |
413 | Request Entity Too Large |
414 | Request-URI Too Long |
415 | Unsupported Media Type |
416 | Unsupported URI Scheme |
417 | Unknown Resource-Priority |
420 | Bad Extension |
421 | Extension Required |
422 | Session Interval To Small |
423 | Interval Too Brief |
424 | Bad Location Information |
428 | Use Indentity Header |
429 | Provide Refferer Indentity |
430 | Flow Failed |
433 | Anonymity Disallowed |
436 | Bad Indentity-Info |
437 | Unsupported Certificate |
438 | Invalid Indentity Header |
439 | First Hop Lacks Outbound Support |
470 | Consent Needed |
480 | Temporarily Unavailable |
481 | Call/Transaction Does Not Exits |
482 | Loop Detected |
483 | Too Many Hoops |
484 | Address Incomplete |
485 | Ambiguous |
486 | Busy Here |
487 | Request Terminated |
488 | Not Acceptable Here |
489 | Bad Event |
491 | Request Pending |
493 | Undecipherable |
494 | Security Agreement Required |
5XX | Server Failure |
---|---|
500 | Server Internal Error |
501 | Not Implemented |
502 | Bad Gateway |
503 | Service Unavailable |
504 | Server Time-out |
505 | Version Not Supported |
513 | Message Too Large |
580 | Precondition Failure |
6XX | Global Failure |
---|---|
600 | Busy Everywhere |
603 | Decline |
604 | Does Not Exits Anywhere |
606 | Not Acceptable |
Health Status
Getting Started
OK
if the system run s normal, the system status will return true
System Down
if the system run in to a problem, the system status will return false and message “vendor is down”
Suggest
you can create a routing system, if the message is “vendor is down”and status is false, you can create failover system to other gateway or to other otp vendor you have.
Webhook
you can add a web hook for faster alert, this web hook will notify your system if one or some of our services is not healthy.
https://webhook.site/#!/59e91100-1ed5-4e97-8da3-bd663d33c5b2/af3154ef-0b50-44c0-b002-1ed0d5965e57/1
Status
"status": "healthy"
for services that run without any problem
"status": "unhealthy"
for services that run with problem or down
POST
[
{
"vendor": "CitCall",
"data": [
{
"product": "MOTP",
"status": "unhealthy"
},
{
"product": "SMSOTP",
"status": "healthy"
},
{
"product": "SMS BLASTING",
"status": "healthy"
}
]
},
{
"vendor": "Damcorp",
"data": [
{
"product": "WhatsApp",
"status": "healthy"
}
]
},
{
"vendor": "Gupshup",
"data": [
{
"product": "WhatsApp",
"status": "healthy"
}
]
},
{
"vendor": "IMS",
"data": [
{
"product": "SMSOTP",
"status": "healthy"
},
{
"product": "SMS BLASTING",
"status": "healthy"
}
]
},
{
"vendor": "Kata.ai",
"data": [
{
"product": "WhatsApp",
"status": "healthy"
}
]
},
{
"vendor": "King One",
"data": [
{
"product": "WhatsApp Long Number",
"status": "healthy"
},
{
"product": "WhatsApp BLASTING",
"status": "healthy"
}
]
},
{
"vendor": "Mailgun",
"data": [
{
"product": "Email",
"status": "healthy"
},
{
"product": "Email BLASTING",
"status": "healthy"
}
]
},
{
"vendor": "TapTalk",
"data": [
{
"product": "WhatsApp Long Number",
"status": "healthy"
},
{
"product": "WhatsApp BLASTING",
"status": "healthy"
}
]
}
]
Fazpass-Android (Fazpass Seamless)
Getting Started
This is the Official Android wrapper/library for Fazpass Fazpass Seamless, that is compatible with Gradle. Visit https://fazpass.com for more information about the product and see documentation at DOC or more technical details.
Update OTP Status
This API only use to send your verification status to our system, the verification will be happened in your system not in fazpass system
Update OTP :POST {base_url}/v1/otp/update_verified
{
"otp_id" : "your OTP id"
}
Public Masking Status Delivery
PROCESSING - the message has been received by our platform and it is currently being processed before being send to the carrier.
SENT - The message has been sent to the operator and Fazpass has not yet received an acknowledgement yet from the operator.
DELIVERED - Means the message has been "delivered to the handset". If the status is not available from the operators, this means that Fazpass has received the confirmation from the carrier that the message has been "delivered to the carrier".
-
UNDELIVERED/REJECTED - We have received confirmation that the message was not delivered. This can be due to various reasons such as :
- Mobile Handset is unavailable (e.g. mobile is switched off or on roaming mode)
- Filtered out by the operator
ERROR - The message has not been accepted by our platform. this can bue due to some error such as incorrect mobile number or insufficient credit. You will not be charged for error messages.
Verified - The OTP not only received by the user, but the user already input and validate the right number in the application.
Status | Price |
---|---|
PROCESSING | Not Carged |
ERROR | Not Carged |
SENT | Carge |
DELIVERED | Carge |
REJECTED | Carge |
UNDELIVERED | Carge |
Verified | Carge |