Introduction

The Mobipaid API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

You can use the Mobipaid API in test/development mode, which does not affect your live data or interact with the banking networks. The URL and API key you use to authenticate the request determines whether the request is live mode or test mode.

Authentication

The Mobipaid API uses API keys to authenticate requests. You can view and manage your API keys in the Mobipaid Developer Dashboard.

Every application have two access keys in place, development mode and production mode

Development mode specifications:

  • The URL is https://test.mobipaid.io/.
  • Access key have the prefix mp_test_.

Production mode specifications:

  1. The URL is https://live.mobipaid.io/.
  2. Access key have the prefix mp_live_.
  3. Connect your application with a merchant.
  4. Change your status application to Published.
  5. Merchant have to enable your application on their dashboard.

Your Access keys carry many privileges, so be sure to keep them secure! Do not share your access API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

Authentication to the API is performed via HTTP Bearer Auth. Provide your Access key as the bearer auth value.

This is the example with CURL.

curl -X GET https://test.mobipaid.io/v2/payments -H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Errors
Status code Description
200 - OK Everything worked as expected.
400 - Bad Request The request was unacceptable, often due to missing a required parameter.
401 - Unauthorized No valid API key provided.
402 - Request Failed The parameters were valid but the request failed.
403 - Forbidden The API key doesn't have permissions to perform the request.
404 - Not Found The requested resource doesn't exist.
409 - Conflict The request conflicts with another request (perhaps due to using the same idempotent key).
429 - Too Many Requests Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
500, 502, 503, 504 - Server Errors Something went wrong on Mobipaid's end. (These are rare.)
Payment Requests

Request a payment to your customer email or mobile number with this feature. We will send invoice to the customer automatically.

We support Credit Card, Direct Debit, Paypal, Apple Pay, Google Pay, Nedbank, American Express, etc. With mobipaid wallet in place, customer can pay quickly with payment options that has been saved.

This payment request is intended for one time payment.

Create a Payment Request

Create a new single payment request.

Body Params
Field Description
request_methods

required

array

"EMAIL" if you want to send invoice through email. "SMS" if you want to send invoice through SMS. "WEB" if you don't want us to send invoice at all but you still need email or mobile_number. Example: ['EMAIL', 'SMS', 'WEB']

reference_number

 

string

This will help you indentify a request. Example: "OO-1234-2020"

email

required with condition

string

Customer email, required if request_methods is containing "EMAIL". Example: "john@doe.com"

merchant_phone_number

 

string

Merchant mobile number that used to send SMS. You can buy the number in merchant dashboard. Example: "+1234567890"

mobile_number

required with condition

string

Customer mobile number, required if request_methods is containing "SMS". Example: "+1234567890"

initial_payment_amount

required with condition

number

The initial amount of payment needed to pay for this request. Only needed if the payment_frequency parameter is not ONE-TIME. Example : 1.54.

amount

required

number

The amount of payment for this request Example: 3

currency

required

string

The currency of this payment request in 3 digit ISO format Example: "USD"

fixed_amount

required

boolean

Boolean value between true and false. If set to false, customer can specify the amount they would like to pay. Commonly used for donation payments.

tax_id

 

number

Tax profile ID to calculate the tax amount for this payment. If it does not exist, the amount value will be tax free.

template_id

 

number

The Email or SMS template you would like to use with this payment. When empty, the payment request will be send using merchant's default template. If merchant does not set the default template, it will automatically send Mobipaid's default template.

payment_type

 

string

Add optional payment_type by default it's filled with DB. Set it to "PA" to use Pre Authorization. You need to manually capture to accept the payment.

payment_methods

 

array

Add optional payment methods that can be used to pay this request. You can add "APPLE_PAY", "GOOGLE_PAY", "NEDBANK_EFT" or "AMEX" in a single array

moto_enabled

 

boolean

Enable MOTO card mode which have no additional authentication on payment widget

shipping_enabled

 

boolean

Add optional shipping information that can be filled for this request.

send_mms_invoice

 

boolean

Use "true" if you want Mobipaid to help you send an invoice through MMS. (Only available for USA and Canada mobile carriers.) Other non-supported countries will send an extended SMS with an URL to download the respective invoice. You will be charged based on your MMS and SMS fee where applicable.

attach_invoice

 

boolean

Use "true" if you want Mobipaid to attach an invoice as a file and send it through email.

invoice_url

 

string

The url of the invoice file. If it's not exist, the message template will be used as the invoice content.

send_mms_receipt

 

boolean

Use "true" if you want Mobipaid to help you send a payment receipt through MMS or SMS. You will be charged on your MMS and SMS fee where applicable.

attach_receipt

 

boolean

Use "true" if you want the payment receipt to be attached as a file and sent through email.

receipt_file_type

 

string

File type for payment receipt. Available value: "pdf/jpeg/png", default value pdf.

expiry_date

 

string

The expiry date for this payment request. Format = YYYY-MM-DD HH:MM

customer_id

 

string

Customer ID used to update customer data if exist. Example: "h3xDi8"

customer_salutation

 

string

Mr, Mrs, or Miss. Example: "Mr"

customer_first_name

 

string

Customer first name. Example: "John"

customer_last_name

 

string

Customer last name. Example: "Doe"

send_confirmation

 

string

Use "true" if you want Mobipaid to help you send the confirmation sms/email after payment is succeed. Use "false" if you want to send the confirmation by yourself

response_url

 

string

Response_url is the url where customer will get the payment result. After the transaction is paid, the payment response will be posted to the response_url. Example: "http://mymobipaidmerchant.com/response/"

cancel_url

 

string

The url where customer will redirected when customer click cancel button on payment page. Example: "https://mywebsite.com"

redirect_url

 

string

After payment we will redirect to this URL. If empty, we will show the receipt page instead. Example: "http://mymobipaidmerchant.com/receipt/"

payment_frequency

 

string

The frequency for the payment request. Available frequency are "ONE-TIME", "WEEKLY", "MONTHLY", "QUARTERLY", "YEARLY". The default value is ONE-TIME.

payment_start_date

required with condition

string

Payment start date , requested if payment_frequency is not "ONE-TIME". The value must follow the ISO8601 standard (ex:"2023-08-09T16:59:59.000Z"). Default value is empty

payment_end_date

required with condition

string

Payment end date, requested if payment_frequency is not "ONE-TIME". The value must follow ISO8601 standard (ex:"2023-09-09T17:59:59.000Z"). Default value is empty.

user_id string
user_id is value of user account id

Required Header:

  • Authorization
Request URL  
https://test.mobipaid.io/v2/payment-requests/
Request Body
{
  "request_methods": [ "SMS"],
  "reference_number": "123",
  "email": "example@example.com",
  "merchant_phone_number": null,
  "mobile_number": "+12345678901",  
  "customer_id": "",
  "customer_salutation": "Mr",
  "customer_first_name": "John",
  "customer_last_name" : "Preston",
  "redirect_url" : "https://mobipaid.com",
  "response_url" : "https://mobipaid.com",
  "cancel_url" : "https://mobipaid.com",
  "fixed_amount": true,
  "currency": "ZAR",
  "amount": 1500.12,
  "tax_id": "",
  "template_id": "",
  "moto_enabled": false, 
  "shipping_enabled": false, 
  "send_mms_invoice": true,
  "attach_invoice": true,
  "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
  "attach_receipt": true, 
  "receipt_file_type": "pdf",
  "payment_type": "DB",
  "payment_methods": ["APPLE_PAY", "GOOGLE_PAY", "AMEX"],
  "expiry_date": "",
  "payment_frequency": "ONE-TIME",
  "payment_start_date": "",
  "user_id": "p4DxanBE"
}

Examples
curl -X POST https://test.mobipaid.io/v2/payment-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" \
--data '{
    "request_methods": [ "SMS"],
    "reference_number": "123",
    "email": "example@example.com",
    "merchant_phone_number": null,
    "mobile_number": "+12345678901",
    "customer_id": "",
    "customer_salutation": "Mr",
    "customer_first_name": "John",
    "customer_last_name" : "Preston",
    "redirect_url" : "https://mobipaid.com",
    "response_url" : "https://mobipaid.com",
    "cancel_url" : "https://mobipaid.com",
    "fixed_amount": true,
    "currency": "ZAR",
    "amount": 1500.12,
    "tax_id": "",
    "template_id": "",
    "moto_enabled": false,
    "shipping_enabled": false,
    "send_mms_invoice": true,
    "attach_invoice": true,
    "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt": true,
    "receipt_file_type": "pdf",
    "payment_type": "DB",
    "payment_methods": [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "AMEX"
    ],
    "expiry_date": ""
}'
import requests
import json

url = "https://test.mobipaid.io/v2/payment-requests"

