Skip to main content
Version: Next

Payment attempts

Payment attempts is a log of every transaction that has been submitted through any payment gateway — whether it succeeded, failed, or is pending. This is the diagnostic view used by administrators to investigate payment issues.

Navigation: Finance → Attempts


What is a payment attempt?

When a parent tries to pay online (e.g., via PayNow, EcoCash, or Stripe), the gateway logs the attempt before it is confirmed. An attempt can result in:

  • Success — money was received; a payment record was created automatically
  • Failed — the transaction was declined (insufficient funds, wrong PIN, card declined)
  • Pending — the gateway has not yet confirmed or denied the transaction
  • Cancelled — the parent abandoned the payment flow before completing it

Payment attempts page

Payment Attempts page showing attempt list with gateway, amount, status badge, and timestamp

Columns explained

ColumnDescription
Attempt IDUnique identifier from the gateway
Student / ReferenceStudent name if matched, or raw reference from the gateway
GatewayWhich provider processed the attempt (Stripe, PayNow, EcoCash, etc.)
AmountAmount that was attempted
StatusSuccess, Failed, Pending, or Cancelled
TimestampWhen the attempt was made
Error codeGateway error code for failed attempts
Linked paymentIf successful, a link to the created payment record

Filtering attempts

FilterOptions
StatusAll, Success, Failed, Pending, Cancelled
GatewayFilter to a specific payment provider
Date rangeNarrow to a specific period
StudentSearch by student name or gateway reference

Viewing attempt details

Click any attempt to open the detail panel:

The detail view shows the raw gateway response, which includes the exact error message returned by the gateway. This is useful when troubleshooting specific failures.


Common failure scenarios

GatewayErrorMeaningAction
EcoCashINSUFFICIENT_FUNDSParent's wallet balance is too lowAsk parent to top up and retry
PayNowINVALID_REFERENCEWrong invoice number enteredAsk parent to use the correct reference
Stripecard_declinedCard was declined by issuing bankParent should contact their bank
InnBucksWRONG_PINParent entered incorrect PINParent should retry with correct PIN
AnyDUPLICATE_TRANSACTIONSame payment attempted twiceCheck if a successful payment already exists
AnyTIMEOUTGateway did not respond in timeStatus should auto-update; check back in 10 minutes

Manually linking an unmatched attempt

If a successful gateway attempt is not linked to a student or invoice (because the parent used an unrecognisable reference), you can manually link it:

  1. Open the unmatched attempt
  2. Click Link to student / invoice
  3. Search for the correct student
  4. Select the invoice to apply the payment to
  5. Click Confirm link

The system will create a payment record and update the invoice balance.


Re-triggering a webhook

If a payment was confirmed by the gateway but the webhook was not received (e.g., a network issue at the time):

  1. Open the attempt
  2. Click ⋮ menu → Re-trigger webhook
  3. The gateway re-sends the confirmation
  4. The payment record is created if not already present
caution

Only use re-trigger if you are certain the gateway confirmed the payment. Triggering twice on a genuine success will attempt to create a duplicate payment — the system deduplicates by gateway reference, but verify the result.


Exporting attempt logs

  1. Apply your filters
  2. Click Export → CSV
  3. The export includes all visible columns plus the full gateway error message

Useful for:

  • Monthly reconciliation with gateway statements
  • Investigating a batch of failed payments reported by parents
  • Auditing gateway activity for a specific period