Skip to content

Accounting software imports

A member moving their books into UPC Accounting uploads the files their previous program exports. The import wizard detects the layout, reads it, has the member map every account, contact, tax code and location to the UPC books, runs a dry run, and posts the entries as one batch that can be undone. This page lists the layouts it reads. Our own CSV and Excel layouts are on UPC templates.

RuleDetail
SizeUp to 25 MB per upload. One import posts at most 5,000 entries and 25,000 lines: split a larger file by period.
ContainersCSV (comma, semicolon, tab or pipe, detected from the first lines), Excel .xlsx / .xls (first sheet unless the member picks one), IIF, XML, JSON
RecognitionBy the header row, plus the report title above it for QuickBooks and Xero reports. The member can pick the format instead.
Rows skippedTitle rows, totals (Total…, TOTAL, Grand Total), subtotals, section headings, “Beginning / Opening / Closing balance” rows, report footers (Accrual Basis …, timestamps)
Account cells1000 Checking, 1000 - Checking and Sales (200) are split into a code and a name; Parent:Child gives the parent
CurrencyWhen the file states its books’ currency, it must be the UPC books’ currency. Foreign-currency lines keep their currency, amount and rate (book units per one foreign unit).
Upload keptThe uploaded file is deleted when the import posts, when it is cancelled, and at the latest 24 hours after upload
From the fileBecomes
Journal entries (from a journal, general ledger, transactions export or audit file)Posted entries, each marked as imported, in one undoable batch
A trial balanceOne opening entry (see Opening balances)
Accounts and contactsMapped to the books’ own accounts and contacts, or created during mapping
Tax codesUsed only to close an entry whose tax sits beside its net amount (as Sage and Zoho export it): one tax line per code posts to the mapped account
ClassesKept on each line (up to 60 characters; longer ones are cut with a note)
LocationsMapped to the business’s locations; an unmapped location is dropped from its lines with a note
Open invoices and bills, products and servicesListed, not imported. Receivable and payable balances belong in the trial balance.

An entry that does not balance after mapping (debits differ from credits, or fewer than two lines) blocks the import unless the member chooses to leave out the entries that cannot post.

Re-importing is safe: an entry already in the books is skipped. A numbered entry is identified by its program, journal, transaction type, number and date; an unnumbered one by its date and the net amount on each account (two identical unnumbered entries in one file are both kept). Importing the same file again, an overlapping one, or the Journal report after the General Ledger posts nothing twice.

For exporters: keep entry numbers, journal codes and dates stable between exports of the same entry.

Excel or CSV report and list exports.

ExportColumns readBecomes
Account ListAccount, Type, Detail Type, Description, Balance, Account #Accounts (class from Type)
Customer Contact ListCustomer, Phone Numbers, Email, Full Name, Billing Address, Open Balance (or the Customers page export: Company, Street Address, City, State, Zip, Country…)Customers
Vendor Contact ListVendor, Phone Numbers, Email, Full Name, Address, Account #Suppliers
Products and ServicesProduct/Service, Type, Description, Price, Cost, Qty On Hand, Income / Expense / Inventory Asset Account, SKUListed, not imported
Journal (report)Date, Transaction Type, Num, Name, Memo/Description, Account, Debit, Credit, Class, LocationEntries: a transaction’s date, type and number carry down to its following lines; the subtotal row closes it
Journal entry import layoutJournal No, Journal Date, Account Name, Debits, Credits, Description, Name, Location, Class, Currency Code, Exchange RateEntries grouped by Journal No; foreign rows in their currency at the rate
General LedgerDate, Transaction Type, Num, Name, Memo/Description, Split, Amount (or Debit / Credit), Balance, under account headingsEntries regrouped by date + type + number (else name)
Trial Balance(unnamed account column), Debit, Credit; an “As of …” titleOpening balances
Open InvoicesDate, Transaction Type, Num, Terms, Due Date, Amount, Open Balance, under customer headingsListed, not imported
Unpaid BillsDate, Transaction Type, Num, Due Date, Past Due, Amount, Open Balance, under vendor headingsListed, not imported
Journal No,Journal Date,Account Name,Debits,Credits,Description,Name,Location,Class
JE-1042,09/03/2026,Supplies,45.67,,Invoice 1042,Kibble Wholesale,Downtown,Grooming
JE-1042,09/03/2026,Chequing,,45.67,Invoice 1042,Kibble Wholesale,Downtown,Grooming

