Accounting files overview
UPC Accounting keeps the books of a member’s businesses and personal finances inside United Pet Club. It exchanges data with other software only through files: the member uploads a file your software produced, or downloads a file for your software to read. This section is the contract for those files, for accounting-software vendors, banks and bookkeepers who build tooling around them.
Files only: no live sync
Section titled “Files only: no live sync”There is no live connection in either direction:
- No bank feed and no open-banking API connection. A member downloads a statement or an open-banking JSON export from their bank, then uploads it.
- No QuickBooks, Xero or other accounting-software API connection. Data moves as the files those programs import and export.
- No partner API for the books. The routes the United Pet Club Dashboard uses to upload and download these files are private to it and are not part of the Partner API. Build against the file formats on these pages, not against those routes.
The families
Section titled “The families”| Family | Direction | Formats | Page |
|---|---|---|---|
| Bank statements | Import | OFX 1.x / 2.x, QFX, QBO, bank CSV, Excel, ISO 20022 camt.052 / 053 / 054, SWIFT MT940 / MT942, BAI2 | Bank statements |
| Open-banking exports | Import | FDX, UK Open Banking v3.1, Berlin Group NextGenPSD2, Australia CDR (JSON) | Open-banking exports |
| Other accounting software | Import | QuickBooks Online, QuickBooks Desktop IIF, Xero, Sage, Wave, FreshBooks, Zoho Books, any journal by column mapping | Accounting software imports |
| Statutory audit files | Import and export | France FEC, Germany DATEV Buchungsstapel, OECD SAF-T 2.00, Poland JPK_KR | Imports, Exports |
| UPC templates | Import and export | CSV per list, or one .xlsx workbook | UPC templates |
| Exports for other programs | Export | QuickBooks Online journal CSV, IIF, Xero manual journal CSV | Exports |
| Full-entity archive | Export | One .zip of CSV files | Exports |
| Payroll provider registers | Not available | Recognized, not imported in Preview | Payroll registers |
A statement goes into one bank, card or cash account of the books. Every other import goes through an import wizard where the member maps accounts and contacts, checks a dry run, then posts. Neither path asks your file to carry any United Pet Club identifier.
Rules every file follows
Section titled “Rules every file follows”Size limits
Section titled “Size limits”| Limit | Value |
|---|---|
| Bank statement or open-banking file | 10 MB and 50,000 statement lines |
| Accounting-software, statutory or template file | 25 MB |
| One import of entries | 5,000 entries and 25,000 lines; split a larger file by period |
| An opening trial balance | One opening entry of at most 500 lines |
| Rows read from any file | 250,000 |
| One field, cell, XML text node or SWIFT field | 32 KB |
| Columns in one row | 1,024 |
| An .xlsx workbook | 256 MB once unzipped and 1,024 parts; a part over 1 MB may not be compressed more than 250:1 |
| XML or JSON nesting | 64 levels |
| Export, one download | 100,000 journal lines (see Size of an export) |
A file over a limit is refused as a whole. Nothing from it is posted.
Text encodings
Section titled “Text encodings”A text file’s encoding is decided in this order:
- A byte-order mark (UTF-8, UTF-16 LE / BE, UTF-32).
- The encoding the format declares: OFX
CHARSET/ENCODING, the XML declaration. - Strict UTF-8, when every byte of the file is valid UTF-8 (plain ASCII counts).
- Otherwise Windows-1252.
ISO-8859-1 is used only when the file declares it. ISO-8859-15 (common in FEC files) reads correctly as Windows-1252 for every accented letter. Send UTF-8 whenever the format allows it.
XML safety
Section titled “XML safety”Every XML file (camt, OFX 2.x, SAF-T, JPK_KR, and the parts inside an .xlsx) is read with DTD processing off and
no external resolution. A file that declares a <!DOCTYPE …> is refused, whatever the DTD says. Do not emit a
DOCTYPE. The 1 KB entity cap and the size limits above apply too.
Numbers and dates
Section titled “Numbers and dates”Where the format does not fix them, amounts are read in any of these forms: 1,234.56, 1.234,56,
1 234,56 (also with a no-break or narrow no-break space), 1'234.56, (45.67), 45.67-, -$45.67,
CA$ 45.67, 45.67 CR / 45.67 DR, the Unicode minus, and exponent form. A column’s decimal mark is judged on all
of its values; a lone 1,234 is a thousands separator unless the column shows otherwise.
Dates are read as ISO (2026-09-30, with or without a time), yyyyMMdd, numeric dates with /, - or . in any
order, two-digit years (pivot 80), and month names in English, French and German. When nothing in a column settles
day-first against month-first (01/02/2026), a file with a decimal comma is read day-first and any other file
month-first, with a warning. Write ISO dates to avoid the guess.
Duplicate detection
Section titled “Duplicate detection”Re-sending overlapping data is safe:
- Bank lines are keyed by the bank’s own transaction id (OFX
FITID, camtAcctSvcrRef, open-bankingtransactionId, MT940 and BAI2 bank reference). Without one, the key is a hash of the date, the amount and the memo (else the counterparty), and repeats inside one statement are numbered in file order. Two identical purchases on one day both import; re-importing an overlapping statement imports only its new lines. - The same statement file (byte for byte) is refused the second time.
- Journal entries from other software are keyed by the program, journal, type, number and date of a numbered entry, or by the date and the net amount per account of an unnumbered one. An entry already imported is skipped.
Keep transaction ids and entry numbers stable across exports: a changed id makes the same transaction look new.
Currency and account matching
Section titled “Currency and account matching”- A statement’s currency must be the bank account’s currency. Lines in another currency are counted as skipped and never enter the balance.
- A file with several accounts imports the one whose last four characters match the bank account in the books; failing that, the only one in the account’s currency; otherwise it is refused with the accounts it holds.
- Account numbers are kept masked to their last four characters. Memo text is kept as written.
- A file from other software that states its books’ currency must state the UPC books’ currency. Foreign-currency lines keep their currency, amount and rate.
Exported text is formula-safe
Section titled “Exported text is formula-safe”Every CSV and IIF export prefixes a text value that starts with =, +, -, @, a tab or a carriage return with
an apostrophe ('), so a spreadsheet shows it as text instead of running it. Amounts and dates are never
prefixed. If your software reads the text back, strip one leading apostrophe from such values. See
Exports.
What the member sees
Section titled “What the member sees”UPC Accounting reads each file before anything is stored: the detected format and how sure the detection is, the period, balances, the first lines and any notes from the reader. A file the books cannot place can be read by choosing its format by hand or by mapping its columns. The wizard’s dry run lists every problem before a single entry posts, and an import of other software’s books can be undone as a whole.