Direct API

Virtual Account

Virtual Account adalah nomor rekening unik yang dihasilkan secara elektronik oleh bank atau penyedia layanan pembayaran, seperti Espay Payment Gateway. Virtual Account ini dirancang untuk memfasilitasi transaksi pembayaran dengan cara yang lebih mudah dan terorganisir.

Sebelum Integrasi

Pastikan Anda sudah menerima kredensial dari tim Espay.

Langkah Integrasi

Berikut ini merupakan langkah-langkah yang dapat Anda gunakan untuk integrasi dengan Direct API – Virtual Account.

1. Menampilkan metode pembayaran

Inquiry Merchant Info adalah layanan yang dapat Anda gunakan untuk mengetahui kode bank dan produk yang aktif. Dengan layanan ini, Anda dapat menyesuaikan antarmuka pengguna (UI) saat memilih metode pembayaran. Pelajari Inquiry Merchant Info

2. Membuat Inquiry dan Payment

Anda diharuskan untuk menyediakan callback yang dapat diakses oleh Espay Payment Gateway. Pelajari lebih lanjut Inquiry (Virtual Account Dinamis) dan Payment.

3. Membuat Virtual Account

Flow

Anda melakukan permintaan dengan mengirimkan parameter yang dibutuhkan, dan Espay Payment Gateway akan memberikan respons dalam bentuk JSON.

API URL

Environment URL
Sandbox
https://sandbox-api.espay.id/rest/merchantpg/sendinvoice
Production
https://api.espay.id/rest/merchantpg/sendinvoice
Key Value
Method
HTTP Post
Connection
keep-alive
Content-Length
250
Content-Type
application/x-www-form-urlencoded
Accept
*/*

Parameter Permintaan

Parameter Tipe Mandatory Keterangan
rq_uuid
String (64)
Y
Request identifier. ID unik yang digunakan untuk mengidentifikasi pesan.
rq_datetime
String (19)
Y
Tanggal dan waktu transaksi yang dikirim dari server merchant.

Format:
yyyy-MM-dd hh:mi:ss

Contoh:
2024-03-14 07:49:28
order_id
String (32)
Y
Kode unik untuk mengidentifikasi pesanan / penagihan / faktur.

Contoh:
Nomor transaksi, invoice id, dll.
amount
String (17)
Y
Jumlah yang dibayarkan.

Format:
Desimal .00

Contoh:
150000.00
ccy
String (3)
Y
Kode mata uang transaksi.

Format:
  • Rupiah: IDR
comm_code
String (32)
Y
Merchant code yang diberikan oleh tim Espay.

Contoh
SGWYESSISHOP
remark1
String (17)
C
Deskripsi pertama. Mandatory bisa “Ya” mengkuti skema. Diisi dengan No Handphone
remark2
String (30)
Y
Deskripsi kedua yang dapat diisi dengan nama.
remark3
String (50)
O
Deskripsi ketiga yang dapat diisi dengan alamat email.
remark4
String (32)
C
Deskripsi keempat yang berisi ID Unik merchant, digunakan oleh Espay untuk melakukan validasi. Khusus Fixed Virtual Account (virtual account statis).
update
String (1)
Y
Kondisi transaksi.

Format:
  • Update transaksi berdasarkan order_id: Y
  • Buat transaksi dengan order_id baru: N
bank_code
String (3)
Y
Kode bank. Lihat disini.
va_expired
String (20)
O
Waktu kedaluwarsa virtual account dalam satuan menit.

Contoh:
60 menit = 60
signature
String (64)
Y
Kode yang digunakan untuk melakukan validasi transaksi. Pelajari Signature.
Y: Yes, O: Optional, C: Conditional

Parameter Respons

Parameter Tipe Mandatory Keterangan
rq_uuid
String (64)
Y
Request identifier. ID unik yang digunakan untuk mengidentifikasi pesan.
rs_datetime
String (32)
Y
Tanggal dan waktu transaksi yang dikirim dari server Espay.

Format:
yyyy-MM-dd hh:mi:ss

Contoh:
2024-03-14 07:49:28
error_code
String (4)
Y
Kode respons.
error_message
String (32)
Y
Deskripsi respons.
va_number
String (16)
Y
Nomor virtual account yang digunakan untuk membayar.
expired
String (19)
Y
Tanggal dan waktu virtual account kedaluwarsa.

Contoh:
60 menit: 60
description
String (32)
Y
Deskripsi transaksi.
total_amount
String (17)
Y
Jumlah yang dibayarkan ditambah dengan biaya transaksi.

Format:
amount + fee. Desimal.00 (ISO 4217)

Contoh:
155000.00
amount
String (17)
Y
Jumlah yang dibayarkan.

Format:
Desimal .00 (ISO 4217)

Contoh:
150000.00
fee
String (17)
Y
Biaya transaksi.

Format:
Desimal .00 (ISO 4217)

Contoh:
5000.00
Y: Yes, O: Optional, C: Conditional
5. Setelah Pembayaran
Espay Payment Gateway menyediakan API Opsional yang dapat Anda gunakan untuk mendukung kebutuhan pembayaran lainnya.

Try It!

Anda bisa coba masukkan data sesuai dengan input yang telah disediakan. Setelah itu Anda submit dan lihat hasilnya!

Request

Value

Response


















































































































Contoh Permintaan

POST /rest/merchantpg/sendinvoice HTTP/1.1
Host: sandbox-api.espay.id
Connection: keep-alive
Content-Length: 250
Content-Type: application/x-www-form-urlencoded
Accept: */*

