⚠️ 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 Channel Configuration

Module: Payments - Payment Channels

Backend Endpoints:

Frontend Page: mmp/frontend/pwa-app/src/pages/admin/AdminPaymentChannelsPage.tsx

Prerequisites

Test Data - Payment Channels

CodeNameStatusAccount Details
BANK_BDOBDO Savings AccountActive001-234-567890
BANK_BPIBPI Current AccountActive1234-5678-90
GCASHGCashActive0917-123-4567
MAYAMayaInactive0918-234-5678
TRAXIONPAYTraxionPay GatewayActiveIntegration Enabled
CASHCash PaymentActiveOffice Collection

Test Cases

TC-PAY-041: View All Payment Channels

StepActionExpected Result
1Login as Admin User (ADMIN).Dashboard displayed.
2Navigate to Admin > Settings > Payment Channels.Payment channels page displayed.
3Verify all channels listed.BDO, BPI, GCash, Maya, TraxionPay, Cash visible.
4Verify status indicators.Active channels show green, inactive show gray.
5Verify account details displayed.Account numbers/info shown for each channel.

TC-PAY-042: Enable Payment Channel

StepActionExpected Result
1Locate Maya channel (currently Inactive).Channel row displayed.
2Click toggle switch or "Enable" button.Confirmation may appear.
3Confirm enable.API POST /api/billing/admin/payment-channels/MAYA/toggle called.
4Verify success."Payment channel enabled" message.
5Verify status.Maya now shows as "Active".
6Test member checkout.Maya appears as payment option for members.

TC-PAY-043: Disable Payment Channel

StepActionExpected Result
1Locate GCash channel (currently Active).Channel row displayed.
2Click toggle switch or "Disable" button.Confirmation dialog appears.
3Confirm disable.API called.
4Verify success."Payment channel disabled" message.
5Verify status.GCash now shows as "Inactive".
6Test member checkout.GCash NOT available as payment option.

TC-PAY-044: Edit Payment Channel Details - Bank Account

StepActionExpected Result
1Click "Edit" on BDO channel.Edit form opens.
2Verify current details.Account: 001-234-567890, Name: BDO Savings Account.
3Update account number: 001-234-999888.New number entered.
4Update account name: BDO Peso Savings.New name entered.
5Save changes.API PATCH /api/billing/admin/payment-channels/BANK_BDO called.
6Verify success."Changes saved" message.
7Verify updated display.New details shown in list.
8Test member view.Members see updated bank details at checkout.

TC-PAY-045: Edit Payment Channel - GCash Number

StepActionExpected Result
1Click "Edit" on GCash channel.Edit form opens.
2Update phone number: 0919-987-6543.New number entered.
3Update account name: RCME Treasury.Name entered.
4Save changes.Changes saved.
5Verify member view.New GCash number displayed at checkout.

TC-PAY-046: Add Instructions to Payment Channel

StepActionExpected Result
1Edit BDO channel.Form opens.
2Add/update instructions: "Please include your Member ID in the remarks field".Instructions entered.
3Save changes.Changes saved.
4Test member view.Instructions displayed when BDO is selected at checkout.

TC-PAY-047: Disable All Payment Channels

StepActionExpected Result
1Disable all payment channels one by one.All channels set to inactive.
2Navigate to member checkout for a paid event.Checkout page displayed.
3Verify payment options.No payment methods available - error or contact admin message.

TC-PAY-048: Validation - Cannot Disable Gateway with Active Subscriptions

StepActionExpected Result
1If subscriptions exist using TraxionPay.-
2Attempt to disable TraxionPay.Warning: "Cannot disable - active subscriptions exist" or requires confirmation.

TC-PAY-049: Payment Channel Display Order

StepActionExpected Result
1Edit display order if feature exists.Drag-drop or order numbers.
2Move Bank Transfer to top.Order updated.
3Save changes.-
4Test member checkout.Bank Transfer appears first in payment options.

TC-PAY-050: Permission Check - Non-Admin Cannot Configure

StepActionExpected Result
1Login as Ana Reyes (FINANCE_MANAGER).Dashboard displayed.
2Attempt to access Payment Channels config.Access denied or read-only.
3Login as Maria Cruz (MEMBER).-
4Attempt direct API call.Status 403 Forbidden.

TC-PAY-051: View Channel Configuration History

StepActionExpected Result
1Access payment channel settings.-
2Look for change history/audit log.If available, shows recent changes.
3Verify entries."GCASH disabled by admin@rcme.membervu.com at [timestamp]".

API Test Cases

TC-PAY-API-013: GET /api/billing/admin/payment-channels

Expected Response: 200 OK

{

"channels": [

{

"code": "BANK_BDO",

"name": "BDO Savings Account",

"type": "BANK_TRANSFER",

"isActive": true,

"accountNumber": "001-234-567890",

"accountName": "Rotary Club of Manila Expats",

"bankName": "BDO Unibank",

"instructions": "Include Member ID in remarks"

},

{

"code": "GCASH",

"name": "GCash",

"type": "E_WALLET",

"isActive": true,

"accountNumber": "0917-123-4567",

"accountName": "RCME Treasury"

},

{

"code": "TRAXIONPAY",

"name": "Pay Online",

"type": "GATEWAY",

"isActive": true,

"supportsCards": true,

"supportsEWallets": true

}

]

}

TC-PAY-API-014: PATCH /api/billing/admin/payment-channels/:code

Request: PATCH /api/billing/admin/payment-channels/BANK_BDO

{

"accountNumber": "001-234-999888",

"accountName": "BDO Peso Savings",

"instructions": "Please include Member ID and Invoice Number"

}

Expected Response: 200 OK

{

"channel": {

"code": "BANK_BDO",

"accountNumber": "001-234-999888",

"accountName": "BDO Peso Savings",

"updatedAt": "timestamp"

}

}

TC-PAY-API-015: POST /api/billing/admin/payment-channels/:code/toggle

Request: POST /api/billing/admin/payment-channels/MAYA/toggle

{

"isActive": true

}

Expected Response: 200 OK

{

"channel": {

"code": "MAYA",

"isActive": true,

"toggledAt": "timestamp",

"toggledBy": "admin@rcme.membervu.com"

}

}

TC-PAY-API-016: GET Payment Channels (Public/Member View)

Request: GET /api/billing/payment-channels (member endpoint)

Expected Response: 200 OK - Only active channels, sensitive admin info hidden

{

"channels": [

{

"code": "BANK_BDO",

"name": "BDO Savings Account",

"type": "BANK_TRANSFER",

"displayDetails": "Account: 001-234-567890",

"instructions": "Include Member ID in remarks"

}

]

}