Tab-separated; each !TYPE row names the columns of the TYPE rows that follow. Usually Windows-1252.

RecordFields readBecomes
ACCNTNAME, ACCNTTYPE (BANK, AR, OCASSET, FIXASSET, OASSET, AP, CCARD, OCLIAB, LTLIAB, EQUITY, INC, COGS, EXP, EXINC, EXEXP), DESC, ACCNUM, OBAMOUNT, HIDDENAccounts
CUST / VEND / EMP / OTHERNAMENAME, COMPANYNAME, FIRSTNAME, LASTNAME, EMAIL, PHONE1, BADDR1-5 / ADDR1-5, VEND TAXID, NOTE, HIDDENContacts. EMP SSNO is never read.
INVITEMNAME, INVITEMTYPE, DESC, ACCNT, ASSETACCNT, COGSACCNT, PRICE, COST, QNTYListed, not imported
TRNS, SPL, ENDTRNSTRNSTYPE, DATE (MM/DD/YYYY unless the values show otherwise), ACCNT, NAME, CLASS, AMOUNT (positive debit, negative credit), DOCNUM, MEMOEntries

Budgets and time records are not read. QuickBooks Desktop’s Excel reports have no layout of their own; the QuickBooks Online report layouts may read them, but this is untested.

!TRNS TRNSID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO
!SPL SPLID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO
!ENDTRNS
TRNS GENERAL JOURNAL 09/03/2026 Supplies Kibble Wholesale Grooming 45.67 1042 Invoice 1042
SPL GENERAL JOURNAL 09/03/2026 Chequing Kibble Wholesale Grooming -45.67 1042 Invoice 1042
ENDTRNS
ExportColumns readBecomes
Chart of accounts*Code, *Name, *Type, *Tax Code, Description, Dashboard, Expense Claims, Enable Payments, BalanceAccounts
ContactsContactName, AccountNumber, EmailAddress, FirstName, LastName, PO address, PhoneNumber, TaxNumber, LegalNameContacts (kind unspecified: one export holds customers and suppliers)
Account TransactionsDate, Source, Description, Reference, Debit, Credit, Running Balance, Gross, GST / VAT / Tax, under “Name (code)” account headingsEntries regrouped by date + source + reference
General Ledger DetailThe same columns, with a “General Ledger Detail” titleEntries
Trial BalanceAccount (“Sales (200)”), Debit, Credit, YTD Debit, YTD Credit, under Revenue / Expenses / Assets / Liabilities / Equity sections; “As at …”Opening balances (class from the section)
Manual journal import*Narration, *Date, Description, *AccountCode, *TaxRate, *Amount (positive debit), TrackingName1/2, TrackingOption1/2Entries grouped by narration + date; tracking 1 becomes the class, tracking 2 the location
*Narration,*Date,Description,*AccountCode,*TaxRate,*Amount,TrackingName1,TrackingOption1,TrackingName2,TrackingOption2
Invoice 1042,03/09/2026,Dog treats,429,Tax Exempt,45.67,Class,Grooming,Location,Downtown
Invoice 1042,03/09/2026,Paid from operating,090,Tax Exempt,-45.67,Class,Grooming,Location,Downtown
LayoutColumns readNotes
Sage 50 Accounts (UK) audit-trail transactionsType, Account Reference, Nominal A/C Ref, Department Code, Date, Reference, Details, Net Amount, Tax Code, Tax Amount, Exchange Rate, Extra Reference, Project RefnJD / JC rows grouped by reference + date; other types (SI, PI, BP…) are reported, not posted
Sage 50 (US, formerly Peachtree) General JournalDate, Reference, Number of Distributions, G/L Account, Description, Amount (positive debit), Job IDGrouped by reference + date
Sage Accounting (cloud) journalDate, Reference, Ledger Account, Details, Debit, Credit, Tax RateGrouped by reference + date
Sage 50 Canadian Edition journal / GLDate, JE #, Account Number (“5200 Rent”), Comment, Source, Debits, CreditsGrouped by JE #
Nominal / chart listNominal Code (or Account Number, Ledger Account Code), Name, Report Category / Type, BalanceAccounts
ContactsAccount Reference, Name, Contact Name, Telephone, Email, address lines, Town, County, Post Code, Country Code, VAT NumberContacts
ExportColumns readBecomes
Wave accounting transactionsTransaction ID, Transaction Date, Account Name, Transaction Description, Transaction Line Description, Debit / Credit Amount (two-column) or Amount (one column), Customer, Vendor, Invoice / Bill Number, Sales Tax Amount / Name, Account Group / TypeEntries by Transaction ID
Wave customers / vendorsCustomer Name or Vendor Name, Email, Contact First / Last Name, Phone, Account Number, Currency, addressContacts
FreshBooks General LedgerDate, Description, Debit, Credit, Balance under account headings (“General Ledger” title)Entries regrouped by date + description
FreshBooks journal entriesJournal Entry #, Date, Account Number, Account Name, Description, Debit, CreditEntries
FreshBooks chart of accountsAccount Number, Account Name, Account Type, Sub Type, DescriptionAccounts
FreshBooks clientsOrganization, First Name, Last Name, Email, Phone, Street, City, Province/State, Country, Postal Code, CurrencyCustomers
FreshBooks invoicesClient Name, Invoice #, Date Issued, Due Date, Invoice Status, Total, Outstanding, CurrencyListed, not imported
Zoho Books manual journals (CSV or XLS)Journal Date, Journal Number (+ prefix / suffix), Reference Number, Notes, Currency, Account, Account Code, Description, Contact Name, Debit, Credit, Project Name, Tax Name / AmountEntries by number
Zoho Books chart of accountsAccount Name, Account Code, Description, Account Type, Currency, Parent Account, StatusAccounts
Zoho Books contactsDisplay Name, Company Name, First / Last Name, EmailID, Phone, Contact Type, Currency Code, Billing addressContacts (customer or supplier from Contact Type)
Zoho Books invoices / billsInvoice / Bill Date, Number, Status, Customer / Vendor Name, Due Date, Currency Code, Total, BalanceListed, not imported

