Column mapping tells PayBlah which spreadsheet header is the invoice number, which is the contact first name, and so on. Until the four required fields each point at a column, nothing from that file is written.
Required fields (exactly four)
- Contact first name — so a reminder can name a person. This is a B2B contact, not a consumer-credit file.
- Invoice number
- Due date
- Amount outstanding — what is still owed; this is what can be chased.
Company name is optional on import. Leave it blank and PayBlah uses the contact first and last name as the customer name. Do not copy signup’s “Enter your company name” rule, and do not copy Add invoice → New customer… (that form does require a company name).
Currency is not a map field. Amounts use the workspace currency shown as Currency {CODE} from this PayBlah workspace. A column headed Currency is ignored.
Optional fields
- Company name
- Contact last name, Contact email, Contact phone
- Invoice date, Invoice total
- Customer ID (their id in your books — the stable match key)
- Paid / unpaid, Paid date
That is thirteen fields. Legacy “14 fields including currency_code” does not apply to this importer. Legacy .xls is not a mapping format — save as .xlsx or CSV. A .txt file can be read as CSV if it reaches the server; the picker still asks for .csv or .xlsx.
How mapping works
- From Import Invoices, upload a .csv or .xlsx (first worksheet only for Excel) and click Upload and match columns.
- On Match your columns, each of your headers has a PayBlah field list. Common synonyms are auto-recognised (for example Amount Due → Amount outstanding). Choose — don't import — for columns you want to ignore.
- Set Dates read as: day/month/year, month/day/year, or year-month-day. Set Decimal separator: 1,234.56 or 1.234,56.
- If you see Still to match, point every required field at a column. Nothing can be imported until that list is empty.
- Click Update Preview. Check What this file would do and the Customer / Invoice / Amount / Due / What happens table.
- Click Import N invoice(s). Preview and commit use the same engine, so the counts stay honest.
How your columns map on the landing page is the saved mapping. The first file teaches the header names; the next file with the same headers can reuse them. Saved-mapping use count is files imported, not previews.
Row decisions you will see
- Import — new invoice (and maybe a new customer).
- Already have it — same customer + same invoice number. Skipped, not updated. Re-import cannot change paid status, amount, or dates on an existing number.
- Nothing owed — zero outstanding or a paid/settled paid-status value. Not chased.
- Cannot read — missing required data, bad date/amount, or a negative amount (credit note).
Possible customer matches can create a new customer plus a warning rather than silently merging. Certain email, phone, or name matches reuse an existing customer.
Expected result
Required fields are mapped, the preview tally matches the commit report, and new invoices appear under Invoices and Customers. When chasing mode is automatic (the default), eligible new invoices can enrol as Chasing. Import still does not send a message.
If something goes wrong
- Expired upload — upload the file again.
- Wrong date order — change Dates read as and Update Preview before you import.
- Wrong decimal — switch 1,234.56 / 1.234,56 and preview again.
- Duplicates after a second file — expected. Existing numbers stay as they are; edit them on the invoice, do not expect the spreadsheet to overwrite them.
- Non-Admin — “Only an Admin can import invoices.”
What this does not do
- It does not change the file on your disk.
- It does not send Workflows, email, SMS, or letters.
- It does not invent an email for a blank cell.
- It is not Google Sheets, Sage 50, FreeAgent, or MYOB.