Project

General

Profile

Bug #3607

XENDIT - Virtual Acocunt Payment Scenation & Documentation

Added by shofwan shiddiq about 2 months ago. Updated about 2 months ago.

Status:
Closed
Priority:
Normal
Start date:
05/15/2025
Due date:
% Done:

0%

Estimated time:
Spent time:

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

E. SIMULATE PAYMENT F. WEBHOOK CALLBACK URL XENDIT
  • 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

H. CHECK PAYMENT STATUS
  • 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

clipboard-202505151147-zzy8v.png (60.3 KB) clipboard-202505151147-zzy8v.png shofwan shiddiq, 05/15/2025 11:47 AM
clipboard-202505151147-ktdbe.png (91.9 KB) clipboard-202505151147-ktdbe.png shofwan shiddiq, 05/15/2025 11:47 AM
clipboard-202505151148-qoujd.png (139 KB) clipboard-202505151148-qoujd.png shofwan shiddiq, 05/15/2025 11:48 AM
clipboard-202505151149-xb3xh.png (114 KB) clipboard-202505151149-xb3xh.png shofwan shiddiq, 05/15/2025 11:49 AM
XENDITVA_Tulisan.mp4 (44.8 MB) XENDITVA_Tulisan.mp4 shofwan shiddiq, 05/15/2025 11:52 AM
#1

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

Also available in: Atom PDF