rq_uuid:abcbd39734-ed32-490d-98c4-e91bcd91037b
rq_datetime:2024-04-30 17:48:24
order_id:ORDER004
amount:890000
ccy:IDR
comm_code:SGWDIGALLERY
remark1:082138802290
remark2:TravelAja OTA Web Tiara Iyay
remark3:test@gmail.com
remark4:..........
update:N
bank_code:014
va_expired:30
signature:d4787b96b6ee30036e42cf54bbf346559a8200feb0ce81a1df74231759990e31

             
















































Contoh Respons Positif

{
  "rq_uuid": "fbd39734-ed32-490d-98c4-e91bcd91037a",
  "rs_datetime": "2024-03-15 10:06:16",
  "error_code": "0000",
  "error_message": "",
  "va_number": "8920800679171597",
  "expired": "2024-03-15 10:16:16",
  "description": "Invoice No 123456",
  "total_amount": "10001.00",
  "amount": "10001.00",
  "fee": "0.00",
  "bank_code": "008"
}
              


Contoh Respons Negatif

    
{
  "rq_uuid": "abcbd39734-ed32-490d-98c4-e91bcd91037b",
  "rs_datetime": "2024-06-04 20:19:01",
  "error_code": "0031",
  "error_message": "Rejected, Error komunikasi dengan Mitra"
}

              









cURL


curl --location 'https://sandbox-api.espay.id/rest/merchantpg/sendinvoice' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'rq_uuid=abcbd39734-ed32-490d-98c4-e91bcd91037b' \
--data-urlencode 'rq_datetime=2024-04-30 17:48:24' \
--data-urlencode 'order_id=ORDER004' \
--data-urlencode 'amount=890000' \
--data-urlencode 'ccy=IDR' \
--data-urlencode 'comm_code=SGWDIGALLERY' \
--data-urlencode 'remark1=082138802290' \
--data-urlencode 'remark2=TravelAja OTA Web Tiara Iyay' \
--data-urlencode 'remark3=test@gmail.com' \
--data-urlencode 'remark4=' \
--data-urlencode 'update=N' \
--data-urlencode 'bank_code=014' \
--data-urlencode 'va_expired=30' \
--data-urlencode 'signature=d4787b96b6ee30036e42cf54bbf346559a8200feb0ce81a1df74231759990e31'


           








































Scroll to Top