How WeGive’s Payrix integration actually reports transaction status
WeGive polls Payrix for each transaction’s status via the PayrixPHP SDK (app/Processors/Payrix.php,
confirmed 2026-10-01). There is no XML response/message pair — the two fields that matter are:
1. The numeric status field
A single-digit numeric status (not the three-digit codes described in the old version of this
article):
WeGive maps these onto its own transaction statuses roughly as follows:
- Settled, or Captured/Approved on a card transaction → WeGive marks the transaction Success.
- Failed, Returned, or Declined → WeGive marks the transaction Failed, and attempts to pull a human-readable error message (see below).
- Pending, or Captured/Approved on a non-card (ACH) transaction → WeGive leaves the transaction in its current (still-processing) status, since ACH settlement takes additional time.
- A refunded transaction (Payrix reports a non-zero
refundedamount) is marked Refunded regardless of the numeric status.
2. The txnResults result code
When a transaction fails, is returned, or is declined, WeGive makes a second API call
(getTransactionResults()) to Payrix’s txnResults resource, which returns:
code— a numeric result codemessage— a human-readable description (this is what WeGive stores as the transaction’s error message and what you’ll see in the dashboard)bankCode/originalCode— additional processor-level codes, not currently surfaced in the WeGive dashboard
message field directly as the transaction’s error text, so the error message
you see on a failed WeGive transaction is Payrix’s own wording — there’s no WeGive-side remapping
or translation layer to introduce discrepancies.
Where to look up what a specific code means
This article doesn’t attempt to reproduce Payrix’s fulltxnResults code catalog, since it isn’t
vendored into WeGive’s codebase and is subject to change on Payrix’s end. For the authoritative,
up-to-date list of txnResults codes and messages, see Payrix’s own API reference:
What to do with a failed transaction in WeGive
- Open the transaction in the dashboard and check the error message field — this is Payrix’s
txnResults.messageand is usually enough to understand the decline reason (card declined, insufficient funds, invalid account, etc.) without needing the full code reference. - If the message isn’t clear, or you need the specific numeric
code/bankCodefor an escalation to Payrix, contact WeGive Support — the full result object isn’t currently exposed in the dashboard UI. - For a donor-facing explanation of a card decline, general categories like “insufficient funds,” “card expired,” or “do not honor — contact your bank” are safe to communicate without needing the exact Payrix code.