> ## Documentation Index
> Fetch the complete documentation index at: https://help.pragmachartered.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import and classify a bank statement

> Import a client's bank statement, give each line a ledger or match it to a bill, and approve the lines for the client's books.

![A client's Bank tab listing the lines of an imported statement](https://help.pragmachartered.com/images/books/bank.png)

Open the client, choose **Books**, then **Bank**. Owners can import for every client; Managers and Preparers only for clients they are assigned to. Connector admins and Client portal seats do not see the tab. Anyone who can see the tab can import and classify lines, but only an Owner or a Manager sees the **Approve** button that sends classified lines to the client's selected books destination.

Before you import, the client needs:

* a Tally company profile on its **Tally map** tab, because every line becomes a voucher proposal for that company; and
* at least one active ledger with the **Bank account** category on the **Tally map**. A statement is always imported against one of these bank ledgers.

**1. Import the statement**

Select **Import statement**. In **Import bank statement**, choose the **Bank account** the statement belongs to. If the client has only one bank ledger it is already chosen; if it has several, choose deliberately, because a statement posted against the wrong account cannot be undone from this panel.

Drop one file on **Drop a bank statement here, or choose a file**:

| File | Limit |
| - | - |
| CSV or Excel (.csv, .xlsx, .xls) | Up to 5 MiB |
| PDF, JPEG or PNG (including a scan or phone photo) | Up to 19 MiB |

A scan or photo works only when the statement shows a running balance. Remove a PDF's password before importing it: Pragma never asks for or keeps statement passwords. The panel closes as soon as the file is registered and the statement is read in the background.

**2. Check the import result**

Use **Statement** to pick the statement you want; the newest imported one is shown by default. Above the table you see its status (**Importing**, **Imported** or **Failed**), the bank ledger, the statement period, how the file was read (for example **Read from Excel** or **Read by OCR from a photo**) and the number of lines filed. Lines already imported for the same account from an earlier statement are skipped and counted as **already imported, skipped**; rows that are not transactions are counted as **non-transaction rows skipped**.

If the statement **Failed**, the reason and the line it stopped at appear in a red notice. Fix the file as the notice says and import it again; a failed import filed nothing.

**3. Classify lines in bulk**

Use **Show** to find work: **Unclassified** lines have no ledger yet, **Ready** lines have one and are still in review, **Approved** lines have been approved for the client's books. **Search narration or ref** narrows the list.

Tick the lines that went to the same place (or **Select every line shown**). A second toolbar shows how many are selected:

* **Ledger to apply** and **Apply ledger** set one ledger on every selected line that is still in review. You cannot choose the statement's own bank account; choosing another bank or cash ledger makes the line a **Contra**.
* **Apply N suggested** applies Pragma's ledger suggestion to selected lines that have a **high**-confidence suggestion and no ledger or bill yet. Medium and low suggestions are shown on the line under **Ledger · bill**; choose those by hand. Suggestions start only once some of this client's bank lines have been approved.
* **Accept N suggestions** matches selected lines to the single clear bill (or sale) Pragma found for them, and sets the ledger from that bill's party. A line with several possible bills, or a bill whose party ledger is not on the Tally map, is left out; hover the button to see why.
* **Clear** drops the selection.

**Suggestion accuracy** shows how often reviewers kept the ledger Pragma suggested for this client.

**4. Open a line that needs a closer look**

Click a line to open it in the review screen. There you can choose among the candidate bills under **Bills this pays** (or **Sales this collects** for a receipt) with **Accept**, split the amount across bills with **Allocate by hand** and **Match**, undo a match with **Unmatch**, or set **Paid to ledger** / **Received from ledger** and **Save ledger**. For a receipt, **Advance from customer** records it as an advance so it is reported in the GSTR-1 draft.

**5. Approve for the books**

Owners and Managers tick the classified lines and select **Approve N**. Only lines in review with a ledger chosen are approved; the rest of the selection is left out and the button's tooltip says how many. Approved lines are queued for the client's selected destination: Tally through its connector, or Zoho Books. See [Understand the Tally handoff](https://help.pragmachartered.com/invoices/tally-handoff.md) or [Post to Zoho Books](https://help.pragmachartered.com/invoices/zoho-books.md).

## Outstanding bills and sales

Switch **View** to **Outstanding** to see approved purchases not seen paid and approved sales not seen received by any imported statement. Use **Show** to switch between **Purchases not seen paid** and **Sales not seen received**. A part-paid bill appears with the amount **Still due**. Only invoices dated on or before the last day every bank account's statements cover are judged; the notice above the table names that date, and later invoices are counted, not listed, until a later statement is imported. Click a row to open the invoice.

## Advances from customers

Switch **View** to **Advances** to list receipts marked as an advance from a customer, filtered by **Received in** and **Show** (**Not fully adjusted** or **All**). When the client issues the invoice for an advance, select **Adjust against invoice** and enter the **Invoice date**, the optional **Invoice number (optional)** and the **Taxable value adjusted (excluding tax)**, which cannot exceed what is left. Remove an adjustment with **Remove**. An advance with adjustments cannot be cleared from the bank line until they are removed.

## If something is refused

| Message | What to do |
| - | - |
| Choose one of this client's bank accounts. Add a ledger with the Bank account category on the Tally map tab if there is none. | Add or reactivate the bank ledger on the **Tally map** tab. |
| This client has no Tally company profile yet, so a voucher cannot be proposed. … | Set up the client's **Tally map** first. |
| This exact bank statement file was already imported for this firm. … | Pick the existing statement from **Statement** instead. |
| That ledger cannot take this line. … | Choose an active ledger of the same client other than the statement's own bank account. |
| This bank line is already matched to its bills or sales. Unmatch it first. | Open the line and select **Unmatch** before matching again. |
| That bill or sale is already settled in full by other bank lines. … | Unmatch one of the other lines first. |
| Someone else changed this item while you were editing it … | Reload the page and apply the change again. |
| The books are closed through … | The line's date falls in closed books. See [Close a client's books](https://help.pragmachartered.com/books/close-books.md). |

When a bulk action stops part-way, the message says how many lines were already updated before the error; those changes are kept.

> [card] Still stuck?
>
> [Open a case](https://app.pragmachartered.com/support) from **Help & support** in Pragma, or [book a walkthrough](https://help.pragmachartered.com/support/book-a-walkthrough.md) and the team will show you around on a call. Can't sign in? [Contact support](https://app.pragmachartered.com/contact-support).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.