Bug #3607
XENDIT - Virtual Acocunt Payment Scenation & Documentation
Description
Business Process Skenario Generate Virtual Account Tulisan CRM
A. XENDIT API KEY
1. didapat dari akun xendit dashboard
Login ke Xendit > Setting > Developers > API KEYS
B. LIST AVAILABLE FVA BANK
https://api.xendit.co/available_virtual_account_banks
Parameter
is_activated = true
Country = ID
Currency = IDR
C. CHECKOUT BUSINESS PROCESS CRM
1. User pilih payment type ( Online Payment > Bank Transfer )
2. Confirm Order > Generate Doc No Sales Order dan ke save dengan payment status pending ( hanya terjadi apabila payment menggunakan online payment, apabila payment lain akan ke save dengan status Paid )
3. Setelah Sukses tergenerate doc no sales order > pilih bank yang tersedia
4. proceed to generate Virtual Account ( hanya terjadi apabila payment menggunakan online payment )
5. Check payment status menggunakan service terpisah
6. Setelah check payment sukses maka auto redirect ke home
D. GENERATE VIRTUAL ACCOUNT
1. Get Bank ID = mengambil list bank yang terdapat pada xendit
DevtController > getVirtualAccountBank
End Point = https://api.xendit.co/available_virtual_account_banks
2. Generate Virtual Account
DevtControler > generateVirtualAccount
End Point = https://api.xendit.co/callback_virtual_accounts
Body =
{
"external_id": "VA_fixed-{{$timestamp}}",
"bank_code": "BNI", -- Bank Code dipilih
"expected_amount": 50000, -- Amount Pembayaran
"is_closed": true,
"is_single_use": true,
"name": "Steve Wozniak"
}
3. Tampilkan Virtual Account Number ke front-end, dan save ke table PTRSALESHEADER, dan table PTRVIRTUALACCOUNT
4. Table Virtual Account berisi detail pembayaran virtual account
- Khusus di development, dapat menggunakan fitur simulate payment
https://api.xendit.co/callback_virtual_accounts/external_id=VA_fixed-1747209424/simulate_payment
-- Masukan amount sesuai expected amount ( apabila ada expected amount )
- Fitur untuk menerima callback /sinyal dari xendit apabila payment telah di proses kepada aplikasi internal minova. Callback url di buat untuk aplikasi minova menerima flag apabila pembayaran telah dilakukan
Aplikasi Webhook Dibuat di API Mobile Tulisan
MinovaESMobileAPI\Controllers\WorkflowController.cs
Webhook for FVA Paid = https://tulisan-apimobile.minovais.com/api/payment/xendit-va-callback
Stored Procedure = XenditVaCallBack
Webhook for FVA Create = https://tulisan-apimobile.minovais.com/api/payment/xendit-va-created-callback
G. SETTING WEBHOOK URL IN XENDIT
Setting > Dashboard > Webhoooks > Pilih Payment Type Virtual Account dan masukan url webhook yang sesuai di Create dan Paid
- Service untuk cek payment status apabila telah dilakukan payment oleh user ke virtual account xendit
- Service di buat di backend dan dilakukan pengecekan secara terus menerus sampai telah di lakukan pembayaran
Devt/checkIfPaid
1. payment_id didapat dari webhook FVA Paid yang disimpan ke table PTRVIRTUALACCOUNT ke kolom PaymentID
2. Kemudian check payment apakah sudah terbayar atau belum melalui
End Point = https://api.xendit.co/callback_virtual_account_payments/payment_id=:payment_id
--- VA STATUS XENDIT ---
ACTIVE = Virtual Account sudah tergenerate dan belum dilakukan pembayaran
INACTIVE = Telah dilakukan payment / simulate payment / pembayaran dalam proses atau sudah selesai
Files
Updated by shofwan shiddiq about 2 months ago
- Status changed from New to Closed
CATATAN
Karena sekarang kita pakai akun xendit test mode Minova, jadinya payment tidak bisa dilakukan beneran, hanya bisa melalui simulate payment oleh developer