xendit docs

Menguji Pembayaran

Pengujian

Sebelum membuat akun anda Live , Anda akan ingin menguji integrasi Anda secara menyeluruh. Kami membagi skenario pembayaran pengujian berdasarkan metode pengumpulan: Non-fixed virtual account , dan fixed virtual account . Jika Anda memerlukan bantuan setelah ini, silakan kirimkan pertanyaan atau obrolan kepada kami kapan saja melalui email. Dalam mode tes, Anda dapat menggunakan informasi berikut ini ke berbagai skenario yang serupa.

Simulasi Invoice dengan Non-fixed Virtual Account

SKENARIO COBA INI

Pembayaran invoice berhasil

Invoice telah dibayarkan menggunakan metode non-fixed virtual account dan akan memulai callback API ke URL callback Anda

PARAMETER VALUE

amount

3000000 or 2000000

Simulasi Pembayaran Virtual Account

Untuk mensimulasikan pembayaran ke virtual account apa pun ( Fixed atau Nonfixed ), kirim permintaan POST ke /pool_virtual_accounts/simulate_payment dengan parameter ini di badan.

POST /pool_virtual_accounts/simulate_payment

SKENARIO COBA INI

Simulasi pembayaran virtual account berhasil

Virtual account akan menerima acara pembayaran untuk jumlah transfer yang ditentukan

PARAMETER VALUE

bank_code

Kode bank dari virtual account (mis. "BCA")

bank_account_number

Nomor Virtual Account lengkap untuk mensimulasikan pembayaran. Pastikan untuk menyertakan 5 digit merchant_code di awal

transfer_amount

Jumlah pembayaran simulasi

Autentikasi Kartu Kredit

Dalam mode Development, Anda dapat menggunakan nomor kartu ini untuk mensimulasikan berbagai skenario dalam otentikasi. Saat menggunakan angka-angka ini, Anda dapat menggunakan kode CVV dan tanggal kedaluwarsa di masa mendatang.

SKENARIO COBA INI

Kartu yang mengaktifkan 3DS

Kartu ini terdaftar dalam 3DS dan dapat digunakan untuk menguji proses otentikasi

PARAMETER VALUE

CARD NUMBER

4000000000000002

5200000000000007

kartu yang gagal proses 3DS

Kartu ini terdaftar di 3DS tetapi akan gagal dalam pemeriksaan otentikasi

PARAMETER VALUE

CARD NUMBER

4000000000000010

5200000000000015

3DS Timeout

Kartu ini terdaftar dalam 3DS tetapi timeout selama otentikasi

PARAMETER VALUE

CARD NUMBER

4000000000000044

5200000000000049

Tidak terdaftar 3DS

Kartu ini tidak terdaftar dalam 3DS

PARAMETER VALUE

CARD NUMBER

5200000000000056

Simulasi Tagihan Kartu Kredit Gagal

Dalam mode Development, Anda dapat menggunakan nomor ajaib ini untuk mensimulasikan respons kegagalan dalam membuat tagihan

FAILURE REASON MAGIC AMOUNT

EXPIRED_CARD

Kartu yang Anda coba pakai sudah kedaluwarsa.

PARAMETER VALUE

amount

5001

CARD_DECLINED

Kartu yang Anda coba pakai telah ditolak oleh bank yang mengeluarkannya.

PARAMETER VALUE

amount

5002

PROCESSOR_ERROR

Tagihan gagal karena ada masalah integrasi antara prosesor kartu dan bank.

PARAMETER VALUE

amount

5003

INSUFFICIENT_BALANCE

Kartu yang Anda coba pakai tidak memiliki cukup saldo untuk menyelesaikan pengambilan.

PARAMETER VALUE

amount

5004

STOLEN_CARD

Kartu yang Anda coba pakai telah ditandai sebagai dicuri.

PARAMETER VALUE

amount

5005

INACTIVE_CARD

Kartu yang Anda coba pakai tidak aktif.

PARAMETER VALUE

amount

5006

Menggunakan outlet ritel sebagai sebagai salah satu metode pembayaran pada invoice

