Testing Documentation

Security Deposit Testing Documentation

Comprehensive testing guide for two-part transaction security deposit system

System Architecture
Understanding the two-part transaction flow

Transaction Flow:

  1. Guest Booking: Guest selects vehicle, dates, and payment method
  2. Card Tokenization: Xendit.js tokenizes card on client-side (PCI-compliant)
  3. Charge (Part 1): Immediate charge for rental amount (base + extras)
  4. Pre-Authorization (Part 2): Security deposit hold (7-day validity)
  5. Booking Confirmation: Both transactions succeed → booking confirmed
  6. Return & Release: Host accepts return → deposit automatically released
  7. Damage Capture (if needed): Admin captures partial/full deposit for damages
Test Environment Setup

# Environment Variables Required:

XENDIT_SECRET_KEY=xnd_xxx (Test Mode)

XENDIT_PUBLIC_KEY=xnd_public_xxx

XENDIT_WEBHOOK_VERIFICATION_ID_TEST=your_webhook_token

⚠️ Xendit Test Cards:

Card NumberScenarioResult
4000000000000002Success
Approved
4000000000000044Insufficient Funds
Declined
4000000000000101Generic Failure
Failed

Use any future expiry date (e.g., 12/25) and any 3-digit CVV