Payments
TL;DR — The Payments page is the org-wide ledger of every transaction your candidates have started — card payments via Payzone and bank deposits via receipt upload. Filter by status, campaign, date or method, click a row to open the detail, Approve or Reject pending bank deposits, and download a printable PDF receipt for any charged payment.
Before you start
- Requires: Admin, Campaign Manager, or Member role.
- The list shows transactions across all campaigns in your organization. Campaign Managers see all rows but only the actions allowed by their assignments.
- Card payments are processed by Payzone; bank deposits are uploaded by candidates and verified manually here.
Open the Payments page
From the sidebar, click Payments. The page lists every transaction newest-first in a table with default columns:
- Candidate — avatar, name, email, and the application reference.
- Campaign — the campaign the payment belongs to.
- Amount — formatted with the transaction currency (e.g. 150.00 MAD).
- Status — color-coded badge (see below).
- Method — Card or Bank deposit.
- Date — when the transaction was initiated.
The URL reflects every active filter so you can copy and share a specific view.
Reading a payment row
Each row corresponds to one payment transaction — not one application. A candidate paying twice (e.g. a failed card payment then a successful bank deposit) creates two rows.
Click anywhere on a row to open the payment detail page with the full receipt and any actions available for that transaction.
Bank deposit rows that are awaiting verification show an additional verification badge to the right of the status — Pending verification, Approved, or Rejected.
Status badges
The status column reflects where the transaction is in its lifecycle:
| Status | What it means |
|---|---|
| Pending (yellow) | The transaction was created but not yet captured. Card payments waiting for the bank confirmation; bank deposits waiting for receipt upload or verification. |
| Authorized (yellow) | The card holder authorized the charge but funds haven't moved yet. Rare — Payzone usually goes straight to Charged. |
| Charged (green) | Funds captured successfully. The candidate's stage flips to Completed on their timeline. |
| Refunded (blue) | A previously charged payment was refunded. Refunds happen out-of-band; this status reflects what the bank reports. |
| Cancelled (grey) | The candidate or the system cancelled the transaction before it was charged. |
| Failed (red) | Card declined, 3-D Secure timed out, or the bank refused the charge. The candidate can retry with a fresh attempt. |
A bank deposit specifically uses these statuses:
- Pending while the receipt is being verified.
- Charged after an admin approves the receipt.
- Cancelled after an admin rejects the receipt.
Payment methods
| Method | Flow |
|---|---|
| Card (indigo pill) | Candidate redirected to Payzone, completes 3-D Secure, returns to Brightstep. The transaction status updates from Pending → Charged (or Failed). |
| Bank deposit (purple pill) | Candidate makes a deposit at their bank using the institution's account details, uploads a receipt, and waits for an admin to verify. |
Bank deposits show an extra verification status badge alongside the regular status — Pending verification, Approved, Rejected, or Superseded (when the candidate uploaded a newer receipt).
Filters
The filter bar above the table supports:
- Search — free-text across candidate name, email, application reference, and order ID (300ms debounce).
- Status — dropdown of the six statuses listed above.
- Campaign — narrow to one campaign.
- Date range — a calendar popover for initiated between X and Y.
- Amount range — min and max numeric inputs in the org's primary currency.
- Method — Card or Bank deposit.
- Verification status — Pending verification, Approved, or Rejected (only meaningful for bank deposits).
Active filters appear as chips below the bar with X icons to clear individual ones; combine filters freely.
Verify a bank deposit
When a candidate uploads a deposit receipt, the transaction enters Pending with verification status Pending verification. To approve:
- From the Payments list, find the row (or use the Verification status: Pending verification filter).
- Click the row to open the payment detail page.
- The page shows:
- The amount, currency, candidate, application, and campaign at the top.
- The bank account the candidate deposited into (with a Copy RIB icon).
- The uploaded receipt with a View receipt button to preview the file.
- Click Approve. A confirmation dialog appears explaining that approving will mark the transaction as Charged and advance the candidate's stage.
- Confirm. The status flips to Charged, the verification badge becomes Approved, and the candidate's payment stage on their timeline shows Payment Completed.
The candidate is not automatically notified — pair this with a chat message or email if you want to confirm the approval.
Reject a bank deposit
If the receipt doesn't match the expected amount, isn't readable, or the deposit went to the wrong account:
- On the payment detail page, click Reject.
- A dialog asks for a rejection reason — type something the candidate can act on (e.g. "Amount on the receipt is 50 MAD short", "The deposit was made to the operating account, not the admissions account").
- Confirm.
The transaction is marked Cancelled, the verification badge becomes Rejected, and the candidate's payment stage shows the rejection reason in red. The candidate can then upload a new receipt or switch to card.
Reverse a verification decision
Already-decided bank deposits can be reversed:
- An approved deposit shows Reverse and reject — flips the transaction back to rejected.
- A rejected deposit shows Reverse and approve — flips the transaction to approved.
Use this when you realize you made a mistake or the candidate provided new evidence. The previous decision is kept in the audit trail.
The payment detail page
The detail page (URL: /payments/$paymentId) shows every field the system has on the transaction:
| Section | Contents |
|---|---|
| Header | Status badge, amount, currency, order ID, initiated and completed timestamps, candidate name, application reference (clickable), campaign name (clickable), workflow stage. |
| Card payment details | (when method = card) Payzone transaction reference, card brand, last 4 digits, 3-D Secure result. |
| Bank deposit details | (when method = bank deposit) Selected bank account with RIB, uploaded receipt with view/download, verification status, decision history. |
| Rejection reason | (when rejected) The reason you typed when rejecting. Visible to the candidate in red on their stage card. |
A back link at the top returns you to wherever you came from — the Payments list, an application, a task, or the campaign page.
Download a receipt as PDF
For any charged transaction, click Download PDF in the detail page header. It generates a printable receipt with:
- Your organization's logo, name, and address.
- The candidate's name and email.
- The order ID, amount, currency, payment method, and the charge date.
- A footer with the transaction reference.
Useful when a candidate asks for proof of payment to give to their employer, an embassy, or another institution.
Export to CSV
Click Export CSV in the toolbar above the table. The export uses the current filters — so to export just the failed card payments from May, set those filters first, then export. The download includes every field shown in the table plus the order ID and the timestamps.
For very large exports, the file is generated server-side and a notification appears when it's ready.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Payments missing from the sidebar | You're signed in as a Candidate | Use an Admin, Campaign Manager, or Member account |
| Bank deposit row stuck on Pending verification | No admin has reviewed it yet | Open the detail and Approve or Reject |
| Approve / Reject buttons missing on a deposit detail | The deposit is already decided — see Reverse a verification decision | Use Reverse and reject or Reverse and approve |
| Charged card payment but the candidate's stage didn't advance | The webhook from Payzone hasn't arrived yet | Wait a moment and refresh; if it stays >10 minutes, contact support |
| Can't preview the receipt — Failed to load | The file format isn't browser-previewable (e.g. very old PDF), or the upload was corrupted | Use the Download icon to save it locally and open with another tool |
| CSV export is empty | Active filters return no results | Clear filters first to confirm there's data, then re-apply only the ones you want |
| Verification status filter shows zero rows | All bank deposits in your filtered set are already decided | Clear the Verification status filter, or set it to Approved / Rejected to see decided ones |