Anda dapat membuat invoice melalui API atau Dasbor (baca selengkapnya pada dokumentasi dan API reference kami)


Ketika Outlet Ritel telah diaktifkan sebagai metode pembayaran, dan anda telah memilih prefix yang akan digunakan, anda akan menerima tambahan pada respon API dengan field berikut

PARAMETER DESKRIPSI KETERANGAN

available_retail_outlets

Outlet ritel yang tersedia sesuai dengan konfigurasi anda.

Hanya tersedia Alfamart dan Alfamidi untuk saat ini

payment_code

Kode pembayaran unik untuk identifikasi pembayaran

Terdiri dari prefix anda + string acak Contoh: ALFA001

transfer_amount

Jumlah yang harus dibayarkan.

Anda juga dapat melihat tab “Retail Outlets” pada Invoice yang anda buat. Ketika anda klik tab tersebut, akan tampil informasi yang diperlukan pelanggan untuk melakukan pembayaran melalui Outlet Retail

Simulasi Invoice dengan Outlet Ritel

Anda dapat melakikan simulasi pembayaran melalui Alfamart dengan mengikuti petunjuk berikut.


Pada Postman (atau aplikasi serupa), import API collection berikut untuk melakukan simulasi pembayaran

Pada daftar collections, masuk ke dalam folder invoice dan pilih [TEST] alfamart payment

Atur basic authorization anda dengan secret development API keys yang dapat anda peroleh di Dasbor (masuk ke Settings → API Keys → Development Keys → Secret Key)

Masukkan informasi berikut pada request body anda dan slik “Send

PARAMETER MASUKAN BERIKUT KETERANGAN

available_retail_outlets

“ALFAMART”

payment_code

Kode pembayaran lengkap yang diberikan sistem untuk invoice anda (prefix + string acak)

Contoh: ALFA001

transfer_amount

Jumlah yang harus dibayarkan oleh pelanggan anda, sesuai yang tertera pada invoice

Perhatikan bahwa jumlah transfer harus sesuai dengan yang tertera pada invoice - kesalahan jumlah mengakibatkan pembayaran tidak dapat dipenuhi

Lihat contoh berikut:


{
"retail_outlet_name" : "ALFAMART",
"payment_code" : "ALFA001",
"transfer_amount" : 11000
}

Mensimulasikan Kasus Penipuan

Jika implementasi Anda dikonfigurasikan untuk Deteksi Penipuan , jumlah ini dapat digunakan untuk mensimulasikan berbagai skenario risiko kartu.

SKENARIO COBA INI
PARAMETER VALUE

Low Risk (Allow)

amount

10077

High Risk (Block)

amount

10099

Bank Delays

Jika bank-bank mengalami downtime , pencairan akan ditunda sampai bank kembali online. Lihat halaman kode Bank untuk bagan ketika bank di Indonesia offline berdasarkan pengujian uptime kami.

Pertanyaan?

Masih ada lebih banyak pertanyaan? Kami selalu senang membantu sebisa kami. Kirimkan kami email atau chat dengan kami di live chat .

Testing Payments

Testing

Before taking your integration live, you'll want to test your integration thoroughly. We divide the testing payment scenarios based on the collection method: non fixed virtual account and fixed virtual account. If you need help after this please feel free to email us any questions or chat to us live anytime. In test mode, you can use the following information to similar various scenarios.

Simulate Invoice with Non-fixed Virtual Account

SCENARIO TRY THIS

Successful invoice payment

Invoice has been paid using non fixed virtual account method and will initiate API callback to your callback URL

PARAMETER VALUE

amount

3000000

Simulate Virtual Account Payments

To simulate a payment to any virtual account (Fixed or Nonfixed), send a POST request to the /pool_virtual_accounts/simulate_payment with these parameters in the body.

POST /pool_virtual_accounts/simulate_payment

SCENARIO TRY THIS

Simulate successful virtual account payment

The virtual account will receive a payment event for the transfer amount specified

PARAMETER VALUE

bank_code

Bank code of the virtual account (eg. "BCA")

bank_account_number

Full Virtual Account number to simulate payment. Be sure to include the 5-digit merchant_code at the beginning

