ShopeePay QRIS Integration Guide
The basic integration process of the ShopeePay QRIS channel will be explained below.
Integration Step:
Post Data Transaction to Faspay
Display QR Code
Payment Notification
1. Post Data Transaction
Post-data transactions should be done from the merchant backend, the detailed API reference can be found Here
This is an example of a post-data transaction for the ShopeePay QRIS channel
<faspay>
<request>Purchased Info Detail Transmission</request>
<merchant_id>99999</merchant_id>
<merchant>FASPAY STORE</merchant>
<bill_no>849389422312</bill_no>
<bill_reff>Payment item</bill_reff>
<bill_date>2023-10-10 09:19:00</bill_date>
<bill_expired>2023-10-10 09:59:10</bill_expired>
<bill_desc>Payment #12345678</bill_desc>
<bill_currency>IDR</bill_currency>
<bill_gross>0</bill_gross>
<bill_tax>0</bill_tax>
<bill_miscfee>0</bill_miscfee>
<bill_total>10000</bill_total>
<cust_no>1</cust_no>
<cust_name>Faspay Agus Priyono</cust_name>
<cust_lastname></cust_lastname>
<payment_channel>711</payment_channel>
<pay_type>1</pay_type>
<bank_userid></bank_userid>
<msisdn>081234567891</msisdn>
<email>sanjayaegasanto@gmail.com</email>
<terminal>10</terminal>
<billing_name>payment item faspay</billing_name>
<billing_lastname>0</billing_lastname>
<billing_address>jalan pintu air raya</billing_address>
<billing_address_city>Jakarta Pusat</billing_address_city>
<billing_address_region>DKI Jakarta</billing_address_region>
<billing_address_state>Indonesia</billing_address_state>
<billing_address_poscode>10710</billing_address_poscode>
<billing_msisdn></billing_msisdn>
<billing_address_country_code>ID</billing_address_country_code>
<receiver_name_for_shipping>Faspay Agus Priyono</receiver_name_for_shipping>
<shipping_lastname></shipping_lastname>
<shipping_address>jalan pintu air raya</shipping_address>
<shipping_address_city>Jakarta Pusat</shipping_address_city>
<shipping_address_region>DKI Jakarta</shipping_address_region>
<shipping_address_state>Indonesia</shipping_address_state>
<shipping_address_poscode>10710</shipping_address_poscode>
<shipping_msisdn>08766688686</shipping_msisdn>
<shipping_address_country_code>ID</shipping_address_country_code>
<item>
<id>123</id>
<product>Glass Plastic</product>
<qty>1</qty>
<amount>10000</amount>
<payment_plan>01</payment_plan>
<merchant_id>99999</merchant_id>
<tenor>00</tenor>
<type>Furniture</type>
<url>http://localhost:8088/index</url>
<image_url>https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg</image_url>
</item>
<item>
<id>234</id>
<product>Plastic Bucket</product>
<qty>1</qty>
<amount>10000</amount>
<payment_plan>01</payment_plan>
<merchant_id>99999</merchant_id>
<tenor>00</tenor>
<type>furniture</type>
<url>http://localhost:8088/kredivo</url>
<image_url>https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg</image_url>
</item>
<reserve1>0</reserve1>
<reserve2></reserve2>
<signature>0d8a326853f3090251fb81b1a56f5c4d5b5f2639</signature>
</faspay>
{
"request": "Purchased Info Detail Transmission",
"merchant_id": 99999,
"merchant": "FASPAY STORE",
"bill_no": 849389422312,
"bill_reff": "Payment item",
"bill_date": "2023-10-10 09:19:00",
"bill_expired": "2023-10-10 09:59:10",
"bill_desc": "Payment #12345678",
"bill_currency": "IDR",
"bill_gross": 0,
"bill_tax": 0,
"bill_miscfee": 0,
"bill_total": 10000,
"cust_no": 1,
"cust_name": "Faspay Agus Priyono",
"cust_lastname": "",
"payment_channel": 711,
"pay_type": 1,
"bank_userid": "",
"msisdn": 81234567891,
"email": "sanjayaegasanto@gmail.com",
"terminal": 10,
"billing_name": "payment item faspay",
"billing_lastname": 0,
"billing_address": "jalan pintu air raya",
"billing_address_city": "Jakarta Pusat",
"billing_address_region": "DKI Jakarta",
"billing_address_state": "Indonesia",
"billing_address_poscode": 10710,
"billing_msisdn": "",
"billing_address_country_code": "ID",
"receiver_name_for_shipping": "Faspay Agus Priyono",
"shipping_lastname": "",
"shipping_address": "jalan pintu air raya",
"shipping_address_city": "Jakarta Pusat",
"shipping_address_region": "DKI Jakarta",
"shipping_address_state": "Indonesia",
"shipping_address_poscode": 10710,
"shipping_msisdn": 8766688686,
"shipping_address_country_code": "ID",
"item": [
{
"id": 123,
"product": "Glass Plastic",
"qty": 1,
"amount": 10000,
"payment_plan": 1,
"merchant_id": 99999,
"tenor": 0,
"type": "Furniture",
"url": "http://localhost:8088/index",
"image_url": "https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg"
},
{
"id": 234,
"product": "Plastic Bucket",
"qty": 1,
"amount": 10000,
"payment_plan": 1,
"merchant_id": 99999,
"tenor": 0,
"type": "furniture",
"url": "http://localhost:8088/kredivo",
"image_url": "https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg"
}
],
"reserve1": 0,
"reserve2": "",
"signature": "0d8a326853f3090251fb81b1a56f5c4d5b5f2639"
}
Post Data Response
For the ShopeePay QRIS payment method, there are 2 types of transaction models:
Direct Type
Redirect Type
Here below are 2 different responses based on the transaction type model. You will get the post-data response like the following:
<?xml version="1.0" encoding="UTF-8"?>
<faspay>
<response>Purchased Details Transmission</response>
<trx_id>1999971167165382</trx_id>
<merchant_id>99999</merchant_id>
<merchant>FASPAY DEMO</merchant>
<bill_no>849389422312</bill_no>
<bill_items>
<id>123</id>
<product>Glass Plastic</product>
<qty>1</qty>
<amount>10000</amount>
<payment_plan>01</payment_plan>
<merchant_id>99999</merchant_id>
<tenor>00</tenor>
<type>Furniture</type>
<url>http://localhost:8088/index</url>
<image_url>https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg</image_url>
</bill_items>
<bill_items>
<id>234</id>
<product>Plastic Bucket</product>
<qty>1</qty>
<amount>10000</amount>
<payment_plan>01</payment_plan>
<merchant_id>99999</merchant_id>
<tenor>00</tenor>
<type>Furniture</type>
<url>http://localhost:8088/kredivo</url>
<image_url>https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg</image_url>
</bill_items>
<response_code>00</response_code>
<response_desc>Success</response_desc>
<web_url>https://mapi.gw.uat.airpay.co.id/v3/merchant-host/qr/download?qr=oVS1YffoM8BHY1b86hgqGcdPpkW4wpN4ExEuVWIJiZ</web_url>
<alt_url>https://debit-urgent-staging.faspay.co.id/__assets/qr/99999-1999971167165382.png</alt_url>
<qr_content>00020101021226560016ID.CO.SHOPEE.WWW011893600918000000026602032660303UBE5204123453033605406100.005802ID5912Faspay Store6015KOTA JAKARTA SE610512345622805241999971167165382-667171363041C94</qr_content>
</faspay>
{
"response": "Purchased Detail Transmission",
"trx_id": 1999971167165382,
"merchant_id": 99999,
"merchant": "FASPAY DEMO",
"bill_no": 849389422312,
"bill_items": [
{
"id": 123,
"product": "Glass Plastic",
"qty": 1,
"amount": 10000,
"payment_plan": 1,
"merchant_id": 99999,
"tenor": 0,
"type": "Furniture",
"url": "http://localhost:8088/index",
"image_url": "https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg"
},
{
"id": 234,
"product": "Plastic Bucket",
"qty": 1,
"amount": 10000,
"payment_plan": 1,
"merchant_id": 99999,
"tenor": 0,
"type": "Furniture",
"url": "http://localhost:8088/kredivo",
"image_url": "https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg"
}
],
"response_code": 0,
"response_desc": "Success",
"web_url": "https://mapi.gw.uat.airpay.co.id/v3/merchant-host/qr/download?qr=oVS1YffoM8BHY1b86hgqGcdPpkW4wpN4ExEuVWIJiZ",
"alt_url": "https://debit-urgent-staging.faspay.co.id/__assets/qr/99999-1999971167165382.png",
"qr_content": "00020101021226560016ID.CO.SHOPEE.WWW011893600918000000026602032660303UBE5204123453033605406100.005802ID5912Faspay Store6015KOTA JAKARTA SE610512345622805241999971167165382-667171363041C94"
}
<?xml version="1.0" encoding="UTF-8" ?>
<faspay>
<response> Purchase Details Transmission</response>
<trx_id>9999971150758059</trx_id>
<merchant_id>99999</merchant_id>
<merchant>FASPAY DEMO</merchant>
<bill_no>163b4ef032520a7.07128111</bill_no>
<bill_items>
<id>01</id>
<product>Glass Plastic</product>
<qty>1</qty>
<amount>1000000</amount>
<payment_plan>01</payment_plan>
<merchant_id>99999</merchant_id>
<tenor>00</tenor>
<type>Furniture</type>
<url>http://localhost</url>
<image_url>https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg</image_url>
</bill_items>
<response_code>00</response_code>
<response_desc>Success</response_desc>
<redirect_url>https://web.faspay.co.id/pws/100003/2830000010100000/92fb23821115e920a979b3c28ea969d98ac76497?trx_id=9999971150758059&merchant_id=99999&bill_no=163b4ef032520a7.07128111
</redirect_url>
</faspay>
{
"response": " Purchase Details Transmission",
"trx_id": "9999971150758059",
"merchant_id": "99999",
"merchant": "FASPAY DEMO",
"bill_no": "163b4ef032520a7.07128111",
"bill_items": [
{
"id": "01",
"product": "Glass Plastic",
"qty": "1",
"amount": "1000000",
"payment_plan": "01",
"merchant_id": "99999",
"tenor": "00",
"type": "Furniture",
"url": "http://localhost",
"image_url": "https://cdn.mos.cms.futurecdn.net/Mffc35PH77Dq7USrHb4qNm-1200-80.jpg"
}
],
"response_code": "00",
"response_desc": "Success",
"redirect_url": "https://web.faspay.co.id/pws/100003/2830000010100000/92fb23821115e920a979b3c28ea969d98ac76497?trx_id=9999971150758059&merchant_id=99999&bill_no=163b4ef032520a7.07128111"
}
2. Display the QR Code
There are two ways to display the QR Code :
Redirect Type
Display the QR Code on Faspay's page, to do this just redirect the use redirect_url
which is retrieved from the Post-Data Transaction response (JSON Format) or follows the detailed API reference Here
Direct Type
Display the QR Code on the merchant's page, if the frontend is HTML, put the web_url
retrieved from post data transaction in the image tag <img src="[alt_url]">
, or display it on a similar component without downloading. If the front end does not support such a scenario, download the QR code image from that URL, then display it on the front end.
3. Payment Notification
The payment notification from Faspay to the Merchant backend will also be triggered in the event of the transaction status being updated to ensure the merchant is securely informed. Please provide the URL and make sure it's already registered on the Faspay system
The detailed API reference can be found here
Last updated