Skip to main content
This article previously described the wrong API. The prior version of this page documented Worldpay’s legacy Litle & Co / Vantiv eCommerce gateway (XML <response>/<message> elements, cnpTxnId, three-digit response codes like 000/350/555, SEPA Direct Debit, PayPal/PayPal Credit, Account Updater, lodging/hotel MCC rules). None of that applies to WeGive. WeGive’s actual “Worldpay” integration is the Payrix processor (Worldpay acquired Payrix, and Payrix’s own API docs now live under docs.worldpay.com), which uses a completely different transaction model — a single-digit numeric status plus a separate result-code lookup, not XML response codes. If you were looking up a three-digit code like the ones in the old version of this page for an actual WeGive transaction, that code cannot occur in WeGive’s system — it belongs to a gateway WeGive doesn’t use.

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 refunded amount) 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 code
  • message — 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
WeGive stores the 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 full txnResults 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

  1. Open the transaction in the dashboard and check the error message field — this is Payrix’s txnResults.message and is usually enough to understand the decline reason (card declined, insufficient funds, invalid account, etc.) without needing the full code reference.
  2. If the message isn’t clear, or you need the specific numeric code/bankCode for an escalation to Payrix, contact WeGive Support — the full result object isn’t currently exposed in the dashboard UI.
  3. 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.