Skip to main content

Spreadsheet import

The Imports page uploads your portfolio via CSV file: customers first, then charges. Processing runs in the background, row by row — rows with errors do not bring down the rest of the spreadsheet.

Imports page

File format

The format is everyday Brazilian CSV, with no exotic requirements:

  • Separator: semicolon (;) or comma (,) — detected automatically.
  • Amounts: Brazilian format, such as 1.234,56.
  • Dates: DD/MM/AAAA or AAAA-MM-DD.
  • Header: required on the first row; column names are case-insensitive. Extra columns are ignored.

The Download template button on the page generates a sample CSV already in the right format for the selected type.

Columns — customers

ColumnRequiredNotes
nomeyes
documentonoCPF (11 digits) or CNPJ (14); punctuation is ignored
emailnobecomes the primary email
telefonenobecomes the primary phone
external_idnothe customer's ID in your system
apelido, observacoesno
tagsnoseparated by ; within the cell

Columns — charges

ColumnRequiredNotes
valoryesBrazilian format (1.250,00)
vencimentoyesDD/MM/AAAA or AAAA-MM-DD
documento_cliente or external_id_clienteone of the twoidentifies the customer who owns the charge
descricao, numero_documento, external_idno
juros, multa, descontonoadded to/subtracted from the current amount
emissaonodefault: the import date

Import customers before charges: a charge row referencing a nonexistent customer is rejected with the error "Customer not found — import customers first". Imported charges come in with source planilha and already with the correct status (Pending or Overdue, depending on the due date).

Deduplication

When importing customers, the system never duplicates records. For each row it looks for an existing customer first by external_id; if none, by document. Found: the row updates the existing record (only the filled-in fields). Not found: it creates one. Repeated rows within the file itself are also deduplicated.

Tracking and per-row errors

After the upload, the import appears in the table with a status (Queued → Processing → Completed or Failed) and the outcome: how many records were created, how many updated, and how many errors. The screen refreshes on its own while processing is in progress, and you receive a bell notification when it finishes.

If there are errors, the View errors link opens the full list, row by row, with the row number in the original spreadsheet and the reason ("Invalid 'valor' column", "'nome' column is required"...). Fix only the rejected rows and re-import just those — the rest have already been imported.

LGPD: the file is not retained

The CSV contents contain personal data (names, documents, contact info). For that reason, as soon as processing finishes — successfully or not — the file's contents are deleted from the system. Only the import metadata remains (file name, counts, per-row error list), which is what you need to audit and fix.