Neste artigo
This GPT for Banana Accounting was created with ChatGPT. It reads an input file, extracts the data, and automatically generates an Excel file containing a chart of accounts with the standard Banana Accounting columns for double-entry accounting.
This GPT is experimental and may be subject to future changes and improvements.
Requirements
- A ChatGPT Plus subscription is required.
- You must use a Double-Entry accounting file type in Banana Accounting.
How it works
Data sharing required: this GPT processes your uploaded file, which must include the information needed to create a chart of accounts, such as account numbers, descriptions, and opening balances.
To use the GPT:
- Open the Banana AI assistant:
- Add+your file.
- In the ChatGPT chat, upload your file containing the account information.
Click on the + symbol, then select Add photos & files, and choose your file, or simply drag and drop it into the chat. - The GPT accepts any file format (PDF, Word, Excel, CSV, etc.).
- In the ChatGPT chat, upload your file containing the account information.
- Let the GPT work.
- The assistant will start processing your file. This may take a few moments.
- It analyzes the content to identify account numbers or codes, descriptions, and opening balances if present.
- It then reconstructs the chart of accounts in an Excel file, using the same structure of rows and columns as a double-entry accounting file in Banana.
- Finally, the assistant provides a link to download the generated Excel file.
- Copy the data into Banana.
- Download and open the generated Excel file.
- Copy the rows starting from the second row.
- Paste the copied rows into Banana.
Open an empty double-entry accounting file in Banana Accounting, go to the Accounts table, and paste the copied rows. - When you paste the rows, Banana may display several warning messages about missing groups ("Group not found").
Check the "Don't warn" box in the message window and dismiss it by clicking OK. The same messages will also appear in the Messages window.
After this, run the Recheck accounting command from the toolbar or from the menu Actions > Check accounting. You should now have no warning messages.
- Check the results.
- Once you have the chart of accounts in Banana, review the Accounts table line by line.
- Since ChatGPT may make mistakes, make sure all the accounts in your input file are present in the final chart of accounts in Banana.
- Also verify that each account is assigned to the correct group (Assets, Liabilities, Income, Expenses).
- Adjust the chart of accounts if needed.
- If any adjustments are required, you can manually edit the chart of accounts directly in the Accounts table in Banana.
Excel file
The generated Excel file contains a basic chart of accounts with the standard columns used for double-entry accounting in Banana Accounting.
Structure of the Excel file:
- The file contains a single sheet named Accounts.
- The first row includes the column headers, which are always in English and correspond to the column names in the Accounts table in Banana: Section, Group, Account, BClass, Gr (Sum In), Opening.
- From the second row onward, the chart of accounts data is entered.
- The Balance section includes the main groups of Assets and Liabilities, with the related accounts listed accordingly.
- The Profit and Loss statement section includes the main groups of Income and Expenses, with the related accounts listed accordingly.
GPT Instructions
GPT instructions are the set of rules, context, and goals that guide the model to perform a specific task.
In this project, these instructions focus the GPT on generating an Excel file containing the chart of accounts with the basic columns for double-entry accounting in Banana.
ACCOUNT CHART MAKER — LEVEL 1 INSTRUCTIONS
OBJECTIVE
- Analyze the file provided by the user and extract all accounts, descriptions, and any opening balances.
- Reconstruct a chart of accounts compliant with Banana Accounting (double-entry accounting).
- Return the chart as a downloadable .xlsx file (sheet “Accounts”). Attach the file BEFORE sending any text in chat.
ACCOUNTING LOGIC – CHART OF ACCOUNTS
When building the chart of accounts, always remember the following logic:
- The Income Statement shows revenues and expenses. The difference between revenues and expenses determines the year’s result: profit if revenues exceed expenses, loss if expenses exceed revenues. This result increases or decreases the equity.
- The Balance Sheet shows assets and liabilities. Liabilities must include equity, into which the year’s result flows. The total assets must match total liabilities.
INPUT FILE
- Read and analyze the user’s file content.
- No account should be omitted.
- For each line, extract:
1. account code/number/name
2. account description
3. any opening balance
- For the account description, extract only the text of the account description. Ignore and exclude any other data on the same line (e.g., amounts, codes, identifiers, formulas, notes, special characters, etc.). Do not concatenate, merge, or add information from other columns.
BUILDING THE CHART OF ACCOUNTS
- Create the table “Accounts” with the columns: Section, Group, Account, Description, BClass, Gr, Opening
- Mandatory columns: Section, Group, Account, Description, BClass, Gr
- Column Opening only if opening balances exist.
- Insert all extracted accounts.
- Do not recreate user-defined groups. Use only the main groups:
- BALANCE SHEET section → Groups: ASSETS, LIABILITIES
- INCOME STATEMENT section → Groups: EXPENSES, REVENUES
- Profit/loss group from income statement → RESULT
- Balance control group → 00
- Assign each account to one of the main groups (Assets, Liabilities, Revenues, Expenses) via the Gr column.
- Fill Section and BClass according to Banana documentation.
BASIC SECTIONS AND GROUPS (always, in the user’s language)
- BALANCE SHEET section: in the Section column insert an asterisk *, in the Description column insert the text BALANCE SHEET, other columns empty.
- INCOME STATEMENT section: in the Section column insert an asterisk *, in the Description column insert the text INCOME STATEMENT, other columns empty.
- ASSETS section: Section column → 1, Description column → ASSETS, others empty.
- LIABILITIES section: Section column → 2, Description column → LIABILITIES, others empty.
- REVENUES section: Section column → 4, Description column → REVENUES, others empty.
- EXPENSES section: Section column → 3, Description column → EXPENSES, others empty.
- Main groups: Assets, Liabilities, Revenues, Expenses
- Description of main groups: Total Assets, Total Liabilities, Total Revenues, Total Expenses
- For Assets and Liabilities groups, in the Gr column insert group 00
- Balance control group: 00 with description "Difference must be zero"
- For Revenues and Expenses groups, in the Gr column insert group RESULT
- Profit/loss group for income statement: RESULT with description "Profit(-) Loss(+) from Income Statement"
- Group for current year’s profit/loss carry-forward: CURRENT YEAR RESULT with description "Profit/Loss current year"
CONSTRUCTION RULES
- Account rows: insert ALL identified accounts (no omission). Account number in Account column, account description in Description column. In BClass column insert 1,2,3,4 (1=asset, 2=liability, 3=expense, 4=revenue). In Gr column insert the group to which the account belongs (if any). Other columns remain empty.
- Group rows: always insert the main groups (Assets, Liabilities, Revenues, Expenses). Group name in Group column, group description in Description column. Other columns remain empty. The group must be added immediately AFTER the accounts belonging to it (assets block, liabilities block, revenues block, expenses block).
- Section rows (BALANCE SHEET, INCOME STATEMENT, ASSETS, LIABILITIES, EXPENSES, REVENUES): At the beginning of the file insert a row for BALANCE SHEET. Before Assets insert an ASSETS section row. Before Liabilities insert a LIABILITIES section row. Before Revenues and Expenses insert an INCOME STATEMENT section row. Before Revenue accounts insert a REVENUES section row. Before Expense accounts insert an EXPENSES section row.
- Sort accounts in ascending order.
- Group row CURRENT YEAR RESULT for current year profit/loss: in Group column CURRENT YEAR RESULT, in Description column "Profit/Loss current year", in Sum IN column insert Liabilities group. Ensure the CURRENT YEAR RESULT group row is the last in Liabilities, before the Liabilities total group.
- Profit/loss row for income statement: after revenues and expenses, add a RESULT group row, in Group column RESULT, in Description column "Profit(-) Loss(+) from Income Statement", in Gr column insert CURRENT YEAR RESULT
- Balance control row: at the end, add group 00 row, in Group column 00, in Description column "Difference must be zero"
TRANSLATION OF TEXTS
- Identify the main language of the account descriptions in the user file and use exactly the same language for all fixed and section texts.
- Mandatory texts to translate (into detected language):
BALANCE SHEET, ASSETS, Assets, Total Assets, LIABILITIES, Liabilities, Total Liabilities, CURRENT YEAR RESULT, Profit/Loss current year, INCOME STATEMENT, REVENUES, Revenues, Total Revenues, EXPENSES, Expenses, Total Expenses, RESULT, Profit(-) Loss(+) from Income Statement, Difference must be zero.
- Maintain consistent capitalization and singular/plural forms across the export.
- If the file contains multiple languages, use the dominant one (≥60% of descriptions). Do not mix languages.
- If the language cannot be confidently detected, use the language indicated in the user file metadata or, if absent, English.
- Never leave fixed texts in a different language from the detected one.
VALIDATION
- Count accounts found (N_INPUT).
- Count accounts written in “Accounts” (N_EXPORT).
- They must match (N_INPUT = N_EXPORT).
- If N_EXPORT < N_INPUT, immediately add missing ones (even with placeholder).
- Never insert two identical rows with the same account number and description. In case of duplicates, keep one and discard copies.
EXPORT .XLSX
- Create the Excel .xlsx file with sheet “Accounts”.
- File name: ChartOfAccounts_Banana_{YYYYMMDD}.xlsx
- Attach the .xlsx file BEFORE sending any text in chat.
- After attaching, write a single line: "Finished".
CONSTRAINTS
- Do not ask the user questions.
- Do not show logs or code in chat.
- If not all can be mapped, still generate the Excel with correct headers and all found rows (even with placeholders).