transfer_amount

Simulated payment amount

Credit Cards Authentication

In Development mode, you can use these card number to simulate different scenarios in authentication. When using these numbers, you can use any CVV code and future expiration date.

SCENARIO TRY THIS

3DS Enabled Card

This card is enrolled in 3DS and can be used to test the authentication flow

PARAMETER VALUE

CARD NUMBER

4000000000000002

5200000000000007

3DS Failure Card

This card is enrolled in 3DS but will fail the authentication check

PARAMETER VALUE

CARD NUMBER

4000000000000010

5200000000000015

3DS Timeout

This card is enrolled in 3DS but will timeout during authentication

PARAMETER VALUE

CARD NUMBER

4000000000000044

5200000000000049

3DS Not Enrolled

This card is not enrolled in 3DS

PARAMETER VALUE

CARD NUMBER

5200000000000056

Credit Cards Charges Failure Reason

In Development mode, you can use these magic number to simulate failure response in create charges

FAILURE REASON MAGIC AMOUNT

EXPIRED_CARD

The card you are trying to capture is expired.

PARAMETER VALUE

amount

5001

CARD_DECLINED

The card you are trying to capture has been declined by the issuing bank.

PARAMETER VALUE

amount

5002

PROCESSOR_ERROR

The charge is failed because there's an integration issue between card processor and the bank.

PARAMETER VALUE

amount

5003

INSUFFICIENT_BALANCE

The card you are trying to capture does not have enough balance to complete the capture.

PARAMETER VALUE

amount

5004

STOLEN_CARD

The card you are trying to capture has been marked as stolen.

PARAMETER VALUE

amount

5005

INACTIVE_CARD

The card you are trying to capture is inactive.

PARAMETER VALUE

amount

5006

Including retail outlets as payment channel in invoices

You can create invoices using our Invoice APIs or via our Dashboard (read more about this in our docs and API references)


When Retail Outlets are activated as a payment channel and configured, and your prefix is chosen, you will notice an additional section in the API response now with the following fields:

PARAMETER DESCRIPTION REMARKS

available_retail_outlets

Available retail outlet payment channels as per your configuration

Only Alfamart and Alfamidi for now

payment_code

Unique payment code used to identify the transaction, when paying at the retail outlet

Will consist of your prefix + a randomly generated string e.g. ALFA001

transfer_amount

Amount the user should pay

You will also see a "Retail Outlets" tab on any invoices which you create. When clicked, this tab will display the information necessary for an end customer to make payment via Retail Outlets.

Simulating payments with Retail Outlet

Menggunakan outlet ritel sebagai sebagai salah satu metode pembayaran pada invoice


In Postman (or other equivalent platform), import the following API collection to enable payment simulation:

In the list of Collections, go to the invoice folder and select [TEST] alfamart payment

Set your basic authorization to the secret development API keys found in your Dashboard (go to Settings --> API Keys --> Development Keys --> Secret Key)

Enter the following information into your request body and click "Send":

PARAMETER ENTER THE FOLLOWING REMARKS

available_retail_outlets

“ALFAMART”

payment_code

The entire payment code that was generated for your invoice (i.e. the prefix + randomly generated string)

E.g: ALFA001

transfer_amount

The amount to be paid by your end customer, stated in your invoice.

Note that this transfer amount must be exactly the same as that stated in your invoice - otherwise, payment cannot be completed

see below for an example:


{
"retail_outlet_name" : "ALFAMART",
"payment_code" : "ALFA001",
"transfer_amount" : 11000
}

Simulating Fraud Cases

If your implementation is configured for Fraud Detection , these amounts can be used to simulate various card risk scenarios.

SCENARIO TRY THIS
PARAMETER VALUE

Low Risk (Allow)

amount

10077

High Risk (Block)

amount

10099

Bank Delays

If the banks are down, disbursements will be delayed until the banks come back online. See the Bank codes page for a chart of when banks in Indonesia go offline based on our uptime testing.

Questions?

Still have more questions? We're always happy to help however we can. Shoot us an email or chat to us in live chat.