ShopeePay QRIS Integration Guide

The basic integration process of the ShopeePay QRIS channel will be explained below.

Integration Step:

  1. Post Data Transaction to Faspay

  2. Display QR Code

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

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:

Parameter
Data Type
M/O/C
Description

response

Alphanumeric (50)

M

Response Name

trx_id

Numeric (16)

M

Transaction ID (Issued/generated by Faspay (Media Indonusa)) Notes: Unique Transaction ID for 1 day or as long as it hasn't been paid and hasn't expired

merchant_id

Numeric (5)

M

Merchant Code

merchant

Alphanumeric (32)

M

Merchant Name

bill_no

Alphanumeric (32)

M

Order Number

bill_items

Array

id

Numeric

O

ID product

product

Alphanumeric

O

Product name

amount

Numeric

O

Nominal product price

merchant_id

Numeric (5)

M

Merchant Code

qty

Numeric

O

Quantity of item

payment_plan

Numeric

O

Payment code 1: Full Settlement 2: Installement

tenor

Numeric

O

Installment Tenor 00: Full Payment 03: 3 months 06: 6 months 12: 12 months

type

Alphanumeric

O

Item type

url

Alphanumeric

O

Item Link

image_url

Alfaumeric

O

Image item Link

response_code

Numeric (2)

M

Response Code 00 Success

response_desc

Alphanumeric (32)

M

Response Code Description

web_url

Alphanumeric

C

Original image from channel

alt_url

Alphanumeric

C

Used if the transaction model uses direct type, displaying only QR code in the browser.

qr_content

Alphanumeric

C

Data to be encoded in a QR code that will be generated or processed.

Notes: Use this if the transaction is direct type.

redirect_url

Alphanumeric

M

Link to Faspay landing page containing QR image

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