Supported bank and CSV file formats¶
In short: ActiveDonor reads a file only if its layout matches one of the built-in CSV formats below (the banks, payment processors and the Generic layout). You pick the matching format as the CSV File Type on a receipt method, then choose that method at upload time. If your bank isn't listed, use the Generic four-column layout or try SmartDetect.
Overview¶
ActiveDonor's CSV Receipt Uploader reads a downloaded bank statement or payment-processor export and turns each credit (incoming) transaction into a receipt. The uploader can only read a file if its layout matches one of the built-in formats. Each format is a fixed rule that knows exactly which column holds the date, the amount, the reference and the description for that specific bank or provider. You choose the matching format when you set up a CSV receipt method (see Setting up CSV receipt upload (the CSV receipt method) — attach a CSV File Type to an active receipt method), then select that receipt method at upload time.
This article lists every format the system supports and explains the Generic column layout you can use when your bank or provider is not in the list.
How formats work (in plain terms)¶
When you upload a file, ActiveDonor runs it through the rule attached to the receipt method you selected. The rule:
- Skips the heading and summary rows at the top of the statement.
- Reads only the columns that the format expects, in the exact positions that bank produces.
- Keeps only positive (credit) amounts — money coming in. Negative amounts (debits / money going out) are counted as "Debit Transactions" and excluded.
- Ignores running-balance / "carried forward" / "brought forward" summary rows.
Because each rule reads fixed column positions, the file you upload must come from the same bank/provider (and the same export type) as the format you selected. Uploading an FNB file against the Nedbank format, or a savings-account export against a business-account format, will read the wrong columns and either fail or produce wrong amounts.
Supported formats¶
The following formats are built into ActiveDonor. The left column is the bank/provider; the right column notes the export type or anything worth knowing. The exact wording shown in the CSV File Type dropdown (in Settings) is set per system, but each entry below corresponds to one built-in rule.
Banks¶
| Bank format | Notes |
|---|---|
| ABSA | Standard ABSA statement export. |
| Albaraka | Albaraka Bank statement export. |
| Capitec | Capitec statement; data rows must start with the account number. |
| FNB Business | FNB business-account export. |
| FNB Business Cheque | FNB business cheque-account export. |
| FNB Cheque | FNB cheque-account export. |
| HBZ | HBZ Bank (Habib Bank AG Zurich) export. |
| Investec | Investec statement export. |
| Nedbank | Nedbank export; "CARRIED FORWARD" / "BROUGHT FORWARD" summary rows are ignored automatically. |
| Standard Bank Savings | Standard Bank savings-account export. |
| Standard Bank Cheque | Standard Bank cheque-account / business online banking export. |
| Standard Bank Business Online | Standard Bank Business Online export (handles both the 7-column and 8-column variants). |
Payment processors and accounting systems¶
| Provider format | Notes |
|---|---|
| Xero | Account Transactions export from Xero. Amounts in brackets are treated as negative. See Exporting from Xero for CSV upload. |
| Sage | Sage export; only rows marked "Account Receipt" are imported. |
| PayFast | PayFast export; only rows marked "Credit" are imported. The reference column holds the donor's email, and a project/campaign column is read if present. |
| Paysoft (Paysoft Impact) | Paysoft Impact export; only rows marked "Processed" are imported. |
| Paystack | Paystack export; only rows marked "success" are imported. The reference is the donor's email and the Form Title is used as the description and project. |
| iKhokha | iKhokha export; only "PAID" "Card Purchase" rows are imported. |
Generic / universal¶
| Format | Notes |
|---|---|
| Generic | A simple four-column (optionally five-column) layout you build yourself. Use this when your bank or provider is not listed above. See the column specification below. |
| SmartDetect (Automatic / AI) | Not a fixed format. An optional, experimental feature that uses AI to detect the columns of any file automatically. Enabled with the ⚡ SmartDetect checkbox at upload time rather than chosen as a CSV File Type. See Uploading receipts via CSV. |
💡 Tip: If your bank is not listed and the Generic layout does not fit your file, you can try the ⚡ SmartDetect option at upload time, which attempts to detect the columns automatically. SmartDetect is experimental — always review the detected transactions before issuing receipts.
The Generic CSV column specification¶
The Generic format expects your data in this exact column order. The first row is treated as a heading row and skipped — put your column titles there, and your transaction data from the second row onward.
| Column (left to right) | Contents | Required? |
|---|---|---|
| 1st column | Transaction date | Yes |
| 2nd column | Description (free text) | Yes (can be blank) |
| 3rd column | Reference — used to match the donor (see below) | Yes (can be blank) |
| 4th column | Amount (the credit / donation amount) | Yes |
| 5th column | Project name (optional) | No |
Notes on the Generic format:
- Date may be in
dd/mm/yyyyform, a standard date string, or an Excel date serial number (if you upload an.xlsxfile). - Amount should be a plain number. Commas used as thousands separators are removed automatically (for example
1,250.00becomes1250.00). Only positive amounts are imported. - Reference (3rd column) is how ActiveDonor finds the matching donor automatically. It will match on an email address, a South African cellphone number (10 digits starting with 0), a donor reference, or a previously-used payment reference. If it cannot match, you select the donor by hand before saving.
- Project (5th column) is optional. If you put a project name there and it matches an existing project, that receipt is allocated to it; otherwise the default project you chose at upload time is used.
Example Generic file (the first row is a heading and is skipped):
Date,Description,Reference,Amount,Project
2025/05/01,Monthly gift,[email protected],500.00,General Fund
2025/05/03,EFT donation,0821234567,1,250.00,Education
What about Excel files?¶
You can upload .xlsx and .xls files as well as .csv and .txt files. The same format rules apply — the columns must be in the position the selected format expects.
What this does not do¶
- A format does not import debit (money-out) rows — only positive credit amounts become receipts.
- A format does not auto-detect which bank a file is from. You tell ActiveDonor by choosing the matching CSV File Type on the receipt method. The only auto-detection is the optional ⚡ SmartDetect feature.
Common issues & solutions¶
| What you see | What it means | How to fix it |
|---|---|---|
| "Error: … Please check your CSV file type and receipt method then try again." | No transactions could be read — the file's layout doesn't match the selected CSV File Type, or every row fell outside the date range the uploader reads. | Confirm you selected the receipt method whose CSV File Type matches the bank/provider that produced the file, and that the file contains credit (incoming) transactions. See Fixing CSV upload errors. |
| All my deposits show as Debit Transactions / Excluded. | The amounts are being read as negative — usually because the file is from a different bank/export type than the format you chose. | Pick the correct format, or use the Generic layout. |
| The amounts or dates are wrong. | The file is being read with the wrong format and the columns are mismatched. | Re-check the bank/export type against the format selected. |
FAQ¶
Which banks does ActiveDonor support for CSV upload? ABSA, Albaraka, Capitec, FNB (Business, Business Cheque and Cheque), HBZ, Investec, Nedbank, and Standard Bank (Savings, Cheque, and Business Online). Plus Xero, Sage, PayFast, Paysoft, Paystack and iKhokha, and a build-it-yourself Generic layout.
My bank isn't on the list — what do I do? Rearrange your data into the Generic four-column layout (Date, Description, Reference, Amount, with an optional 5th Project column) and choose the Generic format, or try ⚡ SmartDetect at upload time.
Which columns does the Generic format need? In order: Date, Description, Reference, Amount, and an optional Project as a 5th column. The first row is treated as a heading and skipped.
Can I upload an Excel file instead of a CSV?
Yes — .xlsx and .xls work as well as .csv and .txt. The columns must still be in the positions the chosen format expects.
Why are some of my transactions missing after the upload? The uploader only keeps positive (credit) amounts and ignores balance/summary rows. Some provider formats also import only certain rows — for example PayFast imports only "Credit" rows, Paystack only "success" rows, Paysoft only "Processed" rows, and iKhokha only "PAID" "Card Purchase" rows.
Related¶
- Setting up CSV receipt upload (the CSV receipt method)
- Uploading receipts via CSV
- Exporting from Xero for CSV upload
- Reviewing CSV upload history
- Fixing CSV upload errors
- Receipt methods (what they are and managing them)