> For the complete documentation index, see [llms.txt](https://docs.kick.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kick.co/setting-up/universal-importer.md).

# Universal Importer

Kick connects to most banks automatically via Plaid - but when a live connection isn't available, you can import transactions manually by uploading bank statements or CSV files. This is also useful for backfilling historical data beyond what Plaid provides.

{% hint style="info" %}
Import Transactions is available on paid plans (Basic and above).
{% endhint %}

***

### How to open Import Transactions

* Press **⌘K** → select **Import Transactions**
* Or from the **Accounts** tab → click ⋯ on any account → **Import transactions**

The importer opens as a full-screen overlay.

***

### Supported file types

* **PDF** bank statements
* **CSV** transaction exports
* **JPG / PNG** (image scans of statements)
* Maximum file size: **20 MB per file**

Excel (.xlsx) and Word files are not supported.

***

### How it works

#### 1. Upload your files

Drag and drop your statement files, or click **Upload statement**. You can upload multiple files at once. Kick processes each file automatically - extraction typically takes a few minutes.

#### 2. Review the account details

Once processed, Kick extracts the bank name, account number, statement period, and opening and closing balances. Review each field and correct anything that looks off. Link the statement to an existing account in Kick, or let Kick create a new one.

#### 3. Review transactions

Click **Review** to open the transaction spreadsheet. Kick extracts each transaction's date, description, and amount. You can edit any row directly. Kick validates that the transactions reconcile to the statement's opening and closing balances - if they don't, it flags the discrepancy for you to resolve.

#### 4. Import

When the statement shows **Ready to import**, click **Import documents**. Transactions flow into the Transactions tab and go through Kick's automatic categorization - the same as any transaction from a live connection.

***

### What happens after import

Imported transactions appear on your [Transactions](/common-workflows/transactions.md) tab and are [categorized](/common-workflows/categorization.md) automatically. They're treated the same as transactions from a connected bank - you can edit categories, add memos, attach receipts, and create [rules](/common-workflows/rules.md).

***

### Import vs. Reconcile

These are different workflows:

<table><thead><tr><th width="133.5277099609375"></th><th>Import Transactions</th><th>Reconcile</th></tr></thead><tbody><tr><td><strong>Purpose</strong></td><td>Bring in missing transactions</td><td>Confirm your books match bank statements - needed only for connected accounts</td></tr><tr><td><strong>File types</strong></td><td>PDF, CSV, image</td><td>PDF only</td></tr><tr><td><strong>When to use</strong></td><td>No live bank connection, or backfilling history</td><td>Closing a period for any connected account</td></tr></tbody></table>

→ [Reconciliation](/common-workflows/reconciliation.md)

***

### Troubleshooting

<details>

<summary><strong>Password-protected PDF</strong></summary>

Remove the password before uploading.

</details>

<details>

<summary><strong>Transactions don't match statement balance</strong></summary>

Edit the transaction amounts or the opening and closing balances in the review spreadsheet.

</details>

<details>

<summary><strong>Statement period is locked</strong></summary>

Go to **Settings →** [**Locks**](/working-with-your-team/locks.md) and unlock the period first.

</details>

<details>

<summary><strong>File won't upload</strong></summary>

Check that the file is a PDF, CSV, or image and under 20 MB.

</details>

<details>

<summary><strong>Transactions landing in the wrong period</strong></summary>

Check the statement dates and your bookkeeping start date.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kick.co/setting-up/universal-importer.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