A journal export no layout above explains is read through a column mapping the member builds in the wizard and can save for the next file. It names the header of each column:

FieldNeeded
DateYes
Account code or account nameYes (either)
Debit and Credit, or one signed AmountYes
Entry number, line memo, entry memo, reference, customer or supplier, class, location, tax code, tax amount, currency, exchange rateNo

Rows form an entry when they share an entry number, from a dated row to the next one, or until debits equal credits. A signed amount is a debit when positive, unless the member marks positive amounts as credits.

Livre des procédures fiscales art. A47 A-1. The 18 columns in this order: JournalCode, JournalLib, EcritureNum, EcritureDate, CompteNum, CompteLib, CompAuxNum, CompAuxLib, PieceRef, PieceDate, EcritureLib, Debit, Credit, EcritureLet, DateLet, ValidDate, Montantdevise, Idevise. Tab or | separator, yyyyMMdd dates (dd/MM/yyyy tolerated), decimal comma. The Montant + Sens variant (D / C or +1 / -1) is read too. A file named {SIREN}FEC{date}.txt is recognized a little more surely.

Read asFrom
Entry number, date, document date, validation dateEcritureNum (grouped with JournalCode), EcritureDate, PieceDate, ValidDate
Journal, reference, memoJournalCode / JournalLib, PieceRef, EcritureLib
Line account, debit, creditCompteNum / CompteLib, Debit, Credit
ContactCompAuxNum / CompAuxLib: 401… supplier, 411… customer, 421… employee
LetteringEcritureLet / DateLet
Foreign amountIdevise / Montantdevise (unsigned in the file, signed by the side)
Account classFrom the Plan Comptable Général: 1 equity, 16-17 liabilities, 2, 3 and 5 assets, 40 / 42 / 43 liabilities, 41 assets, 6 expenses, 7 income; 44-47 unknown (the member maps them)
JournalCode|JournalLib|EcritureNum|EcritureDate|CompteNum|CompteLib|CompAuxNum|CompAuxLib|PieceRef|PieceDate|EcritureLib|Debit|Credit|EcritureLet|DateLet|ValidDate|Montantdevise|Idevise
AC|Achats|AC000042|20260903|60700000|Achats de marchandises|||F1042|20260903|Kibble Wholesale facture 1042|38,06|0,00|||20260903||
AC|Achats|AC000042|20260903|44566000|TVA deductible|||F1042|20260903|Kibble Wholesale facture 1042|7,61|0,00|||20260903||
AC|Achats|AC000042|20260903|40100000|Fournisseurs|KIBBLE|Kibble Wholesale|F1042|20260903|Kibble Wholesale facture 1042|0,00|45,67|||20260903||

