QR Payment
Introduction
Pembayaran kode QR adalah metode pembayaran tanpa kontak di mana pembayaran dilakukan dengan memindai kode QR dari aplikasi seluler. Gambar diatas merupakan Flow / Alur yang menggambarkan proses pembayaran menggunakan kode QR dengan ESPAY sebagai Payment Gateway.
Pembayaran via mobile sedang meranah ke Indonesia
ESPAY memanfaatkan teknologi tersebut untuk dapat meningkatkan berbagai pembayaran via mobile baik melalui QR maupun PUSH, serta menjadi yang terdepan di kelasnya. Berbagai penyedia layanan dompet elektronik memiliki kerumitan tersendiri dalam proses integrasinya dimana, ESPAY hadir untuk mempermudah itu semua serta membuat proses integrasi terhadap Merchant menjadi sangat sederhana. Selain itu, ESPAY juga memberikan solusi kepada Merchant untuk mendapatkan berbagai macam solusi pembayaran via mobile yang memungkinkan Merchant untuk dapat menerima pembayaran dari segala jenis penyedia layanan dompet elektronik yang ada sehingga pelanggan anda hanya perlu memindai untuk melakukan pembayaran dan penjualan anda akan meningkat!
How It Works?
Dengan kemudahan yang diberikan dalam pembayaran menjadikan aktivitas transaksi semakin menyenangkan. Memberikan pengguna sebuah pengalaman bertransaksi yang jauh lebih baik dari sebelumnya.
“Metode pembayaran yang akan MENGUBAH pengalaman bertransaksi”
Authentication
Setiap request harus akan diverifikasi dengan cara basic auth, jadi pada setiap request yang dikirim harus menyertai header Authorization dengan value Basic diikuti dengan username dan password dengan format username:password yang telah di encode dengan Base64 Encoding
Contoh :
Username: Aladdin
Password: Jasmine
Format sebelum di encode :
Aladdin:Jasmine
Hasil Base64 encoding :
QWxhZGRpbjpKYXNtaW5l
Header yang dikirim :
Authorization : Basic
QWxhZGRpbjpKYXNtaW5l
Setiap Authentication yang gagal akan menerima header http 401
Parameter Request & Parameter Response
Web Service untuk melakukan Push to Pay ke Aplikasi Pembayaran
Alur Pesan
Merchant → Espay
Metode
HTTP Post
API URL
Endpoint Development: https://sandbox-api.espay.id/rest/digitalpay/pushtopay
Endpoint Production: https://api.espay.id/rest/digitalpay/pushtopay
Parameter Request:
Nama Field | Attribute | Mandatory | Keterangan |
rq_uuid | 64 | Ya | Pengidentifikasi request. ID unik untuk mengidentifikasi pesan-pesan tersebut dengan pesan yang lain |
rq_datetime | 19 | Ya | Tanggal dan waktu di server aplikasi Espay ketika pesan dikirim |
comm_code | 32 | Ya | Kode penjual yang terdaftar di aplikasi Espay |
order_id | 20 | Ya | Nomor transaksi / ID faktur / ID unik yang mengidentifikasi pesanan / tagihan / faktur |
product_code | 10 | Ya | Kode Produk yang diinginkan. Push to Pay :
|
amount | 13 | Ya | Jumlah tagihan yang harus dibayarkan |
customer_id | 64 | Ya | Data customer
|
promo_code | 64 | Tidak | Promo Code |
is_sync | 1 | Tidak | 1 = Sync / 0 = Async Default Async |
branch_id | 64 | Optional | Branch ID |
pos_id | 64 | Optional | POS ID Machine |
description | 20 | Ya | Order description |
signature | 64 | Ya | Signature diperlukan untuk validasi oleh penjual |
Parameter Response:
Nama Field | Attribute | Mandatory | Keterangan |
error_code | 4 | Ya | Jika error_code sama dengan 0000 = Sukses Jika error_code tidak sama dengan 0000 = Gagal call request ke Aplikasi Pembayaran |
error_message | 32 | Ya | Jika error_code sama dengan 0000 = Sukses Jika error_code tidak sama dengan 0000 = Gagal call request ke Aplikasi Pembayaran |
trx_id | 32 | Ya | Transaksi ID dari Espay |
QRLink | 64 | Ya | URL QR https://api.espay.id/gojek/QR/uafu-134fd-erdf-353--erdf-353-/ |
QRCode | BLOB | Ya | data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGB gcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UxwcKDcpLDAxNDQ0Hyc5PTgyP….. |
order_id | 20 | Optional | Nomor transaksi / ID faktur / ID unik yang mengidentifikasikan pesanan / tagihan / faktur |
customer_id | 32 | Optional | Data customer
|
trx_status | 2 | Optional | Status transaksi |
amount | 13 | Optional | Jumlah tagihan |
approval_code | 64 | Optional | Approval code, reference dari Bank |
product_code | 10 | Optional | Kode product |
Signature
Setiap request harus dilengkapi signature untuk divalidasi. Client akan diberikan Secret Key di dokumentasi terpisah dari document ini. Key tersebut akan diolah untuk menjadi signature dengan langkah-langkah sebagai berikut :
Step 1 :
Gabungkan parameter-parameter yang digunakan dengan urutan sebagai berikut :
##rq_uuid##comm_code##product_code##order_id##amount##mode##key##
Contoh :
rq_uuid : 123ABC-DEF456
comm_code : MYCOMMCODE
product_code : OVO
order_id : ORDER001
amount : 10000
key : S3cr317kEY
mode : PUSHTOPAY
Sehingga akan menjadi rangkaian string sebagai berikut :
Result = ##123ABC-DEF456##MYCOMMCODE##OVO##ORDER001##10000##PUSHTOPAY##S3cr317kEY##
Step 2 :
Hasil dari Step 1 di uppercase menjadi seperti ini:
##123ABC-DEF456##MYCOMMCODE##OVO##ORDER001##10000##PUSHTOPAY##S3CR317KEY##
Step 3 :
Hash hasil dari Step 2 dengan menggunakan sha256 :
$sha256 = hash(sha256, '##123ABC-DEF456##MYCOMMCODE##OVO##ORDER001##10000##PUSHTOPAY##S3CR317KEY##')
Result = aa19e37e1bf6d5cfb23d59988d397f9ba6e79cf6853606e45a6809e0ca9a7b5d
Hasil dari Step 3 inilah yang akan digunakan sebagai value dari parameter signature.
IP Whitelist Registration
ESPAY server juga akan memfilter alamat IP yang akan mengakses server ESPAY. Untuk itu silahkan kontak Tim ESPAY untuk mendaftarkan IP anda.
Table Error
Response Code | Description |
0000 | COMPLETED SUCCESFULLY |
9999 | SUSPECT / TIMEOUT |
802 | MAX/MIN PAYMENT AMOUNT EXCEEDED |
801 | TRANSACTION ERROR, INQUIRY DATA NOT FOUND |
800 | INSUFFICIENT FUNDS |
614 | UNABLE TO PROCESS TRANSACTION AT CERTAIN HOURS |
612 | UNABLE TO PROCESS TRANSACTION, PLEASE TRY AGAIN LATER |
611 | TRANSACTION DECLINE, PLEASE CONTACT YOUR ADMINISTRATOR |
610 | YOU CAN PERFORM THE SAME TRANSACTION IN 5 MINUTES |
601 | IP ADDRESS REJECTED / UNREGISTERED |
406 | INQUIRY DATA IS INVALID |
405 | PRODUCT DENIED |
404 | PRODUCT NOT AVAILABLE |
403 | AMOUNT IS NOT SET |
300 | INQUIRY NOT AVAILABLE |
210 | DUPLICATE UUID |
205 | INVALID REQUEST |
040 | BILLER SYSTEM MALFUNCTION |
09 | REQUEST IN PROGRESS |
13 | TXN AMT IS DIFFER WITH TOTAL BILL AMT |
14 | PAYMENT NBR NOT FOUND |
15 | NO SUCH ISSUER |
17 | SERVICE UNAVAILABLE (MAINTENANCE) |
18 | DISPUTE |
22 | SUSPECTED MALFUNCTION |
34 | SUSPECTED FRAUD |
36 | RESTRICTED |
60 | CARD ACCEPTOR CONTACT ACQUIRER |
61 | TRANSACTION EXCEEDS APPROVAL AMOUNT LIMIT |
64 | ORIGINAL AMOUNT INCORRECT |
65 | EXCEED FREQUENCY LIMIT |
66 | CARD ACCEPTOR, CALL ACQUIRER SECURITY |
67 | HOT CARD RETAIN CARD |
68 | LATE RESPONSE FROM BILLER |
72 | VOUCHER / DENOM NOT AVAILABLE |