Guia de migració de QuickBooks a Beancount
Fase 1: Exportació de dades des de QuickBooks
Migrar cinc anys de dades comença per extreure tots els registres de QuickBooks en un format utilitzable. QuickBooks Desktop i QuickBooks Online tenen diferents opcions d'exportació:
1.1 QuickBooks Desktop – Opcions d'exportació
IIF (Intuit Interchange Format): QuickBooks Desktop pot exportar llistes (com el pla de comptes, clients, proveïdors) a fitxers de text .IIF
. A QuickBooks Desktop, aneu a File → Utilities → Export → Lists to IIF i, a continuació, seleccioneu les llistes que necessiteu (p. ex., Pla de comptes, Clients, Proveïdors). Això genera un fitxer de text que inclou noms de comptes, tipus i dades de les llistes. L'IIF és un format propietari però de text pla que és relativament fàcil d'analitzar. Utilitzeu-lo per capturar el vostre Pla de comptes i les llistes de contactes com a referència a Beancount.
Llibre major/Diari via CSV: Per a les dades de transaccions, QuickBooks Desktop no ofereix una exportació completa amb un sol clic, però podeu utilitzar informes. El mètode recomanat és exportar el General Journal (totes les transaccions) per al rang de dates desitjat. A QuickBooks Desktop, obriu Reports → Accountant & Taxes → Journal, establiu les dates des de la primera transacció fins avui i feu clic a Export → Excel. Deseu el resultat com a CSV després d'eliminar les capçaleres/peus de pàgina de l'informe i les columnes buides. Assegureu-vos que les dades numèriques estiguin netes: incloeu els cèntims (p. ex., 3.00
, no 3
), sense cometes addicionals i sense símbols de moneda o dobles negatius al CSV. El CSV hauria de tenir columnes com Date, Trans #, Name, Account, Memo, Debit, Credit, Balance (o una única columna Amount segons el format de l'informe).
Consell: QuickBooks Desktop 2015+ també pot exportar transaccions a través del diàleg Find. Utilitzeu Edit → Find → Advanced, establiu el rang de dates de cinc anys i després exporteu els resultats a CSV. Avís: Algunes versions limiten l'exportació a 32.768 línies. Si teniu dades molt grans, exporteu any per any (o en blocs més petits) per evitar el truncament i, posteriorment, combineu-los. Assegureu-vos que els rangs de dates no se superposin per evitar duplicats.
Altres formats (QBO/QFX/QIF): QuickBooks Desktop pot importar transaccions bancàries mitjançant fitxers .QBO
(Web Connect) o .QFX/.OFX
, però per exportar des de QuickBooks, aquests no són típics. Si el vostre objectiu és extreure només les transaccions bancàries, és possible que ja les tingueu en format QBO/OFX del vostre banc. No obstant això, per a una exportació completa del llibre major, utilitzeu IIF i CSV. QuickBooks Desktop no pot exportar directament a QIF (Quicken Interchange Format) sense eines de tercers. Si trobeu una manera d'obtenir QIF, tingueu en compte que algunes eines de llibres comptables (versions antigues de Ledger 2.x) podien llegir QIF, però és millor treballar amb CSV en el nostre procés.
1.2 QuickBooks Online – Opcions d'exportació
Exportació integrada a Excel/CSV: QuickBooks Online (QBO) ofereix una eina d'Export Data. Aneu a Settings ⚙ → Tools → Export Data. Al diàleg d'exportació, utilitzeu la pestanya Reports per seleccionar les dades (p. ex., General Ledger o Transaction List) i la pestanya Lists per a les llistes (pla de comptes, etc.), trieu All dates i exporteu a Excel. QuickBooks Online descarregarà un ZIP que conté diversos fitxers Excel per als informes i llistes seleccionats (per exemple, Compte de Pèrdues i Guanys, Balanç de Situació, Llibre Major, Clients, Proveïdors, Pla de Comptes, etc.). Després podeu convertir aquests fitxers Excel a CSV per processar-los.
Informe de detall de transaccions: Si l'exportació per defecte de QBO no inclou un únic fitxer de Llibre Major, podeu executar manualment un informe detallat:
- Aneu a Reports i cerqueu Transaction Detail by Account (o General Ledger en algunes versions de QBO).
- Establiu el Report period al rang complet de cinc anys.
- A les opcions de l'informe, establiu Group by = None (per llistar les transaccions individuals sense subtotals).
- Personalitzeu les columnes per incloure com a mínim: Date, Transaction Type, Number, Name (Payee/Customer), Memo/Description, Account, Debit, Credit (o una única columna Amount) i Balance. Incloeu qualsevol classe o ubicació si s'utilitza.
- Executeu l'informe i després feu clic a Export to Excel.
Això genera un llibre major detallat de totes les transaccions. Deseu-lo com a CSV. Cada línia representarà una partida (apunt) d'una transacció. Més endavant haureu d'agrupar les línies per transacció per a la conversió.
Pla de comptes i altres llistes: QuickBooks Online pot exportar el pla de comptes mitjançant Accounting → Chart of Accounts → Batch Actions → Export to Excel. Feu-ho per obtenir els noms i tipus de comptes. De la mateixa manera, exporteu Clients, Proveïdors, etc., si voleu traspassar els noms per a les metadades.
API de QuickBooks Online (Opcional): Per a un enfocament programàtic, Intuit ofereix una API REST per a les dades de QBO. Els usuaris avançats poden crear una aplicació de QuickBooks Online (requereix un compte de desenvolupador) i utilitzar l'API per obtenir dades en format JSON. Per exemple, podríeu consultar l'endpoint Account
per al pla de comptes i els endpoints de l'informe JournalEntry
o GeneralLedger
per a les transaccions. Hi ha SDKs de Python com python-quickbooks
que encapsulen l'API. No obstant això, l'ús de l'API implica autenticació OAuth i és excessiu per a una migració única, tret que preferiu l'automatització. Per a la majoria dels casos, l'exportació manual a CSV/Excel és més senzilla i menys propensa a errors.
Fase 2: Transformació i neteja de dades
Un cop teniu les dades de QuickBooks en CSV (i/o IIF), el següent pas és convertir-les al format de llibre comptable de text pla de Beancount. Això implica analitzar les exportacions, mapejar els comptes de QuickBooks a un pla de comptes de Beancount i formatar les transaccions en la sintaxi de Beancount.