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.

Responsive image Responsive image Responsive image

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

Responsive image

Integration Flow

Responsive image
  1. 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

    1. Admin login to Fazpass dashboard
    2. Admin go to proxy menu
      Responsive image
    3. Admin Add new gateway
      Responsive image
    4. 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
      Responsive image
    5. Save the data

      This step for the admin is finished. and the engineer can start integration in the API side

  2. Engineering Side

    On the engineering side, you as engineer will integrate Fazpass API in a view step.

    1. Login to dashboard
    2. Go to proxy menu Responsive image
    3. See the gateway purpose and gateway key Responsive image

      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

Responsive image

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

Responsive image

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

Responsive image

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

Responsive image

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

OTP validation for SMS,Email and Whatsapp

Responsive image
Responsive image

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

Responsive image
Responsive image

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.

Responsive image

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
WhatsApp 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
email 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"
        }
    ]
}
Responsive image
Responsive image

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

Responsive image

For sms / WA we suggest following ui to implement

Responsive image
Responsive image

or Email we suggest following ui to implement

Responsive image

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.

Responsive image Responsive image Responsive image

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

Responsive image

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

Responsive image

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

Responsive image

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

Responsive image

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

Responsive image

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

Responsive image
Responsive image

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

Responsive image
Responsive image

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 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
email 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"
      }
  ]
}
Responsive image
Responsive image

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.

Responsive image Responsive image Responsive image

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

Responsive image

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

Responsive image

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

Responsive image

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
Responsive image
Responsive image

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"
      }
  ]
}
Responsive image
Responsive image

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.

Responsive image Responsive image Responsive image

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

Responsive image

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

  1. 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

    1. Admin login to Fazpass dashboard
    2. Admin go to proxy menu
      Responsive image
    3. Admin Add new gateway
      Responsive image
    4. 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
      Responsive image Responsive image

      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

    5. Save the data

      This step for the admin is finished. and the engineer can start integration in the API side

  2. Engineering Side

    On the engineering side, you as engineer will integrate Fazpass API in a view step.

    1. Login to dashboard
    2. Go to proxy menu Responsive image
    3. See the gateway purpose and gateway key Responsive image

      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
Email 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

  1. you have static text with dynamic variable such as “name”, “promo”

    Responsive image

    you can fill “parameter_1” with your users “name” and the “parameter_2” can be filled with your promotional content

  2. you need a completely dynamic long text send from your side

    Responsive image

    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

Responsive image

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
Responsive image
Responsive image

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
email 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

Responsive image
// 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

Responsive image

Just enable the callback and input your callback URL

we will send you the callback using the below parameter.


Method and Payload

POST
{
  "otp_id": "",
  "gateway_id": "",
  "service": "Generate",
  "provider": "citcall",
  "product": "motp",
  "phone": "6285643562378",
  "prefix": "62213111",
  "token" : "0661",
  "status": "success", 
  "dial_code": "200", -> 183 -> session
  "dial_status": "OK", 
  "call_status": "ANSWERED",  
  "duration": 35,
  "created_at": "2022-09-12T07:31:51+0000",
  "reported_at": "2022-09-12T07:31:51+0000"
}

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

Responsive image

if the system run s normal, the system status will return true


System Down

Responsive image

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.

Responsive image

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.