Skip to content

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.

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.
FamilyDirectionFormatsPage
Bank statementsImportOFX 1.x / 2.x, QFX, QBO, bank CSV, Excel, ISO 20022 camt.052 / 053 / 054, SWIFT MT940 / MT942, BAI2Bank statements
Open-banking exportsImportFDX, UK Open Banking v3.1, Berlin Group NextGenPSD2, Australia CDR (JSON)Open-banking exports
Other accounting softwareImportQuickBooks Online, QuickBooks Desktop IIF, Xero, Sage, Wave, FreshBooks, Zoho Books, any journal by column mappingAccounting software imports
Statutory audit filesImport and exportFrance FEC, Germany DATEV Buchungsstapel, OECD SAF-T 2.00, Poland JPK_KRImports, Exports
UPC templatesImport and exportCSV per list, or one .xlsx workbookUPC templates
Exports for other programsExportQuickBooks Online journal CSV, IIF, Xero manual journal CSVExports
Full-entity archiveExportOne .zip of CSV filesExports
Payroll provider registersNot availableRecognized, not imported in PreviewPayroll 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.

LimitValue
Bank statement or open-banking file10 MB and 50,000 statement lines
Accounting-software, statutory or template file25 MB
One import of entries5,000 entries and 25,000 lines; split a larger file by period
An opening trial balanceOne opening entry of at most 500 lines
Rows read from any file250,000
One field, cell, XML text node or SWIFT field32 KB
Columns in one row1,024
An .xlsx workbook256 MB once unzipped and 1,024 parts; a part over 1 MB may not be compressed more than 250:1
XML or JSON nesting64 levels
Export, one download100,000 journal lines (see Size of an export)

A file over a limit is refused as a whole. Nothing from it is posted.

A text file’s encoding is decided in this order:

  1. A byte-order mark (UTF-8, UTF-16 LE / BE, UTF-32).
  2. The encoding the format declares: OFX CHARSET / ENCODING, the XML declaration.
  3. Strict UTF-8, when every byte of the file is valid UTF-8 (plain ASCII counts).
  4. 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.

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.

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.

Re-sending overlapping data is safe:

  • Bank lines are keyed by the bank’s own transaction id (OFX FITID, camt AcctSvcrRef, open-banking transactionId, 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.

  • 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.

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.

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.