CSV import — Payables
Import batches of payables from a CSV file.
Where it lives
There is no "Import" in the menu, and no import screen. The way in is:
Payables → the Import pill, on the listing itself.
You need a specific company selected in the header. Under "all companies", the panel only warns: "Select a specific company to import payables."
The Download template button hands you a sample CSV with the right header — the safest place to start, because it already comes in the right encoding.
CSV columns
| Column | Required | Description |
|---|---|---|
description | ✅ | Payable description |
amount | ✅ | Amount in reais (e.g. 3500,00) |
due_date | ✅ | Due date (dd/MM/yyyy) |
competence_date | — | Competence date (dd/MM/yyyy) |
document | — | Document identifier |
document_date | — | Issue date (dd/MM/yyyy) |
document_number | — | Invoice number |
person_name | — | Person/supplier name (created if it doesn't exist) |
category_name | — | Category name (must already exist — it is not created; an unmatched name is ignored) |
cost_center_name | — | Classification center name (must already exist — it is not created; an unmatched name is ignored) |
payment_method | — | Method: boleto, pix, ted, dinheiro, cartao_credito, etc. |
notes | — | Notes |
ir_relevant | — | true or false |
operation_kind | — | pagamento or transferencia |
barcode | — | Barcode (boleto or utility bill) |
pix_copia_e_cola | — | PIX Copia e Cola payload |
pix_key | — | PIX key |
pix_key_type | — | Key type: cpf, cnpj, email, phone, random |
bank_code | — | Bank COMPE code (TED) |
bank_ispb | — | Bank ISPB (TED) |
agency | — | Bank branch |
agency_digit | — | Branch check digit |
account_number | — | Account number |
account_digit | — | Account check digit |
transfer_purpose | — | Transfer purpose (TED) |
tax_kind | — | Tax type: darf, gru, gps, fgts, etc. |
beneficiary_name | — | Beneficiary name (sending to the bank) |
beneficiary_document | — | Beneficiary CPF or CNPJ |
scheduled_to | — | Date/time to schedule the send to the bank |
The names above are the canonical ones, but every header also accepts its Portuguese equivalent — descricao, valor, vencimento, fornecedor, categoria, observacao and so on. Columns the system doesn't know are ignored silently.
Format
The parser is more forgiving than it looks. You don't have to normalize the file first:
- Header — case, accents and spaces don't matter:
Descrição,DESCRICAOanddescricaoare the same column. - Separator —
,or;, detected from the header line. On a tie,;. - Dates —
31/12/2026,31-12-2026or2026-12-31. - Amounts —
1234.56,1.234,56,1234,56, with or withoutR$. The amount has to be greater than zero. ir_relevant—true/false,sim/nao,yes/no,1/0,s/y/n. Accents and case don't matter. Empty leaves the field blank.
The encoding has to be UTF-8, and this is where most files trip up. Excel in Portuguese saves CSV as Windows-1252 by default, and the system refuses it with a message that stays in Portuguese: "Arquivo não está em UTF-8. Salve novamente em UTF-8 e tente novamente." ("The file is not UTF-8. Save it again as UTF-8 and try once more.") In Excel, use Save As → CSV UTF-8; or start from the downloaded template.
Other whole-file rejections: an extension other than .csv, a size above 5 MB, an empty file, and a missing required column — "Colunas obrigatórias ausentes: amount" ("Missing required columns: amount"). In those cases there is no preview: the problem is the file, not a row.
Importing
- Upload the file. The system reads it and shows the preview.
- Valid rows come pre-selected. Click a row to deselect it.
- Click Import N lines.
Rows with errors
Invalid rows show up in the preview with a red marker, and can't be selected or edited there. There is no fixing them inside the system. The screen itself tells you the way out: "Uncheck the rows with errors or fix them in the file and upload again."
The number in Row N is the line number in the file, counting the header — the first data line is 2.
Writing happens in the background
On confirmation you get "Import started in the background" and a progress dialog. You can close the dialog — the import keeps going, and progress stays visible in the lower-right corner.
Links to other records
The supplier is created automatically when the name doesn't exist. Category and classification center are not created: an unmatched name leaves the field blank, with no error and no warning.
Automatic rules are applied to the imported records.
History
Below the panel, the History section lists the imports with date, file, status (Queued, Running, Completed, Failed, Cancelled), how many rows went in out of the total, and who asked for it.
Authorization
Imported payables fall under the payment authorization gate: they are born awaiting authorization and do not show up in the official list (nor in totals/cash flow) until someone authorizes them at Authorize payments. Only once authorized can they be sent to the bank. This applies when the gate is on (the default); off, imported rows are born official. See Lifecycle.