Exports
A member with export access can take their books out of UPC Accounting at any time, in another program’s import format, as a statutory audit file, as the UPC templates, or as one archive with everything. Exports keep working when the books are read-only or closed. This page is the contract for what those files contain, so your software can read them.
General rules
Section titled “General rules”| Rule | Detail |
|---|---|
| Period | From and to dates. Empty: the fiscal year to date; the archive then runs from the first entry. |
| Year-end closing entries | Statutory files (FEC, DATEV, SAF-T, JPK_KR) and the archive include them; QuickBooks, Xero and the templates leave them out, because those programs close their own years. The member can override either way. |
| Entry number | The books’ own entry number; a duplicate is suffixed -2, -3… |
| Reference | The source document’s own reference, else the entry number |
| Party codes | P- and 8 hexadecimal characters, stable for a party across exports (no personal data in the code) |
| Location codes | L- and 8 hexadecimal characters, stable for a location |
| Employees | Named only when the member exporting has payroll access; otherwise their lines keep the amounts with no name |
| Formula safety | Text that starts with =, +, -, @, a tab or a carriage return gets a leading apostrophe ('); amounts and dates never do. Unquoted formats (IIF, FEC) also turn tabs, line breaks, the separator and " into spaces or apostrophes. |
| File name | ASCII letters, digits, ., - and _ only: {business}-{format}-{from}-{to}.{ext} with yyyyMMdd dates (an archive from the first entry carries only the end date). FEC and DATEV have their own, below. |
Journal codes in the statutory files and the Journal template name where an entry came from:
| Code | Journal |
|---|---|
SALES | Sales |
BANK | Bank and payments |
GJ | General journal |
IMPORT | Imported entries |
MIGR | Migrated history |
DON | Donations |
TAX | Tax |
FEES | Fees and dues |
OPEN | Opening balances |
CLOSE | Year-end close |
FXREV | Foreign exchange revaluation |
Size of an export
Section titled “Size of an export”One download carries at most 100,000 journal lines. A larger export, up to 1,000,000 lines, is prepared in the background and kept for the member to download for 24 hours; a member has at most three waiting at a time. Above 1,000,000 lines the export is refused: choose a shorter period.
For QuickBooks Online, keep each file small anyway: QuickBooks limits its own journal import to under 1,000 rows per file, so export one period at a time.
QuickBooks Online journal CSV
Section titled “QuickBooks Online journal CSV”QuickBooks Online’s journal-entry import layout. UTF-8, comma-separated, CRLF line ends, RFC 4180 quoting.
| Column | Value |
|---|---|
| Journal No | The entry number; rows sharing it form one journal entry |
| Journal Date | MM/dd/yyyy (default) or dd/MM/yyyy, as the member chooses |
| Account Name | The account’s name (QuickBooks imports accounts by name; turn account numbers off during the import) |
| Debits, Credits | Amounts with two decimals; the other column is empty |
| Description | The line memo, else the entry memo |
| Name | The customer, supplier or employee |
| Location, Class | The line’s location and class |
| Currency Code, Exchange Rate | Only when some line is in a foreign currency |
A foreign-currency entry is written in its own currency with its rate; one entry holds one currency, and an entry that mixes currencies is refused.
Journal No,Journal Date,Account Name,Debits,Credits,Description,Name,Location,Class1042,09/03/2026,Grooming supplies,45.67,,Dog treats,Kibble Wholesale,Downtown,Grooming1042,09/03/2026,Chequing,,45.67,Invoice 1042,Kibble Wholesale,Downtown,GroomingQuickBooks Desktop IIF
Section titled “QuickBooks Desktop IIF”Windows-1252, tab-separated, CRLF, never quoted. Lists first, then the journal:
| Block | Columns |
|---|---|
!ACCNT | NAME, ACCNTTYPE, DESC, ACCNUM. The type is the account’s original QuickBooks type when it came from QuickBooks, else OCASSET, OCLIAB, EQUITY, INC or EXP by class. An account of unknown class is not listed: QuickBooks matches it to an existing account by name. |
!CUST | NAME, BADDR1-5, PHONE1, EMAIL, COMPANYNAME, FIRSTNAME, LASTNAME, NOTE |
!VEND | NAME, ADDR1-5, PHONE1, EMAIL, TAXID, COMPANYNAME, FIRSTNAME, LASTNAME, NOTE |
!EMP | NAME, ADDR1, ADDR2, CITY, STATE, ZIP, PHONE1, FIRSTNAME, LASTNAME |
!TRNS / !SPL / !ENDTRNS | TRNSID, TRNSTYPE (GENERAL JOURNAL), DATE, ACCNT, NAME, CLASS, AMOUNT (positive debit, negative credit), DOCNUM, MEMO. The first line of an entry is TRNS, the rest SPL. |
Dates are MM/dd/yyyy by default (dd/MM/yyyy on request).
!TRNS TRNSID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO!SPL SPLID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO!ENDTRNSTRNS GENERAL JOURNAL 09/03/2026 Grooming supplies Kibble Wholesale Grooming 45.67 1042 Dog treatsSPL GENERAL JOURNAL 09/03/2026 Chequing Kibble Wholesale Grooming -45.67 1042 Invoice 1042ENDTRNSXero manual journal CSV
Section titled “Xero manual journal CSV”Xero’s manual-journal import layout. UTF-8, comma-separated, CRLF.
| Column | Value |
|---|---|
| *Narration | The entry memo, else its number; made unique within a date (Xero groups rows by narration and date) |
| *Date | dd/MM/yyyy (default) or MM/dd/yyyy |
| Description | The line memo |
| *AccountCode | The account code (Xero imports journals by code; a line without one is refused) |
| *TaxRate | The line’s tax code, else a default the member names (Tax Exempt unless changed) |
| *Amount | Positive debit, negative credit |
| TrackingName1, TrackingOption1 | Class and the line’s class |
| TrackingName2, TrackingOption2 | Location and the line’s location |
The tracking categories Class and Location must exist in the Xero organisation for the import to keep them.
France: FEC
Section titled “France: FEC”The Fichier des Écritures Comptables: the 18 columns in the order of art. A47 A-1 (see the import page for the list).
| Rule | Value |
|---|---|
| Encoding | ISO-8859-15 |
| Separator | Tab (default) or | |
| Line ends | CRLF |
| Dates | yyyyMMdd |
| Amounts | Decimal comma, two decimals, no grouping |
| Order | By validation date, then entry date |
| File name | {SIREN}FEC{yyyyMMdd}.txt (the period’s end date) when the member gives the 9-digit SIREN; otherwise the general file name |
- Every line needs an account number (
CompteNum); an entry that does not balance is refused. - A party known only by name gets an auxiliary account number made from its name (
CompAuxNum). - Lettering is written only when the lines carry it; none is invented.
Montantdevise/Ideviseare filled for foreign-currency lines.
Germany: DATEV Buchungsstapel
Section titled “Germany: DATEV Buchungsstapel”DATEV format EXTF 700, category 21, format version 13: the header line, the 125 column names, then one row per
debit / credit pair. Windows-1252, ;-separated, CRLF, text quoted, decimal comma. File name
EXTF_Buchungsstapel_{from}_{to}.csv.
| Parameter | Rule |
|---|---|
| Consultant number (Beraternummer) | Required, 1001 to 9999999 |
| Client number (Mandantennummer) | Required, 1 to 99999 |
| Account length (Sachkontenlänge) | 4 to 8; by default the longest account code, kept within 4 to 8 |
| Chart | SKR03 (default) or SKR04 |
| Period | One fiscal year that has entries; export each year on its own |
- Accounts must be numbers of up to 9 digits. Map the chart to SKR03 / SKR04 first; a non-numeric account refuses the export.
- Each entry is cut into Konto / Gegenkonto pairs. The BU-Schlüssel (tax key) always applies to the Gegenkonto, so a
pair whose taxed line is the debit is written
Hwith Konto the credit account. - Belegdatum is
TTMM. Belegfeld 1 is the reference cut to 36 characters, with any character other than letters, digits and$ & % * + - /replaced by-. Buchungstext is cut to 60 characters. - KOST1 carries the class and KOST2 the location (36 characters each).
- A foreign-currency pair carries Umsatz in its currency, Basis-Umsatz in the books’ currency, and Kurs as foreign units per book unit (six decimals).
- The batch is written unlocked (Festschreibung
0), originUP, with the business name as its description.
"EXTF";700;21;"Buchungsstapel";13;20261019120000000;;"UP";"United Pet Club";"";1001;10001;20260101;4;20260101;20261231;"Maple Grooming GmbH";"";1;0;0;"EUR";;"";;;"03";;;"";""Umsatz (ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;WKZ Umsatz;Kurs;Basis-Umsatz;WKZ Basis-Umsatz;Konto;Gegenkonto (ohne BU-Schlüssel);BU-Schlüssel;Belegdatum;Belegfeld 1;Belegfeld 2;Skonto;Buchungstext;…45,67;"S";"EUR";;;;"3200";"1200";"";"0309";"INV-1042";"";;"Invoice 1042";…The rows are shortened with … here; a real file carries all 125 columns.
OECD SAF-T 2.00
Section titled “OECD SAF-T 2.00”XML, UTF-8, namespace urn:OECD:StandardAuditFile-Taxation/2.00, elements in the schema’s sequence.
| Part | Content |
|---|---|
Header | AuditFileVersion 2.00, the company (name, tax registration number the member gives, country of the business), the default currency, the selection criteria (the period), TaxAccountingBasis A, SoftwareCompanyName “United Pet Club” |
MasterFiles | GeneralLedgerAccounts with opening and closing balances; Customers and Suppliers |
GeneralLedgerEntries | Journals by journal code with their transactions and lines, control totals, and Analysis typed CLASS / LOCATION |
Not written: the customers’ and suppliers’ control AccountID, TaxTable, SourceDocuments, and national
extensions (Norway’s standard tax codes and the like).
Poland: JPK_KR
Section titled “Poland: JPK_KR”JPK_KR (1), schema 1-0 (http://jpk.mf.gov.pl/wzor/2016/03/09/03091/), XML, UTF-8: Naglowek, Podmiot1,
ZOiS (one per account: opening balance, period and cumulative turnovers, closing balance), Dziennik (one per
entry), DziennikCtrl, KontoZapis (each entry cut into debit / credit pairs) and Ctrl.
| Parameter | Rule |
|---|---|
| NIP | Required (10 digits) |
| Tax office code (kod urzędu skarbowego) | Required (4 digits) |
- The account group (
KodZespolu) is the first digit of the account number andKodKategoriiits first two, as in the Polish chart. - Cumulative turnovers equal the period’s: export from the start of the fiscal year.
- JPK_KR_PD (the 2025 structure) is not written.
UPC templates
Section titled “UPC templates”Each template is one CSV (UTF-8 with a byte-order mark, comma-separated, CRLF,
RFC 4180 quoting, ISO dates, . decimals), or all of them as one .xlsx workbook with a sheet per template
(only templates with rows, and always the Journal sheet). The workbook stores text as text and never writes a
formula.
| Export | Holds |
|---|---|
| Chart of accounts | The Accounts template |
| Customers, suppliers and employees | The Parties template |
| Products and services | The Items template |
| Journal lines | The Journal template: the most general export of the entries |
| Trial balance | The TrialBalance template, at the start of the period (the balances brought forward) |
| Open invoices and bills | The OpenItems template |
Use the Journal template to move entries into Sage, Wave, FreshBooks or Zoho Books: UPC Accounting has no export in their own journal layouts yet.
Full-entity archive
Section titled “Full-entity archive”One .zip of CSV files: UTF-8 with a byte-order mark, comma-separated, CRLF, RFC 4180 quoting, dates
yyyy-MM-dd, timestamps yyyy-MM-ddTHH:mm:ssZ (UTC), amounts with a ., booleans TRUE / FALSE, ids as
GUIDs. Free text goes through the formula guard.
| File | Columns |
|---|---|
accounts.csv | Code, Name, Kind, Concept, Active |
parties.csv | PartyId, Kind, Name, Email, ProfileId, Active |
entries.csv | EntryId, EntryNo, EntryDate, Kind, Source, SourceEventId, Description, Currency, Total, PostedAtUtc, ImportBatchId, SourceDocumentId, DocumentRef |
lines.csv | EntryId, LineNo, AccountCode, AccountName, Direction (DEBIT / CREDIT), Amount (books’ currency), Memo, PartyId, PartyName, LocationProfileId, Class, TxnCurrency, TxnAmount, ExchangeRate |
documents.csv | DocumentId, DocumentNo, Kind, Status, PartyId, PartyName, ExternalRef, Currency, Total, DocumentAtUtc, DueAtUtc, Description, Notes, HasAttachment, PostedEntryId, VoidEntryId, VoidReason, CreatedAtUtc |
trial-balance.csv | AccountCode, AccountName, Kind, Debit, Credit, Balance, at the end of the period (accounts with movement only) |
manifest.json | Format name and version (1), business and legal name, functional currency, period, generation time, whether employees and attachments are included, each file with its row count, the disclaimer |
README.txt | A plain-text guide to the files |
- Attachments, PDF reports and member files are never inside.
documents.csvsays only whether a document has an attachment. - Without payroll access, employee parties are left out and their lines keep no party.
- Join
lines.csvtoentries.csvonEntryId, andlines.csvtoparties.csvonPartyId.
{ "format": "UPC Accounting full-entity archive", "version": 1, "entityName": "Maple Grooming", "legalName": "Maple Grooming Ltd.", "functionalCurrency": "CAD", "periodFrom": null, "periodTo": "2026-09-30", "employeesIncluded": false, "attachmentsIncluded": false, "files": [ { "name": "accounts.csv", "rows": 48 }, { "name": "entries.csv", "rows": 1312 } ]}The sample is shortened: a real manifest also carries the business’s id, the generation time, every file and the disclaimer.
Not available yet
Section titled “Not available yet”- QuickBooks Online list exports (customers, vendors, products), Xero chart-of-accounts and contacts exports, and Sage, Wave, FreshBooks and Zoho Books journal layouts. Use the UPC templates.
- PDF reports inside the archive. Report files are downloaded from the reports themselves.
- JPK_KR_PD.