Overview
The Import Wizard can change payments that are already in WeGive. You do this
with the Update action on the Donations and Payments object type. Update
never creates new payments. Each row in your file is matched to one existing
payment, and the values you mapped are written onto it.
Typical uses:
- Store a reference number from another system (a CRM record ID, a bank
deposit number, a batch label) on a group of payments.
- Fill in a Static custom field on a payment, such as a grant cycle or an
accounting code.
- Mark a specific list of payments with one shared value so you can find them
again with a filter.
If you want to update supporters instead of payments, see
Importing Existing Supporters.
Before you start
- Create the custom field first, if you plan to use one. In
Settings > Custom Fields, create a field on the Transaction object with
the type Static. Only Static fields appear in the import mapping list.
Computed fields are calculated by WeGive and cannot be written by an import.
See Custom Fields.
- Build a CSV with one row per payment you want to change. Include a column
that identifies the payment (see “Choosing the identifier”) and a column for
each value you want to write.
- Save the file as UTF-8 CSV.
Steps
- Go to Data > Imports and click + to start a new import.
- Choose the Update action and the Donations and Payments object type.
- Upload your CSV.
- On the mapping screen, map the identifier column to its matching WeGive
property (for example WeGive ID).
- Map the column holding your new value to one of these:
- your Static custom field, which appears in the property list under the
custom field’s name, or
- Custom ID, a free-text field on every payment.
- In Primary Identifier, pick the identifier you mapped in step 4. It must be
one of the fields you mapped.
- Review and run the import. Download the results file afterward to see which
rows succeeded and the error on any row that did not.
Choosing the identifier
For payments, the Primary Identifier can be any one of:
- WeGive ID (the payment’s own WeGive ID)
- Salesforce ID
- NPC ID
- Virtuous ID
- HubSpot ID
- PlanningCenter ID
- Custom ID
Update matches on only the identifier you pick. Every row in the file must have
a value in that column. A row with an empty identifier fails, and a row whose
identifier matches no payment fails with “Transaction does not exist”. If an
identifier matches more than one payment, that row fails rather than guessing.
Writing the value
- Static custom field. The text in the mapped column is saved to the field
on the matched payment.
- Custom ID. The text is saved as the payment’s Custom ID. You can later
filter the Payments table by Custom Import Reference to find every payment
carrying that value, then act on the whole set (for example, archive them).
If you give many payments the same Custom ID value, do not choose Custom ID as
the Primary Identifier in that import. Use WeGive ID (or another unique ID)
to match the payments and Custom ID only as the value being written.
Blank cells are ignored. An empty cell never erases a value already stored in
WeGive.
What an Update cannot change
- Some payment fields are protected and silently skipped, including the
payment processor, payout, platform fee, refunded amount, and the
organization the payment belongs to.
- For payments that were actually processed through a payment processor,
Amount, Fee amount, Status, and As Guest are also skipped. Those
fields can only be changed on imported or manually recorded payments.
- The payment’s donor cannot be changed with Update. The donor lookup columns
are only offered for the Create action. To move a payment to another
supporter, see
How to Move a Transaction to Another Supporter.
Storing an ID from another system
The mapping list for payments includes ID columns for a fixed set of systems:
Neon, Salesforce, NPC, PlanningCenter, Virtuous, HubSpot, Bloomerang, Raiser’s
Edge, DonorPerfect, and Little Green Light. There is no dedicated column for a
DonorDirect ID. If you need to keep a payment ID from DonorDirect or any other
system that is not on that list, create a Static custom field on the Transaction
object (for example, “DonorDirect payment ID”) and map your ID column to it, or
use Custom ID.
Tips
- Test with a small file first. Update 5 to 10 payments and check them
before running the full list.
- Keep the results file. It shows the outcome of each row, which is the
quickest way to find mismatched identifiers.
- Use a Custom ID value you can recognize, such as a short batch label, so
your filter is easy to build later.
Last modified on October 30, 2026