Create Order - Using Payment Page

This endpoint is used to create an order on Intrapay

POST https://exchanger-api.fuspay.finance/api/v1/no-auth/PartnerP2P/CreateOrder/

So, if you want a payment page (a screen that allows your users input their phone number & network), Please include x-partner-id, x-merchant-secret in the header and ignore intrapay_merchant_id in the request body.

Note: The intrapay merchant id is different for each account (currency) created on Intrapay. You can find your intrapay merchant id at the bottom left AFTER YOU HAVE SETUP the wallet of that currency.

The merchant secret is also different per currency. Find your merchant secret at the partner mapping screen by clicking on your name on the partner list.

Orders appear as "pending" on Intrapay dashboard after user has visited the payment page and has accepted payment on phone.

Headers

NameTypeDescription

x-merchant-secret*

String

The secret key of the merchant (this is different for each country) and can be gotten from your dashboard (partner mapping)

Content-Type*

String

application/json

x-partner-id*

String

The ID of the partner (Binance) sending the order

Authorization*

String

Authorization is a bearer token which is Partners public key

Request Body

NameTypeDescription

partner_order_id*

String

Id of order generated on partners' system

amount_to_collect*

String

amount seller or buy as listed

timestamp*

Number

Time order was created. unix or epoch time in milleseconds (GMT+0)

order_expiration*

String

the time to be elapsed before order becomes invalid. unix or epoch time in millseconds (GMT+0)

currency*

String

currency the buyer is paying the merchant with

partner_callback_url*

String

payment notification used by IntraPay to notify Partner System about the Payment status of the order

partner_redirect_url*

String

provided by partner. url to redirect partner's users

signature*

String

SHA-512 of request payload signed with both merchant and partner secret key(SK_merchant_xxx+SK_partner_xxx)

phone

String

The phone number of the sender. for Mobile Money only

mobile_money_network

String

This is the mobile money provider. eg MTN, VOD, ATM


//API Response 
{
message:"OK",
redirect_url:""
}




//Response sent to callback URL
{
  "status": "success",
  "messsage": "",
  "virtual_account": {
  "account_name": "",
    "bank_name": "",
    "account_number": ""
  },
  "order_details": {
  "status": "PENDING",
  "partner_order_id": "",
  "intrapay_order_reference": "",
 }

}

Example Request- Code

const request = require('request')
const options = {
  method: 'POST',
  url: 'http://localhost:5000/api/v1/no-auth/PartnerP2P/CreateOrder',
  headers: {
    'Content-Type': 'application/json',
    'x-partner-id': 'pxxxx',
    'x-merchant-secret': 'xxx-xxx-xxx',
    Authorization: 'Bearer pk_partner_xxxxxxxx'
  },
  body: {
    partner_order_id: 'my-server-order-id',
    amount_to_collect: '10',
    phone: "254XXXXXX",
    mobile_money_network: "MTN",
    timestamp: 1693285902419,
    order_expiration: 1693285902419,
    currency: 'GHS', // GHS | KHS | NGN | UGX | ZAR
    partner_callback_url: 'https://xxx...',
    partner_redirect_url: 'https://example.com?status=success&order=my-server-order-id',
    signature: 'fe04ee69d4f9a93c71f3d1bbf37d49d541e5c4fb159c4a75924f398262e2af146d0e2e33b1379a9b57c641d822c410158e03b64faab34dc98d528bfa234f9dd3'
  },
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Last updated