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:
GET /api/billing/admin/payment-channelsPATCH /api/billing/admin/payment-channels/:codePOST /api/billing/admin/payment-channels/:code/toggle
Frontend Page: mmp/frontend/pwa-app/src/pages/admin/AdminPaymentChannelsPage.tsx
Prerequisites
- User logged in with ADMIN role.
- Payment channels configured in database.
- Test data from
00_MASTER_TEST_DATA.mdis seeded.
Test Data - Payment Channels
| Code | Name | Status | Account Details |
|---|---|---|---|
| BANK_BDO | BDO Savings Account | Active | 001-234-567890 |
| BANK_BPI | BPI Current Account | Active | 1234-5678-90 |
| GCASH | GCash | Active | 0917-123-4567 |
| MAYA | Maya | Inactive | 0918-234-5678 |
| TRAXIONPAY | TraxionPay Gateway | Active | Integration Enabled |
| CASH | Cash Payment | Active | Office Collection |
Test Cases
TC-PAY-041: View All Payment Channels
| Step | Action | Expected Result |
|---|---|---|
| 1 | Login as Admin User (ADMIN). | Dashboard displayed. |
| 2 | Navigate to Admin > Settings > Payment Channels. | Payment channels page displayed. |
| 3 | Verify all channels listed. | BDO, BPI, GCash, Maya, TraxionPay, Cash visible. |
| 4 | Verify status indicators. | Active channels show green, inactive show gray. |
| 5 | Verify account details displayed. | Account numbers/info shown for each channel. |
TC-PAY-042: Enable Payment Channel
| Step | Action | Expected Result |
|---|---|---|
| 1 | Locate Maya channel (currently Inactive). | Channel row displayed. |
| 2 | Click toggle switch or "Enable" button. | Confirmation may appear. |
| 3 | Confirm enable. | API POST /api/billing/admin/payment-channels/MAYA/toggle called. |
| 4 | Verify success. | "Payment channel enabled" message. |
| 5 | Verify status. | Maya now shows as "Active". |
| 6 | Test member checkout. | Maya appears as payment option for members. |
TC-PAY-043: Disable Payment Channel
| Step | Action | Expected Result |
|---|---|---|
| 1 | Locate GCash channel (currently Active). | Channel row displayed. |
| 2 | Click toggle switch or "Disable" button. | Confirmation dialog appears. |
| 3 | Confirm disable. | API called. |
| 4 | Verify success. | "Payment channel disabled" message. |
| 5 | Verify status. | GCash now shows as "Inactive". |
| 6 | Test member checkout. | GCash NOT available as payment option. |
TC-PAY-044: Edit Payment Channel Details - Bank Account
| Step | Action | Expected Result |
|---|---|---|
| 1 | Click "Edit" on BDO channel. | Edit form opens. |
| 2 | Verify current details. | Account: 001-234-567890, Name: BDO Savings Account. |
| 3 | Update account number: 001-234-999888. | New number entered. |
| 4 | Update account name: BDO Peso Savings. | New name entered. |
| 5 | Save changes. | API PATCH /api/billing/admin/payment-channels/BANK_BDO called. |
| 6 | Verify success. | "Changes saved" message. |
| 7 | Verify updated display. | New details shown in list. |
| 8 | Test member view. | Members see updated bank details at checkout. |
TC-PAY-045: Edit Payment Channel - GCash Number
| Step | Action | Expected Result |
|---|---|---|
| 1 | Click "Edit" on GCash channel. | Edit form opens. |
| 2 | Update phone number: 0919-987-6543. | New number entered. |
| 3 | Update account name: RCME Treasury. | Name entered. |
| 4 | Save changes. | Changes saved. |
| 5 | Verify member view. | New GCash number displayed at checkout. |
TC-PAY-046: Add Instructions to Payment Channel
| Step | Action | Expected Result |
|---|---|---|
| 1 | Edit BDO channel. | Form opens. |
| 2 | Add/update instructions: "Please include your Member ID in the remarks field". | Instructions entered. |
| 3 | Save changes. | Changes saved. |
| 4 | Test member view. | Instructions displayed when BDO is selected at checkout. |
TC-PAY-047: Disable All Payment Channels
| Step | Action | Expected Result |
|---|---|---|
| 1 | Disable all payment channels one by one. | All channels set to inactive. |
| 2 | Navigate to member checkout for a paid event. | Checkout page displayed. |
| 3 | Verify payment options. | No payment methods available - error or contact admin message. |
TC-PAY-048: Validation - Cannot Disable Gateway with Active Subscriptions
| Step | Action | Expected Result |
|---|---|---|
| 1 | If subscriptions exist using TraxionPay. | - |
| 2 | Attempt to disable TraxionPay. | Warning: "Cannot disable - active subscriptions exist" or requires confirmation. |
TC-PAY-049: Payment Channel Display Order
| Step | Action | Expected Result |
|---|---|---|
| 1 | Edit display order if feature exists. | Drag-drop or order numbers. |
| 2 | Move Bank Transfer to top. | Order updated. |
| 3 | Save changes. | - |
| 4 | Test member checkout. | Bank Transfer appears first in payment options. |
TC-PAY-050: Permission Check - Non-Admin Cannot Configure
| Step | Action | Expected Result |
|---|---|---|
| 1 | Login as Ana Reyes (FINANCE_MANAGER). | Dashboard displayed. |
| 2 | Attempt to access Payment Channels config. | Access denied or read-only. |
| 3 | Login as Maria Cruz (MEMBER). | - |
| 4 | Attempt direct API call. | Status 403 Forbidden. |
TC-PAY-051: View Channel Configuration History
| Step | Action | Expected Result |
|---|---|---|
| 1 | Access payment channel settings. | - |
| 2 | Look for change history/audit log. | If available, shows recent changes. |
| 3 | Verify 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"
}
]
}