DATEV format, EXTF version 700. Line 1 is the header (consultant and client numbers, fiscal-year start, G/L account length, period, description, currency, SKR03 / SKR04 chart); line 2 holds the column names; data starts on line 3. ; separator, quoted text, decimal comma, usually Windows-1252.

CategoryBecomesColumns read
21 Buchungsstapel (format version 13)EntriesUmsatz, Soll/Haben-Kennzeichen, WKZ Umsatz, Kurs, Basis-Umsatz, WKZ Basis-Umsatz, Konto, Gegenkonto, BU-Schlüssel, Belegdatum, Belegfeld 1, Buchungstext, KOST1, KOST2
20 SachkontenbeschriftungenAccountsKonto, Kontenbeschriftung, Kontenbeschriftung lang
16 Debitoren/KreditorenContacts (1-6… customers, 7-9… suppliers)Konto, names (company, natural person, other, short), EU-Land + EU-UStID, Straße, Postleitzahl, Ort, Land, Telefon, E-Mail
  • A Buchungsstapel row posts Umsatz between Konto and Gegenkonto: S debits Konto and credits Gegenkonto, H the reverse. The BU-Schlüssel (tax key) goes to the Gegenkonto line. KOST1 becomes the class, KOST2 the location.
  • Belegdatum TTMM takes the year that puts it inside the header’s period (fiscal years across New Year work); TTMMJJJJ is read too.
  • In a foreign currency (WKZ Umsatz differs from the books’ currency, with a Basis-Umsatz), Basis-Umsatz is the booked amount, Umsatz the foreign amount, and Kurs (foreign units per book unit) is inverted to book units per foreign unit.
  • Consecutive rows with the same Belegfeld 1 and date form one entry (a split booking). An account one digit longer than the G/L length is a personal account and names the line’s contact.
  • Automatic accounts (Automatikkonten such as 8400) carry gross amounts whose VAT DATEV splits itself; the import keeps the gross on that account.
  • Other categories are not read.

urn:OECD:StandardAuditFile-Taxation/2.00, and national files of the same shape (Norway’s SAF-T Financial reads the same way).

Read asFrom
Company, currency, periodHeader/Company/Name, DefaultCurrencyCode, SelectionCriteria (SelectionStartDate / SelectionEndDate, or PeriodStart / PeriodStartYear … PeriodEnd / PeriodEndYear)
AccountsMasterFiles/GeneralLedgerAccounts/Account: AccountID, AccountDescription, AccountType, StandardAccountID, GroupingCode
Opening balances (as of the period start)OpeningDebitBalance / OpeningCreditBalance
ContactsCustomers/Customer (CustomerID), Suppliers/Supplier (SupplierID): Name, Address, Telephone, Email, TaxRegistrationNumber; flat or under CompanyStructure
EntriesGeneralLedgerEntries/Journal (JournalID, Description) / Transaction: TransactionID, TransactionDate (else GLPostingDate), TransactionType, Description, the first SourceDocumentID
LinesLine: AccountID, DebitAmount / CreditAmount (an Amount child with CurrencyCode / CurrencyAmount / ExchangeRate, or a plain value as in Portugal’s file), Description, CustomerID / SupplierID, Analysis (typed CLASS / LOCATION, else by position), TaxInformation TaxCode / TaxAmount

