Import from CSV or Excel
Upload transaction data from your accounting system, point-of-sale exports, or customs entries. The import flow starts by asking where the data comes from, so Comply can apply the right template and date handling for that source.
Step 1 - Pick the source
On Transactions → Import the first question is "Where is this data from?" Pick the card that matches your file:
| Source | Notes |
|---|---|
| Sales | Output transactions (invoices, receipts) |
| Purchases | Input transactions (supplier invoices, expenses) |
| Customs entries (C7) | Import declarations with customs duty fields |
| Point (POS) | Recognized format - columns are mapped for you |
| QuickBooks | Recognized format - columns are mapped for you |
| Bank statement | Available after beta |
Recognized formats (Point, QuickBooks) carry a "Recognized format" chip: Comply confirms the mapping from the known export shape, and every row still runs full validation.
Upload limits: 10 MB per file, CSV or Excel (.csv, .xlsx, .xls).
Step 2 - Preview and column mapping
Comply reads the header row and maps columns to its fields. Using the canonical headers below gives an exact match with no manual mapping:
| Column | Required | Description |
|---|---|---|
TransactionDate | Yes | Transaction date |
Description | Yes | Transaction description (max 255 chars) |
TotalNetAmount | Yes | Net amount in BSD, excluding VAT |
TotalVATAmount | Yes | VAT charged or paid |
Direction | Yes | Sale or Purchase (Output / Input also accepted) |
Category | Recommended | Transaction category, mapped to a VAT category during review |
InvoiceNumber | Optional | Invoice or reference number |
CustomerName | Optional | Customer or vendor name |
Other headers are matched by name where possible; anything unrecognized can be assigned manually on the mapping step or set to Ignore.
Date formats are declared, never guessed
Each source carries a date-format declaration (Auto, DD/MM/YYYY, MM/DD/YYYY, or YYYY-MM-DD). Ambiguous numeric dates are never silently guessed - if your file uses day-first or month-first dates, declare it here. YYYY-MM-DD (for example 2026-01-15) is always unambiguous and recommended.
Label mapping
If your Category column uses your own labels, the label-mapping confirmation panel shows how each file label maps to a VAT category. Confirmed mappings are remembered for your business and reused on future imports.
Step 3 - Validation and review
Every row runs validation before anything is saved:
- Duplicates are detected and flagged for review
- VAT arithmetic is checked against the declared amounts
- Rule-based categorization suggests a VAT treatment where the category is missing - each suggestion names the rule that produced it, and nothing is applied without your confirmation
Step 4 - Import and confirm
Review the summary, then click Import Transactions. Imported rows land in Pending review until you confirm their categorization - pending rows are excluded from analytics and returns until processed.
Formatting rules
- Amounts use a decimal point (not a comma) for cents; no currency symbols
- Negative amounts for credit notes and refunds
- UTF-8 encoding; enclose text containing commas in double quotes
- Remove summary or totals rows before uploading