payload = json.dumps( {
    "request_methods": [ "SMS"],
    "reference_number": "123",
    "email": "example@example.com",
    "merchant_phone_number": None,
    "mobile_number": "+12345678901",
    "customer_id": "",
    "customer_salutation": "Mr",
    "customer_first_name": "John",
    "customer_last_name" : "Preston",
    "redirect_url" : "https://mobipaid.com",
    "response_url" : "https://mobipaid.com",
    "cancel_url" : "https://mobipaid.com",
    "fixed_amount": True,
    "currency": "ZAR",
    "amount": 1500.12,
    "tax_id": "",
    "template_id": "",
    "moto_enabled": false,
    "shipping_enabled": false,
    "send_mms_invoice": true,
    "attach_invoice": true,
    "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt": True,
    "receipt_file_type": "pdf",
    "payment_type": "DB",
    "payment_methods": [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
         "AMEX"
    ],
    "expiry_date": "",
   "user_id": "Mjy="
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
    'method': 'POST',
    'url': 'https://test.mobipaid.io/v2/payment-requests',
    'headers': {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
    },
    body: JSON.stringify({
        "request_methods": [ "SMS"],
        "reference_number": "123",
        "email": "example@example.com",
        "merchant_phone_number": null,
        "mobile_number": "+12345678901",
        "customer_id": "",
        "customer_salutation": "Mr",
        "customer_first_name": "John",
        "customer_last_name" : "Preston",
        "redirect_url" : "https://mobipaid.com",
        "response_url" : "https://mobipaid.com",
        "cancel_url" : "https://mobipaid.com",
        "fixed_amount": true,
        "currency": "ZAR",
        "amount": 1500.12,
        "tax_id": "",
        "template_id": "",
        "moto_enabled": false,
        "shipping_enabled": false,
        "send_mms_invoice": true,
        "attach_invoice": true,
        "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
        "attach_receipt": true,
        "receipt_file_type": "pdf",
        "payment_type": "DB",
        "payment_methods": [
            "APPLE_PAY",
            "GOOGLE_PAY",
            "NEDBANK_EFT",
            "AMEX"
        ],
        "expiry_date": ""
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "request_methods" => [ "SMS"],
    "reference_number" => "123",
    "email" => "example@example.com",
    "merchant_phone_number" => null,
    "mobile_number" => "+12345678901",
    "customer_id" => "",
    "customer_salutation" => "Mr",
    "customer_first_name" => "John",
    "customer_last_name"  => "Preston",
    "redirect_url"  => "https://mobipaid.com",
    "response_url"  => "https://mobipaid.com",
    "cancel_url"  => "https://mobipaid.com",
    "fixed_amount" => true,
    "currency" => "ZAR",
    "amount" => 1500.12,
    "tax_id" => "",
    "template_id" => "",
    "moto_enabled" => false,
    "shipping_enabled" => false,
    "send_mms_invoice" => true,
    "attach_invoice" => true,
    "invoice_url" => "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt" => true,
    "receipt_file_type" => "pdf",
    "payment_type": "DB",
    "payment_methods" => [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
        "AMEX"
    ],
    "expiry_date" => ""
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/payment-requests",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require 'json'

url = URI("https://test.mobipaid.io/v2/payment-requests")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    request_methods: [ "SMS"],
    reference_number: "123",
    email: "example@example.com",
    merchant_phone_number: nil,
    mobile_number: "+12345678901",
    customer_id: "",
    customer_salutation: "Mr",
    customer_first_name: "John",
    customer_last_name: "Preston",
    redirect_url: "https://mobipaid.com",
    response_url: "https://mobipaid.com",
    cancel_url: "https://mobipaid.com",
    fixed_amount: true,
    currency: "ZAR",
    amount: 1500.12,
    tax_id: "",
    template_id: "",
    moto_enabled: false,
    shipping_enabled: false,
    send_mms_invoice: true,
    attach_invoice: true,
    invoice_url: "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    attach_receipt: true,
    receipt_file_type: "pdf",
    payment_type: "DB",
    payment_methods: [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
        "AMEX"
    ],
    expiry_date: ""
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
  "amount": "1500.12", 
  "attach_invoice": true, 
  "attach_receipt": true, 
  "cancel_url": "https://google.com", 
  "created_at": "2020-02-19T06:43:50.000Z", 
  "currency": "ZAR", 
  "customer_first_name": "John", 
  "customer_id": "", 
  "customer_last_name": "Preston", 
  "customer_salutation": "Mr", 
  "email": "example@example.com", 
  "expiry_date": "", 
  "fixed_amount": true, 
  "invoice_url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/CCU_Logo.jpeg", 
  "long_url": "https://long-url", 
  "merchant_phone_number": null, 
  "mobile_number": "+12345678901", 
  "modified_at": "", 
  "payment_methods": [
    "GOOGLE_PAY",
    "AMEX"
  ], 
  "payment_type": "DB", 
  "qrcode_link": "https://qrcodelink", 
  "receipt_file_type": "pdf", 
  "redirect_url": "https://google.com", 
  "reference_number": "123", 
  "request_methods": [
    "SMS"
  ], 
  "response_url": "https://google.com", 
  "result": "success", 
  "send_mms_invoice": true, 
  "send_mms_receipt": false, 
  "shipping_enabled": false, 
  "short_url": "https://short-url", 
  "tax_id": "", 
  "template_id": "", 
  "transaction_id": "145510OO",
  "payment_frequency": "ONE-TIME",
  "user_id": 18
}
{
     "message": "Forbidden"
}
{
    "is_valid": false,
    "error_field": "",
    "error_message": "Apple Pay is not enabled. Please check your cofiguration and/or contact your administrator.",
    "result": "failed"
}

Request Samples
Loading...
Edit a Payment Request

You can update the payment request by using the same parameters from create a payment request, but you have to add transaction_id to the body.

Required Header:

  • Authorization
Request URL  
https://test.mobipaid.io/v2/payment-requests/
Request Body
{
    "transaction_id": "2116376OO",
    "request_methods": [ "WEB"],
    "reference_number": "123",
    "email": "example@example.com",
    "merchant_phone_number": null,
    "mobile_number": "+12345678901",  
    "customer_id": "",
    "customer_salutation": "Mr",
    "customer_first_name": "John",
    "customer_last_name" : "Preston",
    "redirect_url" : "https://mobipaid.com",
    "response_url" : "https://mobipaid.com",
    "cancel_url" : "https://mobipaid.com",
    "fixed_amount": true,
    "currency": "ZAR",
    "amount": 1500.12,
    "tax_id": "",
    "template_id": "",
    "moto_enabled": false, 
    "shipping_enabled": false, 
    "send_mms_invoice": true,
    "attach_invoice": true,
    "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt": true, 
    "receipt_file_type": "pdf",
    "payment_type": "DB",
    "payment_methods": ["APPLE_PAY", "GOOGLE_PAY", "NEDBANK_EFT", "AMEX"],
    "expiry_date": ""
}

Examples
curl -X PUT https://test.mobipaid.io/v2/payment-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" \
--data '{
    "transaction_id": "2116376OO",
    "request_methods": [ "WEB"],
    "reference_number": "123",
    "email": "example@example.com",
    "merchant_phone_number": null,
    "mobile_number": "+12345678901",
    "customer_id": "",
    "customer_salutation": "Mr",
    "customer_first_name": "John",
    "customer_last_name" : "Preston",
    "redirect_url" : "https://mobipaid.com",
    "response_url" : "https://mobipaid.com",
    "cancel_url" : "https://mobipaid.com",
    "fixed_amount": true,
    "currency": "ZAR",
    "amount": 1500.12,
    "tax_id": "",
    "template_id": "",
    "moto_enabled": false,
    "shipping_enabled": false,
    "send_mms_invoice": true,
    "attach_invoice": true,
    "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt": true,
    "receipt_file_type": "pdf",
    "payment_type": "DB",
    "payment_methods": [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
        "AMEX"
    ],
    "expiry_date": ""
}'
import requests
import json

url = "https://test.mobipaid.io/v2/payment-requests"

payload = json.dumps( {
    "transaction_id": "2116376OO",
    "request_methods": [ "WEB"],
    "reference_number": "123",
    "email": "example@example.com",
    "merchant_phone_number": None,
    "mobile_number": "+12345678901",
    "customer_id": "",
    "customer_salutation": "Mr",
    "customer_first_name": "John",
    "customer_last_name" : "Preston",
    "redirect_url" : "https://mobipaid.com",
    "response_url" : "https://mobipaid.com",
    "cancel_url" : "https://mobipaid.com",
    "fixed_amount": True,
    "currency": "ZAR",
    "amount": 1500.12,
    "tax_id": "",
    "template_id": "",
    "moto_enabled": False,
    "shipping_enabled": False,
    "send_mms_invoice": True,
    "attach_invoice": True,
    "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt": True,
    "receipt_file_type": "pdf",
    "payment_type": "DB",
    "payment_methods": [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
       "AMEX"
    ],
    "expiry_date": ""
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("PUT", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
    'method': 'PUT',
    'url': 'https://test.mobipaid.io/v2/payment-requests',
    'headers': {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
    },
    body: JSON.stringify({
        "transaction_id": "2116376OO",
        "request_methods": [ "WEB"],
        "reference_number": "123",
        "email": "example@example.com",
        "merchant_phone_number": null,
        "mobile_number": "+12345678901",
        "customer_id": "",
        "customer_salutation": "Mr",
        "customer_first_name": "John",
        "customer_last_name" : "Preston",
        "redirect_url" : "https://mobipaid.com",
        "response_url" : "https://mobipaid.com",
        "cancel_url" : "https://mobipaid.com",
        "fixed_amount": true,
        "currency": "ZAR",
        "amount": 1500.12,
        "tax_id": "",
        "template_id": "",
        "moto_enabled": false,
        "shipping_enabled": false,
        "send_mms_invoice": true,
        "attach_invoice": true,
        "invoice_url": "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
        "attach_receipt": true,
        "receipt_file_type": "pdf",
        "payment_type": "DB",
        "payment_methods": [
            "APPLE_PAY",
            "GOOGLE_PAY",
            "NEDBANK_EFT",
            "AMEX"
        ],
        "expiry_date": ""
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "transaction_id" => "2116376OO",
    "request_methods" => [ "WEB"],
    "reference_number" => "123",
    "email" => "example@example.com",
    "merchant_phone_number" => null,
    "mobile_number" => "+12345678901",
    "customer_id" => "",
    "customer_salutation" => "Mr",
    "customer_first_name" => "John",
    "customer_last_name"  => "Preston",
    "redirect_url"  => "https://mobipaid.com",
    "response_url"  => "https://mobipaid.com",
    "cancel_url"  => "https://mobipaid.com",
    "fixed_amount" => true,
    "currency" => "ZAR",
    "amount" => 1500.12,
    "tax_id" => "",
    "template_id" => "",
    "moto_enabled" => false,
    "shipping_enabled" => false,
    "send_mms_invoice" => true,
    "attach_invoice" => true,
    "invoice_url" => "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    "attach_receipt" => true,
    "receipt_file_type" => "pdf",
    "payment_type": "DB",
    "payment_methods" => [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
        "AMEX"
    ],
    "expiry_date" => ""
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/payment-requests",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require 'json'

url = URI("https://test.mobipaid.io/v2/payment-requests")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    transaction_id: "2116376OO",
    request_methods: [ "WEB"],
    reference_number: "123",
    email: "example@example.com",
    merchant_phone_number: nil,
    mobile_number: "+12345678901",
    customer_id: "",
    customer_salutation: "Mr",
    customer_first_name: "John",
    customer_last_name: "Preston",
    redirect_url: "https://mobipaid.com",
    response_url: "https://mobipaid.com",
    cancel_url: "https://mobipaid.com",
    fixed_amount: true,
    currency: "ZAR",
    amount: 1500.12,
    tax_id: "",
    template_id: "",
    moto_enabled: false,
    shipping_enabled: false,
    send_mms_invoice: true,
    attach_invoice: true,
    invoice_url: "https://mp-fixed-assets.s3.amazonaws.com/logo.png",
    attach_receipt: true,
    receipt_file_type: "pdf",
    payment_type: "DB",
    payment_methods: [
        "APPLE_PAY",
        "GOOGLE_PAY",
        "NEDBANK_EFT",
        "AMEX"
    ],
    expiry_date: ""
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "transaction_id": "145497OO",
    "request_methods": [
        "WEB"
    ],
    "reference_number": "123",
    "email": "example@example.com",
    "mobile_number": "+12345678901",
    "merchant_phone_number": null,
    "customer_id": "",
    "customer_salutation": "Mr",
    "customer_first_name": "John",
    "customer_last_name": "Preston",
    "payment_type": "DB",
    "currency": "ZAR",
    "amount": "1500.12",
    "fixed_amount": true,
    "short_url": "https://shorturl",
    "long_url": "https://longurl",
    "qrcode_link": "https://qrlink",
    "tax_id": "",
    "template_id": "",
    "payment_methods": [
        "GOOGLE_PAY",
       "AMEX"
    ],
    "shipping_enabled": false,
    "send_mms_invoice": true,
    "attach_invoice": true,
    "invoice_url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/CCU_Logo.jpeg",
    "send_mms_receipt": false,
    "attach_receipt": true,
    "receipt_file_type": "pdf",
    "expiry_date": "",
    "response_url": "https://google.com",
    "redirect_url": "https://google.com",
    "cancel_url": "https://google.com",
    "created_at": "2020-02-18T06:53:07.000Z",
    "modified_at": "2020-02-19T09:02:46.000Z"
}
{
    "is_valid": false,
    "error_field": "transaction_id",
    "error_message": "transaction_id is not valid"
}
{
     "message": "Forbidden"
}

Request Samples
Loading...
Get a Payment Request detail

You can fetch a single payment request by using the GET method with a transaction_id in the route parameter. If you choose to get multiple payment requests detail instead of single payment request detail, you can filled in query string parameters below as options.

Query Description
start_date

 

string

Start search for payment request from the date entered into this parameter. The format is "YYYY-MM-DD"

end_date

required with condition

string

You need to specify the end_date if you specify the start_date. It use the same format of "YYYY-MM-DD"

page

 

number

Select the payment request (default value 1).

limit

 

number

Limit the amount of items fetched from payment request. The default value is 10

keyword

 

string

Search for a payment request that has the specified keyword in email, mobile number or reference number

Required Header:

  • Authorization
Request URL  
https://test.mobipaid.io/v2/payment-requests/{transaction_id}
Examples
curl -X GET https://test.mobipaid.io/v2/payment-requests/{transaction_id} \
--header "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests

url = "https://test.mobipaid.io/v2/payment-requests?page=5&limit=1"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/payment-requests?page=5&limit=1',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/payment-requests?page=5&limit=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/payment-requests?page=5&limit=1")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
  "limit": "1", 
  "page": "1", 
  "page_count": 84, 
  "total_count": 84, 
  "transactions": [
    {
      "amount": 739.88, 
      "attach_receipt_on_email": false, 
      "chargeback": [], 
      "created_at": "2020-01-30T10:53:45.000Z", 
      "currency": "EUR", 
      "email": "saad.jamalkhan@gmail.com", 
      "expiration_date": "2020-02-06T10:53:00.000Z", 
      "fixed_amount": true, 
      "invoice_url": null, 
      "merchant_phone_number": "+19196894607", 
      "mobile_number": "+23059418021", 
      "modified_at": null, 
      "payment_date": "2020-01-30T10:56:01.000Z", 
      "payment_id": "8ac7a4a26ff5c0c4016ff617ed2128fa", 
      "payment_methods": ["AMEX"], 
      "payment_type": "DB", 
      "receipt_file_type": null, 
      "reference_number": "44923", 
      "refund": [], 
      "request_methods": [
        "SMS", 
        "EMAIL"
      ], 
      "reversal": [], 
      "send_mms_receipt": false, 
      "shipping_information": false, 
      "status": "success", 
      "status_description": "", 
      "tax_id": "PKZMknlE", 
      "transaction_id": "145429OO", 
      "url": "https://s.mpaid.us/37cfJ"
    }
  ]
}
{
    "message": "Forbidden"
}

Request Samples
Loading...
Delete a Payment Request

You can delete a single payment request by using the DELETE method with a transaction_id in the route parameter.

Please note that you will not be allowed to delete a transaction that already has a payment history.

Required Header:

  • Authorization
Request URL  
https://test.mobipaid.io/v2/payment-requests/{transaction_id}
Examples
curl -X DELETE https://test.mobipaid.io/v2/payment-requests/{transaction_id} \
--header "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests

url = "https://test.mobipaid.io/v2/payment-requests/2116376OO"

payload  = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_live_9Au2ABAwToHDfMf1kiwr'
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'DELETE',
  'url': 'https://test.mobipaid.io/v2/payment-requests/2116376OO',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer mp_live_9Au2ABAwToHDfMf1kiwr'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/payment-requests/2116376OO",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_live_9Au2ABAwToHDfMf1kiwr"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/payment-requests/2116376OO")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_live_9Au2ABAwToHDfMf1kiwr"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "transaction_id": "145493OO"
}
{
    "is_valid": false,
    "error_field": "transaction_id",
    "error_message": "Transaction is not found.",
    "result": "failed"
}

Request Samples
Loading...
Payment Response

The payment response is sent via the payment response URL that you provided in your payment request.We send a JSON response in a POST parameter called response.On your payment response provided URL you will need to check for a post parameter called response and read the JSON payload contained within the post variable.

Test

Two possible result codes of NOK for failure in the payment attempt and result_code: 000.100.110 with ACK for a successful payment.


response {
    "result": "ACK",
    "token": "9b6352ab516a043cd33cf65cf8210af35bd4d3c9",
    "transaction_id": "211PO",
    "payment_id": "8ac7a4a074726760017472b283ce070f",
    "amount": "50.33",
    "currency": "USD",
    "currency_symbol": "$",
    "result_code": "000.100.110",
    "result_description": "Request successfully processed in 'Merchant in Integrator Test Mode'",
    "additional_info_text": {
        "Type": "baju baru"
    },
    "additional_info_dropdown": {
        "Size": "M"
    },
    "cart_items": "[{\"sku\":\"123\",\"name\":\"Blue Shirt XL\",\"qty\":1,\"unit_price\":11.2},{\"sku\":\"456\",\"name\":\"Black Short Pant XL\",\"qty\":2,\"unit_price\":22.4}]"
}

Production

Two possible result codes of NOK for failure in the payment attempt and result_code: 000.000.000 with ACK for a successful payment.


response {
    "result": "ACK",
    "token": "9b6352ab516a043cd33cf65cf8210af35bd4d3c9",
    "transaction_id": "211PO",
    "payment_id": "8ac7a4a074726760017472b283ce070f",
    "amount": "50.33",
    "currency": "USD",
    "currency_symbol": "$",
    "result_code": "000.000.000",
    "result_description": "Transaction succeeded",
    "additional_info_text": {
        "Type": "baju baru"
    },
    "additional_info_dropdown": {
        "Size": "M"
    },
    "cart_items": "[{\"sku\":\"123\",\"name\":\"Blue Shirt XL\",\"qty\":1,\"unit_price\":11.2},{\"sku\":\"456\",\"name\":\"Black Short Pant XL\",\"qty\":2,\"unit_price\":22.4}]"
}

Sample payment response

The result codes are part of the response body's JSON containing a code and a description explaining the code.

Successful
Result code Description
000.000.000 Transaction succeeded
000.000.100 Successful request
000.100.105 Chargeback Representment is successful
000.100.106 Chargeback Representment cancellation is successful
000.100.110 Request successfully processed in 'Merchant in Integrator Test Mode'
000.100.111 Request successfully processed in 'Merchant in Validator Test Mode'
000.100.112 Request successfully processed in 'Merchant in Connector Test Mode'
000.300.000 Two-step transaction succeeded
000.300.100 Risk check successful
000.300.101 Risk bank account check successful
000.300.102 Risk report successful
000.300.103 Exemption check successful
000.310.100 Account updated
000.310.101 Account updated (Credit card expired)
000.310.110 No updates found, but account is valid
000.400.110 Authentication successful (frictionless flow)
000.400.120 Authentication successful (data only flow)
000.600.000 Transaction succeeded due to external update
Successful but flagged for review
Result code Description Notes
000.400.000 Transaction succeeded (please review manually due to fraud suspicion) The bank processed the transaction but Mobipaid flagged it for risk reasons and are reviewing it.
000.400.020 Transaction succeeded (please review manually due to CVV return code)
000.400.040 Transaction succeeded (please review manually due to amount mismatch)
000.400.050 Transaction succeeded (please review manually because transaction is pending)
000.400.060 Transaction succeeded (approved at merchant's risk)
000.400.070 Transaction succeeded (waiting for external risk review)
000.400.080 Transaction succeeded (please review manually because the service was unavailable)
000.400.081 Transaction succeeded (please review manually, as the risk status not available yet due network timeout)
000.400.082 Transaction succeeded (please review manually, as the risk status not available yet due processing timeout)
000.400.090 Transaction succeeded (please review manually due to external risk check)
000.400.100 Transaction succeeded, risk after payment rejected
Pending
Result code Description Notes
000.200.000 transaction pending
000.200.001 Transaction pending for acquirer, the consumer is not present
000.200.100 successfully created checkout For Checkout, this indicates that the session is now open.
000.200.101 successfully updated checkout
000.200.102 successfully deleted checkout
000.200.103 checkout is pending
000.200.200 Transaction initialized
000.200.201 QR Scanned/Link Clicked, waiting for the final authentication result
100.400.500 waiting for external risk
800.400.500 Waiting for confirmation of non-instant payment. Denied for now.
800.400.501 Waiting for confirmation of non-instant debit. Denied for now.
800.400.502 Waiting for confirmation of non-instant refund. Denied for now.
Rejected
Result code Description Notes
000.400.101 card not participating/authentication unavailable 3-D Secure is not available for this card.
000.400.102 user not enrolled 3-D Secure is not enabled for this card.
000.400.103 Technical Error in 3D system There was a technical error with 3-D Secure.
000.400.104 Missing or malformed 3DSecure Configuration for Channel 3-D Secure is not configured correctly on this channel. Check your 3-D Secure configuration and ensure that it is correct before asking your customer to try again.
000.400.105 Unsupported User Device - Authentication not possible 3-D Secure is not supported on the customer's device. The customer should try again with another device.
000.400.106 invalid payer authentication response(PARes) in 3DSecure Transaction Payment failed due to a failed 3-D Secure response.
000.400.107 Communication Error to Scheme Directory Server Transaction failed due to a communication error.
000.400.108 Cardholder Not Found - card number provided is not found in the ranges of the issuer The customer's card is not supported.
000.400.109 Card is not enrolled for 3DS version 2 3-D Secure 2.0 is not enabled for this card.
000.400.111 Data Only request failed
000.400.112 3RI transaction not permitted
000.400.200 risk management check communication error Transaction failed due to a communication error.
Communication error
Result code Description Notes
000.400.030 Transaction partially failed (please reverse manually due to failed automatic reversal) The customer failed the account verification services (AVS) checks or entered the wrong CVV or CVC. Alternatively, one of the systems processing the transaction was down. Sometimes, if the banks' automatic reversal fails, they must manually reverse the transaction. Mobipaid is working with the acquiring and issuing banks to refund your funds.
900.100.100 unexpected communication error with connector/acquirer The issuing bank, acquiring bank, or a third-party involved in the transaction process was experiencing downtime.
900.100.200 error response from connector/acquirer
900.100.201 error on the external gateway (e.g. on the part of the bank, acquirer,...) Authentication of this payment failed.
900.100.202 invalid transaction flow, the requested function is not applicable for the referenced transaction. An example of this is if the payment method does not support refunds. For example, when the Mobipaid Dashboard cannot refund an EFTsecure transaction or when you try to trigger a partial refund on a payment method that does not support refunds. To perform the refund, you must do a manual EFT refund from your bank account to your customer's bank account.
900.100.203 Error on the internal gateway
900.100.204 Error during message parsing
900.100.300 timeout, uncertain result The acquiring bank or a third-party involved in the transaction process was experiencing downtime.
900.100.301 Transaction timed out without response from connector/acquirer. It was reversed.
900.100.310 Transaction timed out due to internal system misconfiguration. Request to acquirer has not been sent.
900.100.400 timeout at connectors/acquirer side The payment request timed out on the payment provider's end. One reason why this occurs is if the customer does not approve the payment provider's authentication request.
900.100.500 timeout at connectors/acquirer side (try later)
900.100.600 connector/acquirer currently down
900.100.700 error on the external service provider
900.200.100 Message Sequence Number of Connector out of sync
900.300.600 user session timeout The customer's session timed out before they approved the payment request.
900.400.100 unexpected communication error with external risk provider
System error
Result code Description Notes
600.100.100 Unexpected Integrator Error (Request could not be processed)
800.500.100 direct debit transaction declined for unknown reason
800.500.110 Unable to process transaction - ran out of terminalIds - please contact acquirer
800.600.100 transaction is being already processed Transaction is already being processed. Please wait before attempting again.
800.800.400 Connector/acquirer system is under maintenance System under maintenance. Please wait before attempting to pay again or pay using a different payment method.
800.800.800 The payment system is currently unavailable, please contact support in case this happens again. System unavailable. Please wait before attempting to pay again or pay using a different payment method.
800.800.801 The payment system is currently under maintenance. Please apologize for the inconvenience this may cause. If you were not informed of this maintenance window in advance, contact your sales representative. System under maintenance. Please wait before attempting to pay again or pay using a different payment method.
999.999.888 UNDEFINED PLATFORM DATABASE ERROR
999.999.999 UNDEFINED CONNECTOR/ACQUIRER ERROR
Asynchronous workflow error
Result code Description Notes
100.395.101 Bank not supported for Giropay
100.395.102 Account not enabled for Giropay e.g. test account
100.395.501 Previously pending online transfer transaction timed out
100.395.502 Acquirer/Bank reported timeout on online transfer transaction
100.396.101 Cancelled by user The user started a transaction and then cancelled it or Checkout.
100.396.102 Not confirmed by user
100.396.103 Previously pending transaction timed out The registration transaction (RG) was not authenticated and timed out. The debit transaction references the registration token so might also fail. See the description for 800.100.152 for more information.
100.396.104 Uncertain status - probably cancelled by user The user started a transaction and then cancelled it or Checkout.
100.396.106 User did not agree to payment method terms
100.396.201 Cancelled by merchant
100.397.101 Cancelled by user due to external update
100.397.102 Rejected by connector/acquirer due to external update
Soft decline
Result code Description
300.100.100 Transaction declined (additional customer authentication required)
External risk system check
Result code Description Notes
100.380.401 User Authentication Failed Wrong OTP. This result code signifies that the bank's system was unable to authenticate the customer. Your customer's transaction failed because, (1) you entered the wrong OTP or (2) there was a field or system error with the OTP. Your bank was unable to authenticate you and process the transaction. Try again or contact your bank to find out if there is an issue with the OTP system.
100.380.501 Risk management transaction timeout The customer probably did not enter their OTP or they might not have seen the 3-D Secure page because their browser or an extension might have blocked it, or because of an issue with the bank's 3-D Secure server. If the card is 3-D Secure enabled, the customer should receive an OTP during the authentication phase of the payment. The customer's bank handles OTP generation and sending. Mobipaid is not aware of and does not control the 3-D Secure authentication process. The customer's bank also authenticates the payment if the customer provides the correct OTP and when completed, sends Mobipaid a successful payment response. Mobipaid does not know upfront whether a customer enabled their card for 3-D Secure. Your customer might not have entered the OTP in time, their bank card is not enabled for online transactions, or there could be an issue with the bank's 3-D Secure server or transaction approval server. Ask your customer to try again if you know they activated their bank card for online transactions or ask them to contact their bank.
100.400.000 transaction declined (Wrong Address)
100.400.001 transaction declined (Wrong Identification)
100.400.002 Transaction declined (Insufficient credibility score)
100.400.005 transaction must be executed for German address
100.400.007 System error ( possible incorrect/missing input data)
100.400.020 transaction declined
100.400.021 transaction declined for country
100.400.030 transaction not authorized. Please check manually
100.400.039 transaction declined for other error
100.400.040 authorization failure
100.400.041 transaction must be executed for German address
100.400.042 transaction declined by SCHUFA (Insufficient credibility score)
Result code Description
100.400.043 transaction declined because of missing obligatory parameter(s)
100.400.044 transaction not authorized. Please check manually
100.400.045 SCHUFA result not definite. Please check manually
100.400.051 SCHUFA system error (possible incorrect/missing input data)
100.400.060 authorization failure
100.400.061 transaction declined (Insufficient credibility score)
100.400.063 transaction declined because of missing obligatory parameter(s)
100.400.064 transaction must be executed for Austrian, German or Swiss address
100.400.065 result ambiguous. Please check manually
100.400.071 system error (possible incorrect/missing input data)
100.400.080 authorization failure
100.400.081 transaction declined
100.400.083 transaction declined because of missing obligatory parameter(s)
100.400.084 transaction can not be executed for given country
100.400.085 result ambiguous. Please check manually
100.400.086 transaction declined (Wrong Address)
100.400.087 transaction declined (Wrong Identification)
100.400.091 system error (possible incorrect/missing input data)
100.400.100 transaction declined - very bad rating
100.400.120 authorization failure
100.400.121 account blacklisted
100.400.122 transaction must be executed for valid German account
100.400.123 transaction declined because of missing obligatory parameter(s)
100.400.130 system error (possible incorrect/missing input data)
100.400.139 system error (possible incorrect/missing input data)
100.400.140 transaction declined by GateKeeper
100.400.141 Challenge by ReD Shield
100.400.142 Deny by ReD Shield
100.400.143 Noscore by ReD Shield
100.400.144 ReD Shield data error
100.400.145 ReD Shield connection error
100.400.146 Line item error by ReD Shield
100.400.147 Payment void and transaction denied by ReD Shield
100.400.148 Payment void and transaction challenged by ReD Shield
100.400.149 Payment void and data error by ReD Shield
100.400.150 Payment void and connection error by ReD Shield
100.400.151 Payment void and line item error by ReD Shield
100.400.152 Payment void and error returned by ReD Shield
100.400.241 Challenged by Threat Metrix
100.400.242 Denied by Threat Metrix
Result code Description
100.400.243 Invalid sessionId
100.400.260 authorization failure
100.400.300 abort checkout process
100.400.301 reenter age/birthdate
100.400.302 reenter address (packstation not allowed)
100.400.303 reenter address
100.400.304 invalid input data
100.400.305 invalid foreign address
100.400.306 delivery address error
100.400.307 offer only secure methods of payment
100.400.308 offer only secure methods of payment; possibly abort checkout
100.400.309 confirm corrected address; if not confirmed, offer secure methods of payment only
100.400.310 confirm bank account data; if not confirmed, offer secure methods of payment only
100.400.311 transaction declined (format error)
100.400.312 transaction declined (invalid configuration data)
100.400.313 currency field is invalid or missing
100.400.314 amount invalid or empty
100.400.315 invalid or missing email address (probably invalid syntax)
100.400.316 transaction declined (card missing)
100.400.317 transaction declined (invalid card)
100.400.318 invalid IP number
100.400.319 transaction declined by risk system
100.400.320 shopping cart data invalid or missing
100.400.321 payment type invalid or missing
100.400.322 encryption method invalid or missing
100.400.323 certificate invalid or missing
100.400.324 Error on the external risk system
100.400.325 External risk system not available
100.400.326 Risk bank account check unsuccessful
100.400.327 Risk report unsuccessful
100.400.328 Risk report unsuccessful (invalid data)
Address validation
Result code Description Notes
800.400.100 AVS Check Failed Card address validation failed. The customer should try again with the correct address.
800.400.101 Mismatch of AVS street value Card address validation failed. The customer should try again with the correct address.
800.400.102 Mismatch of AVS street number Card address validation failed. The customer should try again with the correct address.
800.400.103 Mismatch of AVS PO box value fatal
800.400.104 Mismatch of AVS zip code value fatal Card address validation failed. The customer should try again with the correct address.
800.400.105 Mismatch of AVS settings (AVSkip, AVIgnore, AVSRejectPolicy) value
800.400.110 AVS Check Failed. Amount has still been reserved on the customer's card and will be released in a few business days. Please ensure the billing address is accurate before retrying the transaction. Card address validation failed. The customer should try again with the correct address.
800.400.150 Implausible address data Card address validation failed. The customer should try again with the correct address.
800.400.151 Implausible address state data Card address validation failed. The customer should try again with the correct address.
3-D Secure
Result code Description Notes
100.390.101 purchase amount/currency mismatch
100.390.102 PARes Validation failed
100.390.103 PARes Validation failed - problem with signature
100.390.104 XID mismatch
100.390.105 Transaction rejected because of technical error in 3DSecure system Authentication of this payment failed because of a bank error.
100.390.106 Transaction rejected because of error in 3DSecure configuration The bank's 3-D Secure configuration is incorrect. The customer should contact their bank to identify what the issue is.
100.390.107 Transaction rejected because cardholder authentication unavailable The issuing bank rejected the transaction and it failed because, (1) the card holder or issuing bank is not enrolled for 3-D Secure, (2) 3-D Secure card authentication was unsuccessful, for example, if the card holder is not enrolled for 3-D Secure, or (3) the card or issuing bank is not 3-D Secure ready. The customer must contact their bank to check if they have enrolled for 3-D Secure, or they must check themselves if they enrolled their card for 3-D Secure.
100.390.108 Transaction rejected because merchant not participating in 3DSecure program
100.390.109 Transaction rejected because of Visa status 'U' or AMEX status 'N' or 'U' in 3DSecure program The bank's 3-D Secure system was experiencing downtime and could not process the transaction.
100.390.110 Cardholder Not Found - card number provided is not found in the ranges of the issuer
100.390.111 Communication Error to Scheme Directory Server The issuing bank, acquiring bank, or a third-party involved in the transaction process was experiencing downtime.
100.390.112 Technical Error in 3D system The bank's 3-D Secure process encountered an error. It could be that their 3-D Secure system is down, ask the customer to check in with their bank.
100.390.113 Unsupported User Device - Authentication not possible 3-D Secure is not supported on the customer's device. The customer should try again with another device.
100.390.114 Not authenticated because the issuer is rejecting authentication
100.390.115 Authentication failed due to invalid message format
100.390.116 Access denied to the authentication system
100.390.117 Authentication failed due to invalid data fields
100.390.118 Authentication failed due to suspected fraud The customer should contact their issuing bank bank for further information.
800.400.200 Invalid Payer Authentication in 3DSecure transaction
Allowlist validation
Result code Description
800.200.159 account or user is blacklisted (card stolen)
800.200.160 account or user is blacklisted (card blocked)
800.200.165 account or user is blacklisted (card lost)
800.200.202 account or user is blacklisted (account closed)
800.200.208 account or user is blacklisted (account blocked)
800.200.220 account or user is blacklisted (fraudulent transaction)
800.300.101 account or user is blacklisted
800.300.102 country blacklisted
800.300.200 email is blacklisted
800.300.301 ip blacklisted
800.300.302 ip is anonymous proxy
800.300.401 bin blacklisted
800.300.500 transaction temporary blacklisted (too many tries invalid CVV)
800.300.501 transaction temporary blacklisted (too many tries invalid expire date)
800.310.200 Account closed
800.310.210 Account not found
800.310.211 Account not found (BIN/issuer not participating)
Risk validation
Result code Description Notes
800.110.100 duplicate transaction The issuing bank has identified that the transaction reference, unique ID, or retreival reference number of the transaction is the same as an earlier transaction. Mobipaid must raise this with the acquiring bank of the merchant who can investigate and confirm why they flagged the transaction as a duplicate.
800.120.100 Rejected by Throttling.
800.120.101 maximum number of transactions per account already exceeded
800.120.102 maximum number of transactions per ip already exceeded
800.120.103 maximum number of transactions per email already exceeded The customer's bank rejects the transaction if it fails velocity checking for the email ID in risk management. The customer transacted too many times in a limited amount of time and must allow some time to elapse before transacting again.
800.120.200 maximum total volume of transactions already exceeded
800.120.201 maximum total volume of transactions per account already exceeded
800.120.202 maximum total volume of transactions per ip already exceeded
800.120.203 maximum total volume of transactions per email already exceeded
800.120.300 chargeback rate per bin exceeded
800.120.401 maximum number of transactions or total volume for configured MIDs or CIs exceeded
800.130.100 Transaction with same TransactionId already exists
800.140.100 maximum number of registrations per mobile number exceeded
800.140.101 maximum number of registrations per email address exceeded
800.140.110 maximum number of registrations of mobile per credit card number exceeded
800.140.111 maximum number of registrations of credit card number per mobile exceeded
800.140.112 maximum number of registrations of email per credit card number exceeded When a merchant enables this risk setting for their website or business, a card number can only have one email registration. This error occurs when trying to register a card and email that was already registered. The customer should either use their registered email or use a new email when registering with an email.
800.140.113 maximum number of registrations of credit card number per email exceeded
800.150.100 Account Holder does not match Customer Name
800.160.100 Invalid payment data for configured Shopper Dispatching Type
800.160.110 Invalid payment data for configured Payment Dispatching Type
800.160.120 Invalid payment data for configured Recurring Transaction Dispatching Type The API parameters are wrong for recurring or one-click transactions.
800.160.130 Invalid payment data for configured TicketSize Dispatching Type
Configuration validation
Result code Description Notes
500.100.201 Channel/Merchant is disabled (no processing possible)
500.100.202 Channel/Merchant is new (no processing possible yet)
500.100.203 Channel/Merchant is closed (no processing possible)
500.100.301 Merchant-Connector is disabled (no processing possible)
500.100.302 Merchant-Connector is new (no processing possible yet)
500.100.303 Merchant-Connector is closed (no processing possible)
500.100.304 Merchant-Connector is disabled at gateway (no processing possible)
500.100.401 Connector is unavailable (no processing possible)
500.100.402 Connector is new (no processing possible yet)
500.100.403 Connector is unavailable (no processing possible)
500.200.101 No target account configured for DD transaction
600.200.100 invalid Payment Method
600.200.200 Unsupported Payment Method
600.200.201 Channel/Merchant not configured for this payment method
600.200.202 Channel/Merchant not configured for this payment type An example of this is if a customer tries to pay with a payment method, for example, an American Express card, when American Express is not configured for your Mobipaid account. Inform your customer that the payment method that they attempted is not supported, and that they should select another payment method and try again.
600.200.300 invalid Payment Type
600.200.310 invalid Payment Type for given Payment Method
600.200.400 Unsupported Payment Type An example of this is if you try to execute a payment type (such as rebill) that is not supported on a specific API or for a certain payment method.
600.200.500 Invalid payment data. You are not configured for this currency or sub type (country or brand) An example of this is if a customer tries to process an American Express card when American Express is not configured for your Mobipaid account, or if you or Mobipaid have blocked cards issued in a particular country.
600.200.501 Invalid payment data for Recurring transaction. Merchant or transaction data has wrong recurring configuration.
600.200.600 invalid payment code (type or method)
600.200.700 invalid payment mode (you are not configured for the requested transaction mode)
600.200.701 testMode not allowed
600.200.800 invalid brand for given payment method and payment mode (you are not configured for the requested transaction mode)
600.200.810 invalid return code provided
600.300.101 Merchant key not found
600.300.200 merchant source IP address not whitelisted
600.300.210 merchant notificationUrl not whitelisted
600.300.211 shopperResultUrl not whitelisted
800.121.100 Channel not configured for given source type. Please contact your account manager.
800.121.200 Secure Query is not enabled for this entity. Please contact your account manager.
Registration validation
Result code Description Notes
100.150.100 request contains no Account data and no registration id
100.150.101 invalid format for specified registration id (must be uuid format)
100.150.200 registration does not exist Mobipaid did not find a stored card for that token.
100.150.201 registration is not confirmed yet
100.150.202 registration is already deregistered You referenced a deleted stored card.
100.150.203 registration is not valid, probably initially rejected When the customer tried to register their card for the payment, they provided the wrong data or no data which results in the issuing bank rejecting the registration. The initial registration phase of the transaction failed, meaning, (1) the registering of the card contained no account holder data, (2) the issuing bank was offline for the initial period of the transaction, or (3) did not pass 3-D Secure resulting in the token not being valid. Try the transaction again, and if it does not succeed, contact your bank for assistance.
100.150.204 account registration reference pointed to no registration transaction
100.150.205 referenced registration does not contain an account
100.150.300 payment only allowed with valid initial registration
100.350.100 referenced session is REJECTED (no action possible). An example of this is if you try to refund a rejected debit transaction.
100.350.101 referenced session is CLOSED (no action possible)
100.350.200 undefined session state
100.350.201 referencing a registration through reference id is not applicable for this payment type
100.350.301 confirmation (CF) must be registered (RG) first
100.350.302 session already confirmed (CF)
100.350.303 cannot deregister (DR) unregistered account and/or customer
100.350.310 cannot confirm (CF) session via XML
100.350.311 cannot confirm (CF) on a registration passthrough channel
100.350.312 cannot do passthrough on non-internal connector
100.350.313 registration of this type has to provide confirmation url
100.350.314 customer could not be notified of pin to confirm registration (channel)
100.350.315 customer could not be notified of pin to confirm registration (sending failed)
100.350.316 cannot extend the token (TE) on unregistered account
100.350.400 no or invalid PIN (email/SMS/MicroDeposit authentication) entered
100.350.500 unable to obtain personal (virtual) account - most likely no more accounts available
100.350.601 registration is not allowed to reference another transaction
100.350.602 Registration is not allowed for recurring payment migration
Job validation
Result code Description
100.250.100 job contains no execution information
100.250.105 invalid or missing action type
100.250.106 invalid or missing duration unit
100.250.107 invalid or missing notice unit
100.250.110 missing job execution
100.250.111 missing job expression
100.250.120 invalid execution parameters, combination does not conform to standard
100.250.121 invalid execution parameters, hour must be between 0 and 23
100.250.122 invalid execution parameters, minute and seconds must be between 0 and 59
100.250.123 invalid execution parameters, Day of month must be between 1 and 31
100.250.124 invalid execution parameters, month must be between 1 and 12
100.250.125 invalid execution parameters, Day of week must be between 1 and 7
100.250.250 Job tag missing
100.360.201 unknown schedule type
100.360.300 cannot schedule(SD) unscheduled job
100.360.303 cannot deschedule(DS) unscheduled job
100.360.400 schedule module not configured for LIVE transaction mode
Reference validation
Result code Description Notes
700.100.100 reference id does not exist
700.100.200 non matching reference amount
700.100.300 invalid amount (probably too large)
700.100.400 referenced payment method does not match with requested payment method
700.100.500 referenced payment currency does not match with requested payment currency
700.100.600 referenced mode does not match with requested payment mode
700.100.700 referenced transaction is of inappropriate type
700.100.701 referenced a DB transaction without explicitly providing an account. Not allowed to used referenced account.
700.100.710 cross-linkage of two transaction-trees
700.300.100 referenced tx can not be refunded, captured or reversed (invalid type)
700.300.200 referenced tx was rejected
700.300.300 referenced tx can not be refunded, captured or reversed (already refunded, captured or reversed)
700.300.400 referenced tx can not be captured (cut off time reached)
700.300.500 chargeback error (multiple chargebacks)
700.300.600 referenced tx can not be refunded or reversed (was chargebacked)
700.300.700 referenced tx can not be reversed (reversal not possible anymore)
700.300.800 referenced tx can not be voided
700.400.000 serious workflow error (call support)
700.400.100 cannot capture (PA value exceeded, PA reverted or invalid workflow?) The preauthorisation that you are capturing was already captured, you are capturing more than the preauthorised amount, or you are capturing a reversed preauthorisation.
700.400.101 cannot capture (Not supported by authorization system)
700.400.200 cannot refund (refund volume exceeded or tx reversed or invalid workflow?) The transaction that you are refunding was already refunded or reversed, or you are refunding a value greater than the original amount.
700.400.300 cannot reverse (already refunded|reversed, invalid workflow or amount exceeded) The transaction that you are refunding was already refunded or reversed, or you are refunding a value greater than the original amount.
700.400.400 cannot chargeback (already chargebacked or invalid workflow?)
700.400.402 chargeback can only be generated internally by the payment system
700.400.410 cannot reverse chargeback (chargeback is already reversed or invalid workflow?)
Result code Description Notes
700.400.411 cannot reverse chargeback or invalid workflow (second chargeback)
700.400.420 cannot reverse chargeback (no chargeback existing or invalid workflow?)
700.400.510 capture needs at least one successful transaction of type (PA)
700.400.520 refund needs at least one successful transaction of type (CP or DB or RB or RC) You are trying to refund a transaction that was unsuccessful.
700.400.530 reversal needs at least one successful transaction of type (CP or DB or RB or PA)
700.400.540 reconciliation needs at least one successful transaction of type (CP or DB or RB)
700.400.550 chargeback needs at least one successful transaction of type (CP or DB or RB)
700.400.560 receipt needs at least one successful transaction of type (PA or CP or DB or RB)
700.400.561 receipt on a registration needs a successful registration in state 'OPEN'
700.400.562 receipts are configured to be generated only internally by the payment system
700.400.565 finalize needs at least one successful transaction of type (PA or DB)
700.400.570 cannot reference a waiting/pending transaction You are trying te execute a transaction based on a transaction that is still processing, for example, you are trying to refund a transaction, but the debit is not complete.
700.400.580 cannot find transaction
700.400.590 installment needs at least one successful transaction of type (DB or PA)
700.400.600 finalize needs at least one successful transaction of type (IN, DB, PA or CD)
700.400.700 initial and referencing channel-ids do not match An example of this is if you try to refund a transaction on a different channel from the original debit, or try to capture and authorise on different channels.
700.450.001 cannot transfer money from one account to the same account
700.500.001 referenced session contains too many transactions Transaction failed due to an internal error.
700.500.002 capture or preauthorization appears too late in referenced session
700.500.003 test accounts not allowed in production
700.500.004 cannot refer a transaction which contains deleted customer information
Format validation
Result code Description Notes
100.300.101 invalid test mode (please use LIVE or INTEGRATOR_TEST or CONNECTOR_TEST)
100.300.200 transaction id too long
100.300.300 invalid reference id An example of this is if a refund does not reference a successful debit.
100.300.400 missing or invalid channel id Your merchant credentials are not correct in the transaction request.
100.300.401 missing or invalid sender id
100.300.402 missing or invalid version
100.300.501 invalid response id
100.300.600 invalid or missing user login
100.300.601 invalid or missing user pwd
100.300.700 invalid relevance
100.300.701 invalid relevance for given payment type
100.370.100 transaction declined
100.370.101 responseUrl not set in Transaction/Frontend
100.370.102 malformed responseUrl in Transaction/Frontend
100.370.110 transaction must be executed for German address
100.370.111 system error( possible incorrect/missing input data)
100.370.121 no or unknown ECI Type defined in Authentication
100.370.122 parameter with null key provided in 3DSecure Authentication
100.370.123 no or unknown verification type defined in 3DSecure Authentication
100.370.124 unknown parameter key in 3DSecure Authentication
100.370.125 Invalid 3DSecure Verification_ID. Must have Base64 encoding a Length of 28 digits
100.370.131 no or unknown authentication type defined in Transaction/Authentication@type
100.370.132 no result indicator defined Transaction/Authentication/resultIndicator
100.500.101 payment method invalid
100.500.201 payment type invalid
100.500.301 invalid due date
100.500.302 invalid mandate date of signature
100.500.303 invalid mandate id
100.500.304 invalid mandate external id
100.600.500 usage field too long
100.900.500 invalid recurrence mode
200.100.101 invalid Request Message. No valid XML. XML must be url-encoded! maybe it contains a not encoded ampersand or something similar.
200.100.102 invalid Request. XML load missing (XML string must be sent within parameter 'load')
200.100.103 invalid Request Message. The request contains structural errors
200.100.150 transaction of multirequest not processed because of subsequent problems
200.100.151 multi-request is allowed with a maximum of 10 transactions only
200.100.199 Wrong Web Interface / URL used. Please check out the Tech Quick Start Doc Chapter 3.
200.100.201 invalid Request/Transaction tag (not present or [partially] empty)
200.100.300 invalid Request/Transaction/Payment tag (no or invalid code specified)
200.100.301 invalid Request/Transaction/Payment tag (not present or [partially] empty)
200.100.302 invalid Request/Transaction/Payment/Presentation tag (not present or [partially] empty) Your merchant credentials are not correct in the transaction request.
200.100.401 invalid Request/Transaction/Account tag (not present or [partially] empty)
200.100.402 invalid Request/Transaction/Account(Customer, Relevance) tag (one of Account/Customer/Relevance must be present)
200.100.403 invalid Request/Transaction/Analysis tag (Criterions must have a name and value)
200.100.404 invalid Request/Transaction/Account (must not be present)
200.100.501 invalid or missing customer
200.100.502 invalid Request/Transaction/Customer/Name tag (not present or [partially] empty)
200.100.503 invalid Request/Transaction/Customer/Contact tag (not present or [partially] empty)
200.100.504 invalid Request/Transaction/Customer/Address tag (not present or [partially] empty)
200.100.601 invalid Request/Transaction/(ApplePay|GooglePay) tag (not present or [partially] empty)
200.100.602 invalid Request/Transaction/(ApplePay|GooglePay)/PaymentToken tag (not present or [partially] empty)
200.100.603 invalid Request/Transaction/(ApplePay|GooglePay)/PaymentToken tag (decryption error)
200.200.106 duplicate transaction. Please verify that the UUID is unique
200.300.403 Invalid HTTP method
200.300.404 invalid or missing parameter You omitted a required parameter (for example, the transaction amount) or submitted an invalid parameter. If you see this error on the Mobipaid Dashboard, contact support for assistance.
200.300.405 Duplicate entity
200.300.406 Entity not found
200.300.407 Entity not specific enough
800.900.100 sender authorization failed
800.900.101 invalid email address (probably invalid syntax)
800.900.200 invalid phone number (has to start with a digit or a '+', at least 7 and max 25 chars long)
800.900.201 Unknown channel The entity ID in the payment request is wrong.
800.900.300 Invalid authentication information The authentication password is wrong.
800.900.301 user authorization failed, user has no sufficient rights to process transaction
800.900.302 Authorization failed
800.900.303 No token created
800.900.399 Secure Registration Problem
800.900.401 Invalid IP number
800.900.450 Invalid birthdate
Address validation
Result code Description
100.800.100 request contains no street
100.800.101 The combination of street1 and street2 must not exceed 201 characters.
100.800.102 The combination of street1 and street2 must not contain only numbers.
100.800.200 request contains no zip
100.800.201 zip too long
100.800.202 invalid zip
100.800.300 request contains no city
100.800.301 city too long
100.800.302 invalid city
100.800.400 invalid state/country combination
100.800.401 state too long
100.800.500 request contains no country
100.800.501 invalid country
Contact validation
Result code Description
100.700.100 customer.surname may not be null
100.700.101 customer.surname length must be between 0 and 50
100.700.200 customer.givenName may not be null
100.700.201 customer.givenName length must be between 0 and 50
100.700.300 invalid salutation
100.700.400 invalid title
100.700.500 company name too long
100.700.800 identity contains no or invalid 'paper'
100.700.801 identity contains no or invalid identification value
100.700.802 identification value too long
100.700.810 specify at least one identity
100.900.100 request contains no email address
100.900.101 invalid email address (probably invalid syntax)
100.900.105 email address too long (max 50 chars)
100.900.200 invalid phone number (has to start with a digit or a '+', at least 7 and max 25 chars long)
100.900.300 invalid mobile phone number (has to start with a digit or a '+', at least 7 and max 25 chars long)
100.900.301 mobile phone number mandatory
100.900.400 request contains no ip number
100.900.401 invalid ip number
100.900.450 invalid birthdate
Account validation
Result code Description Notes
100.100.100 request contains no creditcard, bank account number or bank name
100.100.101 invalid creditcard, bank account number or bank name The transaction failed because, (1) you entered the wrong credit card number, bank account number, or bank name or (2) your credit card is not activated for online transactions. Try again or contact your bank.
100.100.104 invalid unique id / root unique id
100.100.200 request contains no month
100.100.201 invalid month
100.100.300 request contains no year
100.100.301 invalid year
100.100.303 card expired The transaction failed because the customer used an expired card. The customer should try again with a valid card.
100.100.304 card not yet valid
100.100.305 invalid expiration date format
100.100.400 request contains no cc/bank account holder
100.100.401 cc/bank account holder too short or too long
100.100.402 cc/bank account holder not valid
100.100.500 request contains no credit card brand
100.100.501 invalid credit card brand
100.100.600 empty CVV for Visa,MASTER, AMEX not allowed
100.100.601 invalid CVV/brand combination
100.100.650 empty CreditCardIssueNumber for MAESTRO not allowed
100.100.651 invalid CreditCardIssueNumber
100.100.700 invalid cc number/brand combination Your customer might be entering all the digits found on the reverse side of their card, instead of only the last three digits for Visa and Mastercard or the last four digits for Amex and Diners. Remember that by default, Amex is not activated unless you have specifically requested it. If you receive this error often, Mobipaid recommends showing an image of what a CVV is and specifying to customers during the checkout the amount of digits they need to enter. Your customer's transaction failed because, (1) you entered the wrong credit card number, CVV, or CVC, (2) the credit card is not activated for online transactions, or (3) the credit card type is not accepted. Provide Mobipaid with the issuing bank and the country of issue of the credit card for further assistance.
100.100.701 suspecting fraud, this card may not be processed
100.200.100 bank account contains no or invalid country
100.200.103 bank account has invalid bankcode/name account number combination
100.200.104 bank account has invalid account number format
100.200.200 bank account needs to be registered and confirmed first. Country is mandate based.
100.210.101 virtual account contains no or invalid Id
100.210.102 virtual account contains no or invalid brand
100.211.101 user account contains no or invalid Id
100.211.102 user account contains no or invalid brand
100.211.103 no password defined for user account
100.211.104 password does not meet safety requirements (needs 8 digits at least and must contain letters and numbers)
100.211.105 wallet id has to be a valid email address
100.211.106 voucher ids have 32 digits always
100.212.101 wallet account registration must not have an initial balance
100.212.102 wallet account contains no or invalid brand
100.212.103 wallet account payment transaction needs to reference a registration
Amount validation
Result code Description
100.550.300 request contains no amount or too low amount
100.550.301 amount too large
100.550.303 amount format invalid (only two decimals allowed).
100.550.310 amount exceeds limit for the registered account.
100.550.311 exceeding account balance
100.550.312 Amount is outside allowed ticket size boundaries
100.550.400 request contains no currency
100.550.401 invalid currency
100.550.601 risk amount too large
100.550.603 risk amount format invalid (only two decimals allowed)
100.550.605 risk amount is smaller than amount (it must be equal or bigger than amount)
100.550.701 amounts not matched
100.550.702 currencies not matched
Risk management
Result code Description
100.380.101 transaction contains no risk management part
100.380.201 no risk management process type specified
100.380.305 no frontend information provided for asynchronous transaction
100.380.306 no authentication data provided in risk management transaction
Chargebacks
Result code Description
000.100.200 Reason not Specified
000.100.201 Account or Bank Details Incorrect
000.100.202 Account Closed
000.100.203 Insufficient Funds
000.100.204 Mandate not Valid
000.100.205 Mandate Cancelled
000.100.206 Revocation or Dispute
000.100.207 Cancellation in Clearing Network
000.100.208 Account Blocked
000.100.209 Account does not exist
000.100.210 Invalid Amount
000.100.211 Transaction succeeded (amount of transaction is smaller than amount of pre-authorization)
000.100.212 Transaction succeeded (amount of transaction is greater than amount of pre-authorization)
000.100.220 Fraudulent Transaction
000.100.221 Merchandise Not Received
000.100.222 Transaction Not Recognized By Cardholder
000.100.223 Service Not Rendered
000.100.224 Duplicate Processing
000.100.225 Credit Not Processed
000.100.226 Cannot be settled
000.100.227 Configuration Issue
000.100.228 Temporary Communication Error - Retry
000.100.229 Incorrect Instructions
000.100.230 Unauthorised Charge
000.100.231 Late Representment
000.100.232 Liability Shift
000.100.233 Authorization-Related Chargeback
000.100.234 Non receipt of merchandise
000.100.299 Unspecified (Technical)
Payment History

Fetch your payment history from Mobipaid in order to show how many payments have been done through our application.

Our payment history API support fetching payment history and refund a paid transaction

Get Payment History

You can get a list of payment history using our GET method.

Here are the available query string parameters to help you fetch the right payment history:

Query Description
start_date

 

string

Start search for payment history from the date entered into this parameter. The format is "YYYY-MM-DD"

end_date

required with condition

string

You need to specify the end_date if you specify the start_date. It use the same format of "YYYY-MM-DD"

page

 

number

Select the payment history

limit

 

number

Limit the amount of items fetched from payment history. The default value is 10

keywords

 

string

Search for a payment history that has the specified keyword in email, mobile number or reference number

user_id string
Search for a payment history that has the specified by user id

 

Request URL  
https://test.mobipaid.io/v2/payments?{optional_parameter}
Examples
curl -X GET https://test.mobipaid.io/v2/payments?{optional parameters here} \
--header "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests

url = "https://test.mobipaid.io/v2/payments?limit=5&page=1"

payload = {}
headers = {
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0',
  'Content-Type': 'application/json'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/payments?limit=5&page=1',
  'headers': {
    'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0',
    'Content-Type': 'application/json'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/payments?limit=5&page=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/payments?limit=5&page=1")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request["Content-Type"] = "application/json"

response = https.request(request)
puts response.read_body

Result Format
{
    "payments": [
        {
            "payment_id": "8ac7a4a2735bed2301736a2e1cd40318",
            "reference_payment_id": null,
            "transaction_id": "1130OO",
            "transaction_type": "once-off",
            "reference_number": "123",
            "mobile_number": "+12345678901",
            "email": "email@domain.com",
            "amount": 1500.12,
            "currency": "ZAR",
            "payment_type": "CC.PA",
            "payment_date": "2020-07-20T03:04:33.000Z",
            "status": "success",
            "result_description": "Request successfully processed in 'Merchant in Integrator Test Mode'",
            "payment_url": "https://s.mpaid.us/sMBaf",
            "transaction_date": "2020-07-20T03:03:54.000Z",
            "request_detail": {
                "tip_amount": 0,
                "tax_percentage": "0.00 %",
                "tax_amount": 0,
                "additional_info": {},
                "additional_info_text": {},
                "additional_info_dropdown": {},
                "cart_items": {}
            },
           "user_id": 18
        },
        {
            "payment_id": "8ac7a4a1730e6e3e017313846dd54eeb",
            "reference_payment_id": null,
            "transaction_id": "11PO",
            "transaction_type": "pos_payment",
            "reference_number": "MP1",
            "mobile_number": null,
            "email": null,
            "amount": 50.33,
            "currency": "EUR",
            "payment_type": "CC.DB",
            "payment_date": "2020-07-03T07:11:52.000Z",
            "status": "failed",
            "result_description": "Invalid payment data. You are not configured for this currency or sub type (country or brand)",
            "payment_url": "https://sandbox-pay.mobipaid.com/pos_link/GpWv30S-OqDAtU3tOjO6NQ",
            "transaction_date": "2020-04-03T06:21:44.000Z",
            "request_detail": {
                "tip_amount": 0,
                "tax_percentage": "0.00 %",
                "tax_amount": 0,
                "additional_info": {},
                "additional_info_text": {
                    "text": "asd"
                },
                "additional_info_dropdown": {
                    "size": "S"
                },
                "cart_items": [
                    {
                        "sku": "-",
                        "name": "Blue Shirt XL",
                        "qty": 3,
                        "unit_price": 2
                    },
                    {
                        "sku": "456",
                        "name": "Black Short Pant XL",
                        "qty": 2,
                        "unit_price": 22.4
                    }
                ]
            }
        },
       "user_id": 18
    ],
    "page": 1,
    "limit": 2,
    "start_date": "2020-07-01",
    "end_date": "2020-08-30",
    "page_count": 3,
    "total_count": 5
}
{
    "message": "Forbidden"
}

Request Samples
Loading...
Get Payment History detail

Fetch a single payment history from Mobipaid

You can use the same GET method like in Payment History, but you have to add payment_id in the route parameter.

Request URL  
https://test.mobipaid.io/v2/payments/{payment_id}
Examples
curl -X GET https://test.mobipaid.io/v2/payments/{payment_id} \
--header "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests

url = "https://test.mobipaid.io/v2/payments/8ac7a4a26ff5c0c4016ff617ed2128fa99999999"

payload = {}
headers = {
  'Content-Type': ' application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/payments/8ac7a4a26ff5c0c4016ff617ed2128fa99999999',
  'headers': {
    'Content-Type': ' application/json',
    'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/payments/8ac7a4a26ff5c0c4016ff617ed2128fa99999999",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type:  application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/payments/8ac7a4a26ff5c0c4016ff617ed2128fa99999999")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = " application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "payment": {
        "payment_id": "8ac7a4a1730e6e3e017313846dd54eeb",
        "reference_payment_id": null,
        "transaction_id": "11PO",
        "transaction_type": "pos_payment",
        "reference_number": "MP1",
        "mobile_number": null,
        "email": null,
        "amount": 50.33,
        "currency": "EUR",
        "payment_type": "CC.DB",
        "payment_date": "2020-07-03T07:11:52.000Z",
        "status": "failed",
        "result_description": "Invalid payment data. You are not configured for this currency or sub type (country or brand)",
        "payment_url": "https://sandbox-pay.mobipaid.com/pos_link/GpWv30S-OqDAtU3tOjO6NQ",
        "transaction_date": "2020-04-03T06:21:44.000Z",
        "request_detail": {
            "tip_amount": 0,
            "tax_percentage": "0.00 %",
            "tax_amount": 0,
            "additional_info": {},
            "additional_info_text": {
                "text": "asd"
            },
            "additional_info_dropdown": {
                "size": "S"
            },
            "cart_items": [
                {
                    "sku": "-",
                    "name": "Blue Shirt XL",
                    "qty": 3,
                    "unit_price": 2
                },
                {
                    "sku": "456",
                    "name": "Black Short Pant XL",
                    "qty": 2,
                    "unit_price": 22.4
                }
            ]
        }
    }
}
{
"message": "Your Payment history data is not found",
"result": "failed"
}
{
    "message": "Forbidden"
}

Request Samples
Loading...
Refund

Refund a paid payment history from Mobipaid. You have to include the payment_id of the payment history you want to refund.

Body Params
Field Description
amount

required

number

The amount to be refunded to the customer

email

string

A refund receipt will be send to this email address if you add it.

mobile_number

string

A refund receipt will be send to this mobile number if you add it.

Request URL  
https://test.mobipaid.io/v2/refunds/{unique_id}
Request Body
{
"email": "example@example.com",
"amount": 1,
"mobile_number": "+12345678"
}

Examples
curl -X POST https://test.mobipaid.io/v2/refunds/{payment_id} \
--header "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests

url = "https://test.mobipaid.io/v2/refunds"

payload = "{\n\"email\": \"example@example.com\",\n\"amount\": 1,\n\"mobile_number\": \"+12345678\"\n}\n\n"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://test.mobipaid.io/v2/refunds',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
  },
  body: JSON.stringify({"email":"example@example.com","amount":1,"mobile_number":"+12345678"})

};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/refunds",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\n\"email\": \"example@example.com\",\n\"amount\": 1,\n\"mobile_number\": \"+12345678\"\n}\n\n",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/refunds")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = "{\n\"email\": \"example@example.com\",\n\"amount\": 1,\n\"mobile_number\": \"+12345678\"\n}\n\n"

response = https.request(request)
puts response.read_body

Result Format
{
  "amount": 45, 
  "balance": 31, 
  "currency": "ZAR", 
  "email": "example@example.com", 
  "mobile_number": "", 
  "payment_id": "8ac7a49f70664e4f01706677b1e64a2e", 
  "ref_number": "000211582016283", 
  "refund_date": "2020-02-21T06:38:05.000Z", 
  "refunded_amount": 1, 
  "shipping_information": true, 
  "status": "refund", 
  "transaction_id": 495, 
  "transaction_type": "once-off"
}
{
    "result": "failed",
    "message": "Payment is not found."
}
{
    "is_valid": false,
    "error_field": "amount",
    "error_message": "amount is required.",
    "result": "failed"
}

Request Samples
Loading...
Capture

Capture a pre-authorization payment. You have to include the payment_id of the payment history you want to capture.

Body Params
Field Description
amount

required

number

The amount to be captured, cannot more than the actual payment.

Request URL  
https://test.mobipaid.io/v2/captures/{payment_id}
Request Body
{
    "amount": 10
}

Examples
curl -X POST https://test.mobipaid.io/v2/captures/8ac7a49f7297dc2701729954fc4c1f71 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" \
--data '{
    "amount": 10
}'
import requests
import json

url = "https://test.mobipaid.io/v2/captures/8ac7a49f7297dc2701729954fc4c1f71"

payload = json.dumps( {
    "amount": 10
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
    'method': 'POST',
    'url': 'https://test.mobipaid.io/v2/captures/8ac7a49f7297dc2701729954fc4c1f71',
    'headers': {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
    },
    body: JSON.stringify({
        "amount": 10
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "amount" => 10
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/captures/8ac7a49f7297dc2701729954fc4c1f71",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require 'json'

url = URI("https://test.mobipaid.io/v2/captures/8ac7a49f7297dc2701729954fc4c1f71")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    amount: 10
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "transaction_type": "once-off",
    "payment_id": "8ac7a4a07297e42e01729955d6f40fa2",
    "transaction_id": "171OO",
    "captured_amount": 10,
    "amount": 1500.12,
    "balance": 10,
    "currency": "ZAR",
    "ref_number": "123",
    "shipping_information": true,
    "status": "capture",
    "capture_date": "2020-06-09T13:47:19.000Z"
}
{
    "result": "failed",
    "message": "Payment is not found."
}

Request Samples
Loading...
Cancel a subscription

Cancel a subscription that is already paid in the payment history with type scheduled. You have to include the payment_id of the scheduled payment in the payment history in order to cancel it.

Request URL  
https://live.mobipaid.io/v2/payments/subscription/{payment_id}
Examples
curl -X DELETE https://live.mobipaid.io/v2/payments/subscription/{payment_id} \
--header "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/payments/subscription/8ac7a49f7297dc2701729954fc4c1f71"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_A83ucDEekfzqOATsxfrj'
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "DELETE",
    url: "https://live.mobipaid.io/v2/payments/subscription/8ac7a4a07532805d017540b10b420dbd",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/payments/subscription/8ac7a4a07532805d017540b10b420dbd",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/payments/subscription/8ac7a4a07532805d017540b10b420dbd")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "transaction_type": "scheduled",
    "payment_id": "8ac7a4a2753280600175404c232c4189",
    "email": "whibi9999@gmail.com",
    "mobile_number": "+6282115888911",
    "amount": 56,
    "currency": "ZAR",
    "ref_number": "ref001",
    "status": "subscription_ended"
}
{
    "result": "failed",
    "message": "Payment is not found."
}

Request Samples
Loading...
Reversal

Reverse a paid payment. You have to include the payment_id of the specific payment you want reversed.

Body Params

Field Description
email

 

string

A reversal receipt will be sent to this email address if you add it.

mobile_number

 

string

A reversal receipt will be sent to this mobile number if you add it.

Request URL  
https://test.mobipaid.io/v2/reversal/{payment_id}
Request Body
{
       "email": "example@example.com",
       "mobile_number": "+12345678"
}

Examples
curl -X POST https://test.mobipaid.io/v2/reversal/8ac7a49f7297dc2701729954fc4c1f71 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_A83ucDEekfzqOATsxfrj" \
--data '{
    "email" : "example@example.com",
    "mobile_number: "+12345678"
}'
import requests

url = "https://test.mobipaid.io/v2/reversal/{payment_id}"

payload = "{\n\"email\": \"example@example.com\",\n\"mobile_number\": \"+12345678\"\n}\n\n"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://test.mobipaid.io/v2/reversal/{payment_id}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
  },
  body: JSON.stringify({"email":"example@example.com","mobile_number":"+12345678"})

};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/reversal/{payment_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\n\"email\": \"example@example.com\",\n\"mobile_number\": \"+12345678\"\n}\n\n",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/reversal/{payment_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = "{\n\"email\": \"example@example.com\",\n\"mobile_number\": \"+12345678\"\n}\n\n"

response = https.request(request)
puts response.read_body

Result Format
{
    "transaction_type": "once-off",
    "payment_id": "8ac7a4a27d452ef8017d45f8eb6a434b",
    "transaction_id": "2199496OO",
    "email": "example@example.com",
    "mobile_number": "+12345678",
    "reversal_amount": 4.98,
    "amount": 4.98,
    "balance": 0,
    "currency": "USD",
    "ref_number": "",
    "status": "reversal",
    "reversal_date": "2021-11-22T04:48:00.000Z"
}
{
    "result": "failed",
    "message": "Payment is not found."
}

Request Samples
Loading...
Customer Groups

You can get, create, edit and delete customer group with this feature.

Create a Customer Group

Create a new customer group for the customer.

Body Params
Field Description
group_name

required

string

Customer group's name.

description

 

string

Customer group's specific description.

Request URL  
https://live.mobipaid.io/v2/customers/groups
Request Body
{
    "group_name" : "Card",
    "description" : "group for card"
}

Examples
curl -X POST https://live.mobipaid.io/v2/customers/groups \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_A83ucDEekfzqOATsxfrj" \
--data '{
    "group_name" : "Card",
    "description" : "group for card"
}'
import requests
import json

url = "https://live.mobipaid.io/v2/customers/groups"

payload = json.dumps( {
    "group_name" : "Card",
    "description" : "group for card"
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://live.mobipaid.io/v2/customers/groups",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
    body: JSON.stringify({
        "group_name" : "Card",
        "description" : "group for card"
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "group_name" => "Card",
    "description" => "group for card"
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers/groups",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers/groups")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    "group_name" : "Card",
    "description" : "group for card"
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "customer_group_id": "K1Z2J2Zl",
    "group_name": "card",
    "description": "group for card"
}
{
    "is_valid": false,
    "error_field": "group_name",
    "error_message": "group_name already exists.",
    "result": "failed"
}

Request Samples
Loading...
Edit a Customer Group

You can update the customer group by using the same parameters from create a customer group, but you have to add customer_group_id to the body.

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/customers/groups
Request Body
{
    "customer_group_id" : "K1Z2J2Zl",
    "group_name" : "Card",
    "description" : "group for card"
}

Examples
curl -X POST https://live.mobipaid.io/v2/customers/groups \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_A83ucDEekfzqOATsxfrj" \
--data '{
    "customer_group_id" : "K1Z2J2Zl",
    "group_name" : "Card",
    "description" : "group for card"
}'
import requests
import json

url = "https://live.mobipaid.io/v2/customers/groups"

payload = json.dumps( {
    "customer_group_id" : "K1Z2J2Zl",
    "group_name" : "Card",
    "description" : "group for card"
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://live.mobipaid.io/v2/customers/groups",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
    body: JSON.stringify({
        "customer_group_id" : "K1Z2J2Zl",
        "group_name" : "Card",
        "description" : "group for card"
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "customer_group_id" => "K1Z2J2Zl",
    "group_name" => "Card",
    "description" => "group for card"
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers/groups",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers/groups")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    "customer_group_id" : "K1Z2J2Zl",
    "group_name" : "Card",
    "description" : "group for card"
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "customer_group_id": "K1Z2J2Zl",
    "group_name": "card",
    "description": "group for card"
}
{
    "is_valid": false,
    "error_field": "group_name",
    "error_message": "group_name already exists.",
    "result": "failed"
}

Request Samples
Loading...
Get a Customer Group detail

You can fetch a customer group detail by using GET method with a customer_group_id in the route parameter

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/customers/groups/{customer_group_id}
Examples
curl -X GET https://live.mobipaid.io/v2/customers/groups/{customer_group_id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/customers/groups?page=5&limit=1"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "GET",
    url: "https://live.mobipaid.io/v2/customers/groups?page=5&limit=1",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers/groups?page=5&limit=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers/groups?page=5&limit=1")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "limit": 10,
    "page": 1,
    "page_count": 1,
    "total_count": 1,
    "customer_groups": [
        {
            "customer_group_id": "K1Z2J2Zl",
            "group_name": "card",
            "description": "group for card"
        }
    ]
}
{
    "is_valid": false,
    "error_field": "customer_group_id",
    "error_message": "customer_group_id is not found.",
    "result": "failed"
}

Request Samples
Loading...
Delete a Customer Group

You can delete a customer group by using the DELETE method with a customer_group_id in the route parameter.

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/customers/groups/{customer_group_id}
Examples
curl -X DELETE https://live.mobipaid.io/v2/customers/groups/K1Z2J2Zl \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/customers/groups/K1Z2J2Zl"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "DELETE",
    url: "https://live.mobipaid.io/v2/customers/groups/K1Z2J2Zl",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers/groups/K1Z2J2Zl",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers/groups/K1Z2J2Zl")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "customer_group_id": "K1Z2J2Zl"
}
{
    "is_valid": false,
    "error_field": "customer_group_id",
    "error_message": "customer_group_id is not found.",
    "result": "failed"
}

Request Samples
Loading...
User Account

Fetch your user account from Mobipaid.

Required Header:

  • Authorization
Message Templates

Create new message template for SMS and Email with this feature.

We support Credit Card, Direct Debit, Paypal, Apple Pay, Google Pay, Nedbank, etc. With mobipaid wallet in place, customer can pay quickly with payment options that has been saved.

You can create message template based on transaction type.

Get a Message Template detail

You can fetch a message template detail by using GET method with a template_id in the route parameter

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/message-templates/{template_id}
Examples
curl -X GET https://test.mobipaid.io/v2/message-templates/{template_id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/message-templates?page=5&limit=1"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "GET",
    url: "https://test.mobipaid.io/v2/message-templates?page=5&limit=1",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/message-templates?page=5&limit=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/message-templates?page=5&limit=1")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "limit": 10,
    "page": 1,
    "page_count": 1,
    "total_count": 1,
    "templates": [
        {
            "template_id": "j4nJ74Xa",
            "template_name": "Test Once Off Template",
            "transaction_type": "once-off",
            "email_subject": "Test Once Off",
            "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true } ] }
{
    "is_valid": false,
    "error_field": "template_id",
    "error_message": "template_id is not valid"
}

Request Samples
Loading...
Delete a Message Template

You can delete a message template by using the DELETE method with a template_id in the route parameter.

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/message-templates/{template_id}
Examples
curl -X DELETE https://test.mobipaid.io/v2/message-templates/{template_id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/message-templates/j4nJ74Xa"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "DELETE",
    url: "https://live.mobipaid.io/v2/message-templates/j4nJ74Xa",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/message-templates/j4nJ74Xa",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/message-templates/j4nJ74Xa")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "template_id": "j4nJ74Xa"
}
{
    "is_valid": false,
    "error_field": "template_id",
    "error_message": "template_id is not valid"
}

Request Samples
Loading...
Create a Message Template

Create a new message template for the merchant.

Body Params
Field Description
template_name

 

string

Message template name. Example : "Once-off payment request template".

transaction_type

 

string

The transaction type which message template belongs to. Can only be filled with "once-off" or "scheduled".

email_subject

 

string

The subject of message template. For example : "Payment due to Mad Decent".

email_content

 

string

The content of email message template.

sms_content

 

string

The content of SMS message template.

default

 

boolean

Use "true" if you want to set this message template as default once-off/scheduled message template for this merchant.

global_template

 

boolean

Use "true" if you want to set this message template available for other user under this merchant. Use "false" if you want message template can only be used by the owner.

Request URL  
https://live.mobipaid.io/v2/message-templates
Request Body
{
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }

Examples
curl -X POST https://live.mobipaid.io/v2/message-templates \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" \
--data '{
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }'
import requests
import json

url = "https://live.mobipaid.io/v2/message-templates"

payload = json.dumps( {
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true } ) headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0' } response = requests.request("POST", url, headers=headers, data = payload) print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://live.mobipaid.io/v2/message-templates",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
    body: JSON.stringify({
        "template_name": "Test Once Off Template",
	    "transaction_type": "once-off",
	    "email_subject": "Test Once Off",
	    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });
$curl = curl_init();

$data = array(
    "template_name" => "Test Once Off Template",
    "transaction_type" => "once-off",
    "email_subject" => "Test Once Off",
    "email_content" => "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content" => "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default" => true, "global_template" => true ); $data = json_encode($data); curl_setopt_array($curl, array( CURLOPT_URL => "https://live.mobipaid.io/v2/message-templates", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => array( "Content-Type: application/json", "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/message-templates")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }.to_json response = https.request(request) puts response.read_body

Result Format
{
    "result": "success",
    "template_id": "j4nJ74Xa",
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }
{
    "is_valid": false,
    "error_field": "transaction_type",
    "error_message": "Disallowed transaction_type found. Please check the documentation again."
}

Request Samples
Loading...
Edit a Message Template

You can update the message template by using the same parameters from create a message template, but you have to add template_id to the body.

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/message-templates
Request Body
{
    "template_id": "j4nJ74Xa",
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }

Examples
curl -X PUT https://live.mobipaid.io/v2/message-templates \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" \
--data '{
    "template_id": "j4nJ74Xa",
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }'
import requests
import json

url = "https://live.mobipaid.io/v2/message-templates"

payload = json.dumps( {
    "template_id": "j4nJ74Xa",
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true } ) headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0' } response = requests.request("PUT", url, headers=headers, data = payload) print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "PUT",
    url: "https://live.mobipaid.io/v2/message-templates",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
    body: JSON.stringify({
        "template_id": "j4nJ74Xa",
		"template_name": "Test Once Off Template",
		"transaction_type": "once-off",
		"email_subject": "Test Once Off",
		"email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });
$curl = curl_init();

$data = array(
    "template_id" => "j4nJ74Xa",
	"template_name" => "Test Once Off Template",
	"transaction_type" => "once-off",
	"email_subject" => "Test Once Off",
	"email_content" => "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content" => "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default" => true, "global_template" => true ); $data = json_encode($data); curl_setopt_array($curl, array( CURLOPT_URL => "https://live.mobipaid.io/v2/message-templates", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => array( "Content-Type: application/json", "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0" ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/message-templates")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    "template_id": "j4nJ74Xa",
	"template_name": "Test Once Off Template",
	"transaction_type": "once-off",
	"email_subject": "Test Once Off",
	"email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }.to_json response = https.request(request) puts response.read_body

Result Format
{
    "result": "success",
    "template_id": "j4nJ74Xa",
    "template_name": "Test Once Off Template",
    "transaction_type": "once-off",
    "email_subject": "Test Once Off",
    "email_content": "Hi, #email#
We want to inform that you have new payment request with the amount of #currency# #amount#.
Click #url# for auto redirected to payment page.", "sms_content": "Hi, we want to inform that you have new payment request with the amount of #currency# #amount#. Click #url# for auto redirected to payment page", "default": true, "global_template": true }
{
    "is_valid": false,
    "error_field": "transaction_type",
    "error_message": "Disallowed transaction_type found. Please check the documentation again."
}

Request Samples
Loading...
Customers

You can get, create, edit and delete customer with this feature.

Create a Customer

Create a new customer for the merchant.

Body Params
Field Description
email

required with condition

string

Customer's email. You must fill either email or mobile_no field. Example : "john@doe.com".

mobile_no

required with condition

string

Customer's mobile number. You must fill either email or mobile_no field. Example : "+1234567890".

customer_group_id

 

string

Customer's group id. Example : "K1Z2J2Zl".

salutation

 

string

Customer's salutation. Example : "Mr.".

first_name

required

string

Customer's first name.

last_name

 

string

Customer's last name.

description

 

string

Customer's specific description.

country_iso

 

string

Customer's country ISO. Example : "DE".

state

 

string

Customer's state. Example : "DE".

city

 

string

Customer's city. Example : "Munchen".

postal_code

 

string

Customer's postal code. Example : "12345".

reference_number

 

string

Customer's reference number. Example : "12345".

additional_value

 

json

Customer's additional value. Example : {"age": 20, "gender": "male"}.

Request URL  
https://live.mobipaid.io/v2/customers
Request Body
{
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
}

Examples
curl -X POST https://live.mobipaid.io/v2/customers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_A83ucDEekfzqOATsxfrj" \
--data '{
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
}'
import requests
import json

url = "https://live.mobipaid.io/v2/customers"

payload = json.dumps( {
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://live.mobipaid.io/v2/customers",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
    body: JSON.stringify({
        "email": "john@doe.com",
        "mobile_no": "+1234567890",
        "customer_group_id": "K1Z2J2Zl",
        "salutation": "Mr.",
        "first_name": "john",
        "last_name": "doe",
        "description": "customer john doe",
        "country_iso": "DE",
        "state": "Bayern",
        "city": "Munchen",
        "postal_code": "12345",
        "reference_number": "1234",
        "additional_value": {"age": 20, "gender": "male"}
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "email" => "john@doe.com",
    "mobile_no" => "+1234567890",
    "customer_group_id" => "K1Z2J2Zl",
    "salutation" => "Mr.",
    "first_name" => "john",
    "last_name" => "doe",
    "description" => "customer john doe",
    "country_iso" => "DE",
    "state" => "Bayern",
    "city" => "Munchen",
    "postal_code" => "12345",
    "reference_number" => "1234",
    "additional_value" => array("age" => 20, "gender" => "male")
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "customer_id": "2BD8rYXr",
    "mobile_no": "+1234567890",
    "email": "john@doe.com",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "customer_group_id": "K1Z2J2Zl",
    "description": "customer john doe",
    "country_iso": "DE",
    "country_name": "Germany",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {
        "age": 20,
        "gender": "male"
    }
}
{
    "is_valid": false,
    "error_field": "mobile_no",
    "error_message": "mobile_no already exists.",
    "result": "failed"
}

Request Samples
Loading...
Edit a Customer

You can update the customer by using the same parameters from create a customer, but you have to add customer_id to the body.

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/customers
Request Body
{
    "customer_id": "j4nJ74Xa",
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
}

Examples
curl -X POST https://live.mobipaid.io/v2/customers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_A83ucDEekfzqOATsxfrj" \
--data '{
    "customer_id": "j4nJ74Xa",
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
}'
import requests
import json

url = "https://live.mobipaid.io/v2/customers"

payload = json.dumps( {
    "customer_id": "j4nJ74Xa",
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://live.mobipaid.io/v2/customers",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
    body: JSON.stringify({
        "customer_id": "j4nJ74Xa",
        "email": "john@doe.com",
        "mobile_no": "+1234567890",
        "customer_group_id": "K1Z2J2Zl",
        "salutation": "Mr.",
        "first_name": "john",
        "last_name": "doe",
        "description": "customer john doe",
        "country_iso": "DE",
        "state": "Bayern",
        "city": "Munchen",
        "postal_code": "12345",
        "reference_number": "1234",
        "additional_value": {"age": 20, "gender": "male"}
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "customer_id" => "j4nJ74Xa",
    "email" => "john@doe.com",
    "mobile_no" => "+1234567890",
    "customer_group_id" => "K1Z2J2Zl",
    "salutation" => "Mr.",
    "first_name" => "john",
    "last_name" => "doe",
    "description" => "customer john doe",
    "country_iso" => "DE",
    "state" => "Bayern",
    "city" => "Munchen",
    "postal_code" => "12345",
    "reference_number" => "1234",
    "additional_value" => array("age" => 20, "gender" => "male")
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
    "customer_id": "j4nJ74Xa",
    "email": "john@doe.com",
    "mobile_no": "+1234567890",
    "customer_group_id": "K1Z2J2Zl",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "description": "customer john doe",
    "country_iso": "DE",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {"age": 20, "gender": "male"}
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "customer_id": "2BD8rYXr",
    "mobile_no": "+1234567890",
    "email": "john@doe.com",
    "salutation": "Mr.",
    "first_name": "john",
    "last_name": "doe",
    "customer_group_id": "K1Z2J2Zl",
    "description": "customer john doe",
    "country_iso": "DE",
    "country_name": "Germany",
    "state": "Bayern",
    "city": "Munchen",
    "postal_code": "12345",
    "reference_number": "1234",
    "additional_value": {
        "age": 20,
        "gender": "male"
    }
}
{
    "is_valid": false,
    "error_field": "mobile_no",
    "error_message": "mobile_no already exists.",
    "result": "failed"
}

Request Samples
Loading...
Get a Customer detail

You can fetch a customer detail by using GET method with a customer_id in the route parameter

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/customers/{customer_id}
Examples
curl -X GET https://live.mobipaid.io/v2/customers/{customer_id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/customers?page=5&limit=1"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "GET",
    url: "https://live.mobipaid.io/v2/customers?page=5&limit=1",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers?page=5&limit=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers?page=5&limit=1")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "limit": 10,
    "page": 1,
    "page_count": 1,
    "total_count": 1,
    "customers": [
        {
            "customer_id": "2BD8rYXr",
            "mobile_no": "+1234567890",
            "email": "john@doe.com",
            "salutation": "Mr.",
            "first_name": "john",
            "last_name": "doe",
            "customer_group_id": "K1Z2J2Zl",
            "description": "customer john doe",
            "country_iso": "DE",
            "country_name": "Germany",
            "state": "Bayern",
            "city": "Munchen",
            "postal_code": "12345",
            "reference_number": "1234",
            "additional_value": {
                "age": 20,
                "gender": "male"
            }
        }
    ]
}
{
    "is_valid": false,
    "error_field": "customer_id",
    "error_message": "customer_id is not found.",
    "result": "failed"
}

Request Samples
Loading...
Delete a Customer

You can delete a customer by using the DELETE method with a customer_id in the route parameter.

Required Header:

  • Authorization
Request URL  
https://live.mobipaid.io/v2/customers/{customer_id}
Examples
curl -X DELETE https://live.mobipaid.io/v2/customers/j4nJ74Xa \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
import requests
import json

url = "https://live.mobipaid.io/v2/customers/j4nJ74Xa"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_test_w3Lwv3CZIZzye4cYxxr0'
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "DELETE",
    url: "https://live.mobipaid.io/v2/customers/j4nJ74Xa",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
    },
};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/customers/j4nJ74Xa",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/customers/j4nJ74Xa")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_test_w3Lwv3CZIZzye4cYxxr0"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "customer_id": "2BD8rYXr"
}
{
    "is_valid": false,
    "error_field": "customer_id",
    "error_message": "customer_id is not found.",
    "result": "failed"
}

Request Samples
Loading...
Application Manager

The application management API provides api requests for your created applications in
developer portal along with merchant management functions.

To access this API, you need a special access key with the prefix mp_app_. You can get this
access key in your users_profile page in developer portal once you login. Authentication to
the API is performed via HTTP Bearer Auth. Provide your Access key as the bearer auth
value.

Get a list of applications

The get all apps route provides the developer with a list of all applications under the
developer identified by his/her access token. You will be able to retrieve a full list of
applications in the api route.

Request URL  
https://test.mobipaid.io/v2/app
Examples
GET https://test.mobipaid.io/v2/app \
-H "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
import requests

url = "https://test.mobipaid.io/v2/app"

payload = {}
headers = {
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/app',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/app")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "apps": [
        {
            "app_id": "msFyZrmMczkAkED7oUPYD-ZALrTe02KIo2U8MzwtLV8-WFGJhB2G4lmB89dU",
            "user_id": 36,
            "app_status": "published",
            "app_name": "Test Published App",
            "app_description": "Test Published App Desc",
            "license_agreement_url": null,
            "privacy_policy_url": null,
            "logo_url": null
        },
        {
            "app_id": "y39B1ENNjOSkojYM18UW-fwSmFDBDRY3gCjzZIf-9Bcty1ecVPVwvNykcylT",
            "user_id": 36,
            "app_status": "draft",
            "app_name": "Test Draft",
            "app_description": "Test Draft Description",
            "license_agreement_url": null,
            "privacy_policy_url": null,
            "logo_url": "Xs1Z6nqAdv_20210602092407.jpg"
        }
    ]
}
{
    "message": "App access Key not found"
}

Request Samples
Loading...
Create a new application

Create a new application in the developer portal.

Body Params
Field Description
app_name

required

string

Application name must be provided

app_description

required

string

Brief description about the application created please provide
an accurate description of your application for your
customers. This must include all functionality.

app_logo

optional

string

Fill in with image url with extension .jpg/.jpeg/.png/.gif. The
maximum file size allowed is 500kB. We will scrape the logo
from the url provided.

license_agreement_url

optional

 

string

License agreement URL used by the created application if you
have specific license agreement requirements please provide
them for the merchant.

privacy_policy_url

optional

string

Privacy policy URL used by the created application. This is
required to be accepted by merchants. If no policy url is
specified the application will use mobipaid default Privacy
policy.

Request URL  
https://test.mobipaid.io/v2/app
Request Body
{
	"app_name" : "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/image-sample.png",
    "license_agreement_url": "https://www.google.com",
    "privacy_policy_url": "https://www.yahoo.com"
}

Examples
curl -X POST https://test.mobipaid.io/v2/app \
-H "Content-Type: application/json" \
-H "Authorization: Bearer app_mp_test_yEtHTVY2mjFySrV2ryHF" \
--data '{
	"app_name" : "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/image-sample.png",
    "license_agreement_url": "https://www.google.com",
    "privacy_policy_url": "https://www.yahoo.com"
}'
import requests
import json

url = "https://test.mobipaid.io/v2/app"

payload = json.dumps({
	"app_name" : "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
} )
headers = {
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzY'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
    'method': 'POST',
    'url': 'https://test.mobipaid.io/v2/app',
    'headers': {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzY'
    },
    body: JSON.stringify({
	"app_name" : "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
})

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
	"app_name" => "Test App Demo",
	"app_description" => "Description Test App Demo",
	"app_logo" => "https://fakeurl.com/sample-image.png",
        "license_agreement_url" => "https://www.google.com",
        "privacy_policy_url" => "https://www.yahoo.com"
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzY"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require 'json'

url = URI("https://test.mobipaid.io/v2/app")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzY"
request.body = {
	"app_name" : "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "pfpGlPfw4ePdlb-VSWiqifWBES3Sf5hfecPihDoUPbeA6TEQ-FwjzTYiuDpt",
    "app_name": "Test App Demo",
    "app_status": "draft",
    "token": "38741548"
}
{
    "is_valid": false,
    "error_field": "app_logo",
    "error_message": "App Logo URL is not valid"
}

Request Samples
Loading...
Edit application

This request has the same body structure as the Create New Application endpoint. The difference is the addition of url parameter app_id this is the unique identifier for your application that you have created and require to be edited.

Request URL  
https://test.mobipaid.io/v2/app/{app_id}
Request Body
{
       "app_name" : "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
}

Examples
curl -X PUT https://test.mobipaid.io/v2/app/{app_id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX" \
--data '{
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
}'
import requests
import json

url = "https://test.mobipaid.io/v2/app/{app_id}"

payload = json.dumps( {
        "app_name" : "Test App Demo"
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("PUT", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
    'method': 'PUT',
    'url': 'https://test.mobipaid.io/v2/app/{app_id}',
    'headers': {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
    },
    body: JSON.stringify({
        "app_name": "Test App Demo",
	"app_description" : "Description Test App Demo",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
})

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
        "app_name" => "Test App Demo",
	"app_description" => "Description Test App Demo",
	"app_logo" => "https://fakeurl.com/sample-image.png",
        "license_agreement_url" => "https://www.google.com",
        "privacy_policy_url" => "https://www.yahoo.com"
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/{app_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require 'json'

url = URI("https://test.mobipaid.io/v2/app/{app_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_w3Lwv3CZIZzye4cYxxr0"
request.body = {
	"app_name" : "Test Demo Apps",
	"app_description" : "Test Demo Apps Description",
	"app_logo": "https://fakeurl.com/sample-image.png",
        "license_agreement_url": "https://www.google.com",
        "privacy_policy_url": "https://www.yahoo.com"
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "cmOhiROUk5zcwC5PXUZZTH-p71jQzjBFMiArZB-lWPu2DVFjUG0QZgpicKSO",
    "app_name": "Test App Demo",
    "app_status": "draft",
    "token": "91404459"
}
{
    "message": "App access Key not found"
}

Request Samples
Loading...
Get merchant detail in the specific application

This request returns the details of the merchant connected to the application, given the app_id and merchant_id in the request.

Request URL  
https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}
Examples
curl -X GET https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id} \
--header "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
import requests

url = "https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}"

payload = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "msFyZrmMczkAkED7oUPYD-ZALrTe02KIo2U8MzwtLV8-WFGJhB2G4lmB89dU",
    "token": "31873800",
    "merchants": [
        {
            "merchant_id": "BLDQVvnm",
            "name": "Dummy Merchant please ignore",
            "phone_number": "+6281222324170",
            "address_line1": "Ancol Timur III / 41",
            "email": "merchant@gmail.com",
            "signatory_first_name": "First ",
            "signatory_last_name": "Last",
            "access_key": "mp_dummy_zZOQWkesvf1iGlSeHLxR",
            "app_id": "msFyZrmMczkAkED7oUPYD-ZALrTe02KIo2U8MzwtLV8-WFGJhB2G4lmB89dU"
        }
    ]
}


Request Samples
Loading...
Remove a merchant from the application

Disconnect the merchant from application. It will disconnect automatically from developer's side and merchant's side, given the merchant_id and app_id in the url parameters.

Request URL  
https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}
Examples
curl -X DELETE https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id} \
--header "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
import requests

url = "https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}"

payload  = {}
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("DELETE", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'DELETE',
  'url': 'https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/app/{app_id}/merchants/{merchant_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success"
}

Request Samples
Loading...
Get application detail

Get the details of one app based on app_id, containing a list of merchants connected to it along with his/her access key to your applications.

Request URL  
https://test.mobipaid.io/v2/app/{app_id}
Examples
https://test.mobipaid.io/v2/app/{app_id} \
--header "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
import requests

url = "https://test.mobipaid.io/v2/app/{app_id}"

payload = {}
headers = {
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/app/{app_id}',
  'headers': {
    'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/{app_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"

url = URI("https://test.mobipaid.io/v2/app/{app_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "msFyZrmMczkAkED7oUPYD-ZALrTe02KIo2U8MzwtLV8-WFGJhB2G4lmB89dU",
    "token": "58116137",
    "merchants": [
        {
            "merchant_id": "BLDQVvnm",
            "name": "The dummy merchant please ignore",
            "phone_number": "+6281222324170",
            "address_line1": "Ancol Timur III / 41",
            "email": "merchant@gmail.com",
            "signatory_first_name": "First ",
            "signatory_last_name": "Last ",
            "access_key": "mp_dummy_zZOQWkesvf1iGlSeHLxR",
            "app_id": "msFyZrmMczkAkED7oUPYD-ZALrTe02KIo2U8MzwtLV8-WFGJhB2G4lmB89dU"
        }
    ]
}
{
    "message": "App access Key not found"
}

Request Samples
Loading...
Get your application status

This request provides application status given app_id in the url parameter. The available status is deleted, drafted, published, and suspended.

Draft - Status is not yet published on production developer is required to update the status from draft for production implementation.


Deleted - The application has been removed from the merchants , the application is no longer able to be accessed from merchants.


Published - The application is published for production from the developer.


Suspended - The application is suspended from usage , there is a temporary suspension placed on your application no merchants will be able to get access to your application or be able to use your application.

Request URL  
https://test.mobipaid.io/v2/app/status/{app_id}
Examples
curl -X GET https://test.mobipaid.io/v2/app/status/{app_id} \
--header "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
import requests

url = "https://test.mobipaid.io/v2/app/status/{app_id}"

payload = {}
headers = {
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://test.mobipaid.io/v2/app/status/{app_id}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/status/{app_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "net/http"

url = URI("https://test.mobipaid.io/v2/app/status/{app_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "MBZVOR1rWlJwp85B-FAH3jXXztDVbS1AlhDWg6Z-OLGJ6IRSYDZxmeR2ZSHq",
    "app_status": "draft"
}
{
    "message": "App access Key not found"
}

Request Samples
Loading...
Edit application status

Modify status of application into Draft, Deleted, Published, and Suspended given the app_id in url parameter.

Draft - Status is not yet published on production developer is required to update the status from draft for production implementation.


Deleted - The application has been removed from the merchants , the application is no longer able to be accessed from merchants.


Published - The application is published for production from the developer.

Suspended - The application is suspended from usage , there is a temporary suspension placed on your application no merchants will be able to get access to your application or be able to use your application.

Request URL  
https://test.mobipaid.io/v2/app/status/{app_id}
Request Body
{
       "app_status" : "published"
}

Examples
curl -X PUT https://test.mobipaid.io/v2/app/status/{app_id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX" \
--data '{
    "app_status": "published"
}'
import requests
import json

url = "https://test.mobipaid.io/v2/app/status/{app_id}"

payload = json.dumps( {
    "app_status": "published"
} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("PUT", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "PUT",
    url: "https://test.mobipaid.io/v2/app/status/{app_id}",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
    },
    body: JSON.stringify({
        app_status : "published"
    })

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
      "app_status": "published"
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/status/{app_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://test.mobipaid.io/v2/app/status/{app_id}")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
request.body = {
    app_status : "published"
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "kIJ99lL3I9tFLlcHPe-on2IMsnKUrlYcHN0CF0gSNrGSL-IdVtBg4rWmG82W",
    "app_status": "published"
}


Request Samples
Loading...
Invite a merchant to the application

This requests a return token that can be used by the merchant to connect to the application, by the given app_id in the url parameter.


Please keep in mind that the token will only be returned if the developer already has agreed to the eula in that specific application. Otherwise, the application can't access messages returned.

Request URL  
https://test.mobipaid.io/v2/app/{app_id}/merchants/invite
Request Body
{}

Examples
curl -X POST https://test.mobipaid.io/v2/app/{app_id}/merchants/invite \
-H "Content-Type: application/json" \
-H "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX" \
--data '{}'
import requests
import json

url = "https://test.mobipaid.io/v2/app/{app_id}/merchants/invite"

payload = json.dumps( {} )
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer app_mp_test_05hd2V93RYW8MlhxdnzX'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://test.mobipaid.io/v2/app/{app_id}/merchants/invite",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
    },
    body: JSON.stringify({})

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array();
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.mobipaid.io/v2/app/{app_id}/merchants/invite",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://test.mobipaid.io/v2/app/{app_id}/merchants/invite")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer app_mp_test_05hd2V93RYW8MlhxdnzX"
request.body = {}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "app_id": "msFyZrmMczkAkED7oUPYD-ZALrTe02KIo2U8MzwtLV8-WFGJhB2G4lmB89dU",
    "token": "31873800"
}
{
    "error_message": "This application can't be accessed.",
    "result": "failed"
}

Request Samples
Loading...
EMV QR Code
Generate EMV QR Code

Generate QR code links represent the EMV payload based on the EMVCo-Merchant-Presented-QR-specification document. The country code should be present in the URL param as iso3 country code format as represented in ISO 3166-1 standard.

Body Params
Field Description
payment_type

required

string

Represent the pos link payment method, only consists of two valid values : DB (Debit) or PA (Pre-authorization)

tip_amount

optional

number

The amount of tip you want to pay instead of the original amount. Example : 2.13

amount

required

number

The amount you want to pay via EMV payload. Example : 10.11

reference

optional

 

string

The identification code for your payment

currency

required

string

Three-letter currency code for payment based on ISO 4217 specification.

Request URL  
https://live.mobipaid.io/v2/emv/{country_code}
Request Body
{
    "payment_type": "DB",
    "tip_amount": 10.23,
    "amount": 0,
    "reference": "RED-SHIRT-123",
    "currency": "ZAR"
}

Examples
curl -X POST https://live.mobipaid.io/v2/emv/{country_code} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer mp_live_9Au2ABAwToHDfMf1kiwr" \
--data '{
    "payment_type": "DB",
    "tip_amount": 2.24,
    "amount": 15.00,
    "reference": "RED-SHIRT-123",
    "currency": "ZAR"
}'
import requests
import json

url = "https://live.mobipaid.io/v2/emv/{country_code}"

payload = json.dumps({
    "payment_type": "DB",
    "tip_amount": 2.24,
    "amount": 15.00,
    "reference": "RED-SHIRT-123",
    "currency": "ZAR"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer mp_live_9Au2ABAwToHDfMf1kiwr'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
var request = require("request");

var options = {
    method: "POST",
    url: "https://live.mobipaid.io/v2/emv/{country_code}",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer mp_live_9Au2ABAwToHDfMf1kiwr"
    },
    body: JSON.stringify({
    "payment_type": "DB",
    "tip_amount": 2.24,
    "amount": 15.00,
    "reference": "RED-SHIRT-123",
    "currency": "ZAR"
})

};
request(options, function (error, response) { 
    if (error) throw new Error(error);
    console.log(response.body);
});
$curl = curl_init();

$data = array(
    "payment_type" => "DB",
    "tip_amount" => 2.24,
    "amount" => 15.00,
    "reference" => "RED-SHIRT-123",
    "currency" => "ZAR"
);
$data = json_encode($data);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://live.mobipaid.io/v2/emv/{country_code}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Bearer mp_live_9Au2ABAwToHDfMf1kiwr"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require "uri"
require "net/http"
require "json"

url = URI("https://live.mobipaid.io/v2/emv/{country_code")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer mp_live_9Au2ABAwToHDfMf1kiwr"
request.body = {
    "payment_type": "DB",
    "tip_amount": 2.24,
    "amount": 15.00,
    "reference": "RED-SHIRT-123",
    "currency": "ZAR"
}.to_json

response = https.request(request)
puts response.read_body

Result Format
{
    "result": "success",
    "qrcode_link": "https://mp-qrcodes.s3.amazonaws.com/stage/pos_payment/EMV-U1JwInASoK.png",
    "qrcode_base64": "data:image/png;base64,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"
}

Request Samples
Loading...