Prepare A Safe Test
- Use an isolated WHMCS test environment and Xendit Test Secret Key.
- Enable Test Mode and verify the key is actually a test key.
- Create a whole-rupiah IDR test invoice with a positive outstanding balance.
- Use Xendit’s current official test payment instructions; never use a real card to simulate a sandbox test.
Follow The Journey
PAYMENT FLOW · ILLUSTRATION
- WHMCS Invoice: choose the Xendit payment method and open the payment link.
- Xendit Checkout: complete the supported test card journey on the hosted page.
- Server Callback: Xendit delivers the session event; the module retrieves and checks the session.
- WHMCS Result: confirm the invoice becomes Paid and the expected transaction ID is recorded.
This is a workflow illustration, not a screenshot of a payment or proof that a transaction was executed.
Acceptance Checklist
| Scenario | Expected Result |
|---|---|
| Successful card test | One payment recorded; correct invoice, amount and currency; balance cleared. |
| Cancellation / failed attempt | No payment applied solely because the browser returns to WHMCS. |
| Session expiry | Expiry logged; no payment added. |
| Repeat delivery of the same completed event | No additional payment for the same payment ID; verify the transaction list. |
| Non-IDR invoice | Gateway displays the IDR-only message before checkout. |
| Amount changed after session creation | Mismatch investigated; no forced payment application. |
| Callback temporarily unavailable | Inspect delivery status and reconcile after restoring the endpoint; no duplicate payment. |
Go Live Deliberately
- Confirm merchant approval and card payment availability with Xendit.
- Use the Live Secret Key, disable Test Mode and verify the live callback settings.
- Enable the gateway for the intended customers only after testing passes.
- With an authorized payer, perform a controlled live payment and check the provider record, WHMCS transaction and invoice. Monitor the first payments for delayed or rejected callbacks.