Column Title | Cell Format | Required | Default if Left Blank |
|---|---|---|---|
First Name | Text | โ Required | โ |
Last Name | Text | โ Required | โ |
Amount | Digits only (e.g. 10000 or 100.30) | โ Required | Enter 0 if no amount |
Type | donation, ticket, or membership | โ Required | โ |
Valid email format | โ Not required | No email associated โ may create duplicate contact | |
Language | EN or FR | โ Not required | EN |
Date | dd/MM/yyyy (e.g. 03/03/2023) | โ Not required | โ |
Eligible Amount | Digits | โ Not required (unless generating tax receipts on tickets and memberships) | Full amount for donations |
Expiration Date | dd/mm/yyyy | โ Not required | 1 year from import date |
Region | Text | โ Not required | โ |
Payment Method | card, cash, cheque, transfer, unknown, free, manual, pad, ach, applePayOrGooglePay, inKind, stocks, other, TaptoPay | โ Not required | โ |
Receipt URL | Valid URL | โ Not required | โ |
Ticket URL | Valid URL | โ Not required | โ |
Receipt Number | Text and/or numbers | โ Not required | โ |
Company Name | Text and/or numbers | โ Not required | โ |
Note | Any text | โ Not required | โ |
Annotation | Any text | โ Not required | โ |
Phone | Phone number | โ Not required | โ |
Lists | Contact lists | โ Not required | โ |
Subscription Status | Subscription status | โ Not required | โ |
Address | Text and/or numbers | โ Not required | โ |
City | Text | โ Not required | โ |
Postal Code | Text and/or numbers | โ Not required | โ |
Country | Valid 2 or 3 letter country code (e.g. CA, US, FR) | โ Not required | โ |
FormTitle | Text and/or numbers | โ Not required | โ |
RateTitle | Text and/or numbers | โ Required if type is ticket or membership | โ |
Importing historical payments into Zeffy
Use a payment import to bring historical transaction data into Zeffy. After the import, your payments appear in the Payments section, and each payment is automatically linked to a contact record by matching the exact email address.
Imported payments create or update contact records. If a contact already exists with the exact same email, the payment is linked to that contact and no duplicate is created. For this to work, the email must match the existing contact exactly.
Prepare your import file
Zeffy provides a template that must be used exactly as provided. Do not change column titles, column order, or add custom columns.
Download the template
In your Zeffy dashboard, go to Payments.
Click New Payment, then Import.
Download the template from the import setup screen.
Formatting rules
These fields are required. If any mandatory field is blank, that row cannot be imported.
First Name: Text.
Last Name: Text.
Amount: Digits only. For example, enter 10,000.00 as
10000. Use a period for decimals:100.30. If no amount exists, enter0.Type: Must be lowercase:
donation,ticket, ormembershipNote that when the type is
membership, the payment will be handled as a membership and Zeffy will automatically generate a membership card or e-ticket as a PDF for the payment.
FormTitle: The reference name for the import. To attach payments to an existing active campaign, enter the exact campaign name here. See the section for matching rules.
RateTitle: Required only when the type is
ticketormembership. Enter the ticket rate name (for example, "Single Ticket Virtual Gala 2020" or "Annual Membership"
The following fields fields are optional but commonly used:
Email: Valid email format. If a contact is imported without an email and later makes a payment using one, they will have two separate contact pages.
Language:
ENorFR. Defaults toENif left blank.Date: Format as
dd/mm/yyyywith all zeros. For example, 3 March 2023 must be03/03/2023.Eligible Amount: The amount eligible for tax receipt purposes. Required if you plan to generate tax receipts for tickets or memberships. For donations, the full amount is used by default.
Expiration Date (if Type =
membership): Membership renewal date, formatted asdd/mm/yyyy. If left blank, it defaults to 1 year from the import date.Payment Method:
card,cash,cheque,transfer,unknown,free,manual,pad,ach,applePayOrGooglePay,inKind,stocks,other, orTaptoPay.Form Title: The reference name for the import. To attach payments to an existing active campaign, enter the exact campaign name here. See the next section for matching rules.
Receipt URL: Valid URL to an existing receipt.
Ticket URL: Valid URL to an existing e-ticket.
Receipt Number: Text and/or numbers.
Company Name: Text and/or numbers. Used to generate receipts under a company name rather than an individual.
Note: Any text. Shows on the contact page.
Annotation: Any text. Shows only in the payment details.
Phone: A phone number.
Lists: Contact lists to associate with the imported contact.
Subscription Status: The subscription status for the imported contact.
Address, City, Region, Postal Code, Country: Address fields. Country must be a valid two- or three-letter country code (for example,
CA,US,FR).
The maximum number of payments per import file is 10,000. If you have more, split them into separate files.
Verify your data before importing
Review these points before you upload your file to avoid issues that cannot be fixed later.
Once your transactions have been imported, you will no longer be able to modify them. You cannot change the amount, date, or payment method of an imported transaction, and you cannot delete individual imported payments without undoing the entire import. Make sure your information is correct before you proceed.
The email address is the main identifier of a contact. If a payment is imported with an email address already associated with an existing contact, the payment will be linked to that contact. If the email does not match, a new contact will be created. For this to work, the email must match exactly.
It is not possible to add columns to the template. Custom columns will not be imported.
If you have additional information on donors, such as a second phone number, date of birth, or spouse's name, you can include it in a note or annotation.
Full field reference table
Choose where imported payments go
When you import payments, Zeffy uses the FormTitle column to decide where the payments live.
Import into an existing active campaign
To attach imported payments to an active campaign, enter the campaign's exact name in the Form Title column. The name must match exactly, including capitalization, spacing, and punctuation. If the names do not match, Zeffy will create a new archived form instead.
Tip: Copy the campaign name directly from your Zeffy dashboard to avoid typos.
Important: When importing payments, the type must match the type of campaign you're importing into.
If you're importing payments into a donation campaign, the type must be Donation.
If you're importing payments into a membership page, the type must be Membership.
If you're importing payments into an event page, the type must be Ticket.
Even if the campaign name matches exactly, the import will fail if the type is incorrect.
For example, if your import file uses the campaign name "Donate to Make a Difference" but the campaign is an event page and the imported payments are marked as Donations, Zeffy will not be able to match the payments to the campaign.
If you're importing memberships or tickets, make sure the Rate Title also matches exactly the membership level or ticket type name in Zeffy.
Import into a new archived form
If the Form Title does not match an active campaign, Zeffy automatically creates a new archived form in the Past section of your campaigns. These forms organize your historical data and cannot accept new payments through public links, but you can still filter and report on them.
Each separate import creates its own form, even if you reuse the same form name. For example, two imports both named "Donations 2025" will create two separate archived forms. This helps you track when different batches were imported. To avoid duplicates, match an active campaign name exactly.
Other ways to add payments to an active campaign
Besides imports, you can add individual payments to an active campaign using manual payment entries.
Import your file
Go to Payments and click New Payment, then Import.
Review the key points on the setup screen and download the template if you have not already, then click Next.
On the Select a file to import screen, drag and drop your file or click Select a file. Supported formats: XLSX, XLS, CSV.
Click Next.
On the Map Fields screen, match your source columns to the destination fields. A data preview helps you verify the mapping.
Select your import options:
Generate tax receipts: Choose whether to automatically generate tax receipts. For tickets and memberships, make sure the Eligible Amount column is filled in your file.
Send thank you emails: Available only for imports with fewer than 1,000 rows. If enabled, each donor with an email and eligible amount receives a thank you email that includes the receipt link and any applicable e-tickets or membership cards.
Proceed through the remaining steps and confirm. Your file will be analyzed and then processed.
If your file is correctly formatted, the import is processed directly and your payments appear in Payments within a few minutes.
What happens after import
After a successful import:
Payments appear in the Payments section alongside your regular transactions.
Contacts are created automatically or linked to existing contacts by exact email match.
Tax receipts, e-tickets, and membership cards are generated automatically based on your import options and payment type.
All PDFs are accessible from the payment drawer by clicking on an individual payment.
Imported payments cannot be edited afterward. You cannot change the amount, date, or payment method of an imported transaction.
Fix import errors
If your file contains formatting errors, a popup indicates how many rows have issues. Click See ___ issues to review them in a workbook, with incorrect cells highlighted in red. You can also choose Import without ___ contacts to import only the valid rows.
Common errors:
At least one identifier: You must provide an email, first name, or last name. These cannot all be blank.
Invalid country: Use a valid two- or three-letter country code (for example,
CA,US,FR).Invalid type: Use only
donation,ticket, ormembershipin lowercase.Invalid email: The field must be a valid email address.
Invalid language: Use only
ENorFR.Invalid date: Format as
dd/mm/yyyywith all zeros.Invalid payment method: Use one of the listed payment method values, entered exactly as shown.
Too many rows: Your file exceeds the 10,000 row limit. Split it into smaller files.
Delete or undo an import
Delete Individual Payments
You can delete imported payments one at a time:
Go to Payments.
Click on the payment row (avoid clicking the donor name, which opens the contact page).
Click Actions in the top right of the payment drawer.
Click Delete.
For payments that have an e-ticket or membership card associated, deleting the payment automatically cancels the ticket or card.
Undoing an Entire Import
To undo an entire contact import, see How to delete or undo a data import.
Other things to note:
Recurring donors and members cannot be imported in a way that allows their recurring payments or memberships to continue renewing automatically through Zeffy.
For historical recurring supporter data, use the payment import template. To learn how to import members and generate membership cards, see Importing members and creating membership cards. To learn how to import historical recurring donation records, see Importing recurring payments and donations.