NumberOfEntries, TotalDebit and TotalCredit are checked. TaxTable and SourceDocuments are not read.

JPK_KR (1), schema 1-0 (http://jpk.mf.gov.pl/wzor/2016/03/09/03091/).

Read asFrom
Company, currency, periodPodmiot1 PelnaNazwa, Naglowek DomyslnyKodWaluty, DataOd / DataDo
AccountsZOiS: KodKonta, OpisKonta, TypKonta, KodZespolu (class: 0 / 1 / 3 / 6 assets, 4 / 5 costs, 8 equity; 2, 7 and 9 unknown), OpisZespolu, OpisKategorii
Opening balancesZOiS BilansOtwarciaWinien / BilansOtwarciaMa
EntriesDziennik: NrZapisuDziennika, DataKsiegowania (else DataOperacji), DataDowodu, NrDowoduKsiegowego, RodzajDowodu, OpisDziennika, OpisOperacji
LinesKontoZapis by NrZapisu: KodKontaWinien / KwotaWinien (debit), KodKontaMa / KwotaMa (credit), the descriptions, KodWaluty… / Kwota…Waluta

DziennikCtrl and Ctrl (row counts and sums) are checked. JPK_KR_PD (the 2025 structure) is refused with a clear message: it is not read.

A trial balance (QuickBooks Online or Xero Trial Balance, SAF-T opening balances, JPK_KR BilansOtwarcia…, or the TrialBalance template) becomes one opening entry:

  • dated the opening-balances date the member sets, or the file’s own “as of” date;
  • at most 500 lines; any difference between debits and credits goes to opening balance equity, with a note;
  • once per date: the same trial balance again is skipped, and a different one for a date that already has an imported opening entry is refused until that import is undone.

For reference, these layouts are recognized (so a misplaced upload gets a clear message):

ProviderRecognized by
ADPCompany Code, File Number / File #, Associate ID, Reg / O/T Earnings
WagepointEmployer CPP, Employer EI, Pay Run
GustoCheck Date, Employer Taxes, Employee Deductions, Employee Taxes
QuickBooks PayrollPayroll Item, Wage Base
PayworksEmployee Number, ER CPP/QPP, ER EHT, ER WCB, “Payworks” in the title
UPC payroll templateEmployeeId, EmployeeName, PeriodStart, PeriodEnd, PayDate, Currency, ItemKind, ItemCode, ItemName, Hours, Rate, Amount, YtdAmount
FileStatus
Bank statements and open-banking JSONRefused here; they import into a bank account (Bank statements)
Payroll registersRefused; see above
QuickBooks Desktop Excel reportsNo layout of their own (the QuickBooks Online report layouts may match; untested)
IIF budgets and time recordsNot read
DATEV categories other than 21, 20 and 16Not read
SAF-T TaxTable and SourceDocumentsNot read
JPK_KR_PDRefused
Excel 5.0 / 95 (BIFF5) and password-protected workbooksRefused
Fixed-asset registers and employee listsNo template yet

Before anything posts, the wizard lists problems (which stop the import) and notes. The ones a file’s content causes, with the labels the member sees:

LabelKindCause in the file
An entry doesn’t balanceProblemDebits and credits differ after mapping, or an entry has fewer than two lines
The file is in another currencyProblemThe file’s books are kept in another currency
Too much for one importProblemMore than 5,000 entries or 25,000 lines
A date couldn’t be readProblemA date in no form the reader knows
An amount’s side couldn’t be toldProblemAn amount with no debit or credit side
Already in the booksNoteEntries imported before; skipped
Dated in the futureNoteEntries after today
The date order was assumedNoteDay-first against month-first could not be settled from the values
A row was skippedNoteA row the layout could not read
Open invoices and bills aren’t importedNoteOpen documents in the file
Products and services aren’t importedNoteItems in the file
Long class names were shortenedNoteA class over 60 characters
Foreign-currency lines without their amountNoteA line in another currency with no amount in that currency