⚠️ PENDING UPDATE — Payments section is under active development
These payment test cases are KNOWN STALE (staleness audit 2026-06-10) and are being rewritten against current code. Do not execute as written. Known drift: TraxionPay removed; channel codes changed (no BDO/BPI/CASH); Credits admin UI & most of its API not built; approve/reject set SUCCEEDED/FAILED (not "APPROVED"/"REJECTED"); live Paynamics flows are untestable now (no prod credentials, events currently free).

URLs in this section were NOT migrated to the staging-subdomain form (stg-rcme.membervu.com) in the 2026-06-10 env pass — they will be corrected during the rewrite.

Reference: _bmad-output/test-artifacts/test-reviews/test-guide-html-staleness-audit-2026-06-10.md

Test Cases: Payment Submission

Module: Payments - Payment Submission

Backend Endpoints: POST /api/billing/payments, POST /api/billing/member/invoices/:invoiceId/pay

Frontend Pages:

Prerequisites

Test Data

FieldValue
PayerMaria Cruz (MEMBER)
InvoiceINV-2024-0002 or new pending invoice
AmountPHP 15,000.00
Payment MethodBank Transfer (BDO)
Reference NumberBDO-TEST-12345
Payment Proofpayment_proof_gcash.jpg

Test Cases

TC-PAY-001: Submit Payment for Pending Invoice

StepActionExpected Result
1Login as Maria Cruz (MEMBER).Member dashboard displayed.
2Navigate to My Invoices.Invoice list displayed.
3Click on a pending invoice.Invoice detail page displayed.
4Click "Pay Now" button.Payment form/modal opens.
5Select payment method: Bank Transfer.Bank details displayed (BDO account number).
6Enter reference number: BDO-TEST-12345.Reference entered.
7Enter payment date: Today.Date populated.
8Upload payment proof (optional but recommended).File uploaded successfully.
9Click "Submit Payment".API POST /api/billing/payments called.
10Verify success message."Payment submitted for approval" displayed.
11Verify payment status.Payment shows as "PENDING" (awaiting admin approval).

TC-PAY-002: Submit Payment via GCash

StepActionExpected Result
1Open pending invoice.Invoice displayed.
2Click "Pay Now".Payment options displayed.
3Select "GCash" as payment method.GCash details shown (number: 0917-123-4567).
4Enter reference: 9171234567-001.Reference entered.
5Upload payment screenshot.Screenshot uploaded.
6Submit payment.Payment submitted successfully.
7Verify.Payment recorded with method "GCASH".

TC-PAY-003: Submit Payment Without Proof

StepActionExpected Result
1Open pending invoice and click Pay Now.Payment form opens.
2Fill in payment details.-
3Skip payment proof upload.-
4Submit payment.Warning displayed (if proof required) or allowed with warning.
5Verify submission.Payment submitted (may be flagged for manual verification).

TC-PAY-004: Submit Partial Payment

StepActionExpected Result
1Open invoice with amount PHP 15,000.Invoice displayed.
2Click "Pay Now".Payment form opens.
3Enter amount: PHP 5,000 (partial).Partial amount accepted.
4Fill remaining details and submit.Payment submitted.
5Verify invoice status.Shows "PARTIALLY_PAID" after approval.
6Verify balance.Balance due: PHP 10,000.

TC-PAY-005: Submit Payment - Invalid Reference Format

StepActionExpected Result
1Open payment form.-
2Enter invalid reference (e.g., empty or special characters).-
3Submit payment.Validation error: "Valid reference number required".

TC-PAY-006: Submit Payment - Invalid Amount

StepActionExpected Result
1Open payment form for invoice amount PHP 15,000.-
2Enter amount: PHP 0.Validation error: "Amount must be greater than 0".
3Enter amount: PHP -100.Validation error: "Invalid amount".
4Enter amount: PHP 10,000 (more than invoice).Warning or error about overpayment.

TC-PAY-007: Submit Payment - File Upload Errors

StepActionExpected Result
1Open payment form.-
2Attempt to upload invalid file type (.exe).Error: "Invalid file type. Allowed: JPG, PNG, PDF".
3Attempt to upload oversized file (> 5MB).Error: "File too large. Maximum 5MB".
4Upload valid JPG < 5MB.Upload successful.

TC-PAY-008: Submit Payment for Already Paid Invoice

StepActionExpected Result
1Navigate to a PAID invoice (INV-2024-0001).Invoice displayed.
2Look for "Pay Now" button.Button not visible or disabled.
3Attempt direct API call.Status 400 Bad Request - "Invoice already paid".

TC-PAY-009: Submit Payment for Voided Invoice

StepActionExpected Result
1Navigate to a VOIDED invoice (INV-2024-0004).Invoice displayed.
2Attempt payment.Not allowed - "Cannot pay voided invoice".

TC-PAY-010: Duplicate Payment Prevention

StepActionExpected Result
1Submit payment for invoice with reference REF-001.Payment submitted.
2Submit another payment with same reference REF-001.Warning: "Duplicate reference detected" or blocked.

TC-PAY-011: Submit Payment via Online Gateway (TraxionPay)

StepActionExpected Result
1Open pending invoice.Invoice displayed.
2Click "Pay Now".Payment options displayed.
3Select "Pay Online" (TraxionPay).Redirect to TraxionPay gateway.
4Complete payment on gateway (test mode).Payment processed.
5Return to MemberVu.Success page displayed.
6Verify payment status.Automatically marked as PAID (no manual approval needed).

TC-PAY-012: Payment Confirmation Email

StepActionExpected Result
1Submit payment successfully.Payment submitted.
2Check email (Juan's inbox).Payment confirmation email received.
3Verify email content.Contains payment details, invoice reference, amount, date.

API Test Cases

TC-PAY-API-001: POST /api/billing/payments - Valid Submission

Request:

{

"invoiceId": "INV-2024-0002",

"amount": 15000,

"paymentMethod": "BANK_BDO",

"referenceNumber": "BDO-TEST-12345",

"paymentDate": "2024-01-27",

"notes": "Transferred via BDO mobile"

}

Expected Response: 201 Created

{

"id": "PAY-2024-XXXX",

"invoiceId": "INV-2024-0002",

"amount": 15000,

"status": "PENDING",

"paymentMethod": "BANK_BDO",

"referenceNumber": "BDO-TEST-12345",

"createdAt": "timestamp"

}

TC-PAY-API-002: POST /api/billing/payments - Missing Required Fields

Request:

{

"invoiceId": "INV-2024-0002"

}

Expected Response: 400 Bad Request

{

"error": "VALIDATION_ERROR",

"details": {

"amount": "Required",

"paymentMethod": "Required"

}

}

TC-PAY-API-003: POST /api/billing/payments - Non-Existent Invoice

Request:

{

"invoiceId": "INVALID-ID",

"amount": 15000,

"paymentMethod": "BANK_BDO",

"referenceNumber": "REF-123"

}

Expected Response: 404 Not Found

{

"error": "INVOICE_NOT_FOUND"

}

TC-PAY-API-004: POST /api/billing/payments with Proof Upload

Request: multipart/form-data

Expected Response: 201 Created with proofUrl in response