> 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/accountants/setting-up/universal-importer.md).

# Universal Importer

Upload bank statements and CSVs to bring in transaction data for institutions not supported by Plaid, or to backfill history beyond Plaid's lookback window.

### When to use the Universal Importer

* Your client's bank is not supported by Plaid (e.g., local credit unions)
* You need historical data beyond what Plaid provides for an existing connected account
* You're doing catch-up bookkeeping with statements from closed accounts
* You only have paper statements that have been scanned

{% hint style="info" %}
**Important:** The Universal Importer is available on all paid plans. If you are on the free plan, upgrade to access this feature.
{% endhint %}

***

### Supported file types

* **PDF**, including scanned PDFs
* **CSV** transaction exports
* **JPG / JPEG / PNG** (image scans of statements)
* Maximum file size: **20 MB per file**

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

***

### Import transactions

1. Go to the **Accounts** tab
2. Click **Add account** and select **Import transactions**
3. Drag and drop your files, browse from your computer, or select from the **Documents** tab. You can upload PDFs and CSVs for multiple accounts at once.
4. Kick extracts account information, balances, and transactions automatically. Review the extracted data before importing.
5. Select the entity and either create a new account or map to an existing one. If you're backfilling history for a connected account, select that account here.
6. Click **Import** to create the transactions.

{% hint style="info" %}
When you upload files for multiple accounts in a single batch, Kick automatically detects which account each file belongs to and sorts them accordingly.
{% endhint %}

{% hint style="info" icon="lightbulb" %}
Extraction and import may take a few minutes depending on the number of files and transactions. You can navigate away and come back — the import will continue processing.
{% endhint %}

***

### Review extracted data

<div data-with-frame="true"><figure><img src="https://290614220-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiOfJtU5BnOhuPqTiOHth%2Fuploads%2Fgit-blob-5ba9c2477d545c643f8a15e8ca207736397476f5%2FCleanShot%202026-04-03%20at%2016.48.16.gif?alt=media" alt=""><figcaption></figcaption></figure></div>

After uploading, Kick presents the extraction in a side-by-side view — a preview of the source document on the left and the extracted transactions in an editable table on the right. You can modify:

* **Dates** — Adjust transaction dates if the extraction parsed them incorrectly
* **Descriptions** — Edit or clean up transaction descriptions
* **Cash in / Cash out** — Correct amounts in either column
* **Opening and closing balances** — Edit the extracted balance figures for the statement period

The table includes built-in arithmetic validation: opening balance + cash in − cash out = closing balance. If the totals don't align, Kick flags the discrepancy so you can correct it before importing.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
