> ## 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.

# Reconcile a GSTR-2B

> Bring a client's GSTR-2B into Pragma, match it against approved purchases for a month or the whole year, and follow up GSTR-2A and IMS.

![GSTR-2B reconciliation view on a client's GST tab](https://help.pragmachartered.com/images/gst/gstr2b-reconciliation.png)

The GSTR-2B reconciliation pairs each document on the client's GSTR-2B with the purchases approved in Pragma, so you can see which credit is supported by the books. It is read-only. There is no accept or reject on a 2B row. You act on what it shows in four ways:

* correct the purchase on its review screen.
* record a treatment in the GSTR-3B ITC workings.
* take IMS actions on the GST portal.
* sign the period off.

**Who can do this:** anyone who can open the client's **GST** tab. That is an Owner for any client, or a Manager or Preparer assigned to the client. Connector admins and client-portal seats cannot. Only an Owner, or a Manager assigned to the client, can mark a 2B reconciled.

## Add the period's GSTR-2B

Open the client, choose **Tax**, then **GST**. The tab opens on **View** **GSTR-2B reconciliation**. Open **Add GSTR-2B** and choose one of these:

> [tab] Fetch from GST portal
>
> Choose **Fetch from GST portal**, pick the **Month** (for a quarterly client, the quarter's last month) and select **Fetch**. **Recent fetches** shows whether the GST portal returned the statement. The statement is then imported like an uploaded file. Nothing is saved or filed on the portal.
>
> Fetching needs the client's own GST portal connection. If it is not active, the panel tells you to ask the client to open their Pragma portal, choose GST portal and confirm with the OTP sent to their GST-registered mobile. See [Connect the GST portal](https://help.pragmachartered.com/portal/gst-portal.md). If the connection is not available for your firm, import the file instead.

> [tab] Import a file
>
> Choose **Import a file**. Download the client's GSTR-2B from the GST portal as JSON or Excel and drop it on **Drop a GSTR-2B here, or choose files**. You can drop several files at once, each up to 10 MiB. Each file is checked against the client's GSTIN before its documents are read. Importing a month again replaces the earlier file.
>
> If you drop a spreadsheet that is not the portal's Excel, such as a 2B register from another tool, map its columns first:
>
> 1. Choose the **Sheet** and the **Month this file is for**.
> 2. For each field, pick the matching column. **Supplier GSTIN**, **Invoice / note number**, **Invoice / note date** and **Taxable value** are required.
> 3. When the preview says how many documents the map reads, select **Save map and import**.
>
> The map is saved for this client and used for its next file. **Remove map** deletes it. A mapped register is read as invoices and credit/debit notes only. When the client has imports or ISD credit, import the portal's own file instead.

> [tab] Several clients at once
>
> From the **Clients** list, select **Import GSTR-2B files**. Drop up to 30 portal JSON or Excel files, then optionally set **Month** to the month you expect. Each file is listed with the client whose GSTIN it names and a status. Select **Import … files** to upload only the files that can be imported.
>
> | Status | Meaning |
> | - | - |
> | **New** / **Replaces an import** / **Already imported** | The file matches a client. It is a first import, replaces that month's earlier file, or is a copy of one already imported. |
> | **No client has this GSTIN** | Add the GSTIN to the right client's profile, or import from that client's GST tab. |
> | **Two clients share this GSTIN** | Correct the duplicate GSTIN, then import again. |
> | **Client is archived** | Restore the client first if its returns are still being prepared. |
> | **Not your client** | Ask a firm owner to import it, or to assign you the client. |
> | **Different month** / **Repeats another file** / **Not a GSTR-2B** | Remove or replace the file. |

The import panel's **Imported files** list shows each statement as **Importing**, **Imported** (with its document count and source) or **Failed** with a reason. It also marks statements **GST portal**, **Replaced by a later import** or **Further part of the month, read together**.

> [accordion] Why a GSTR-2B import failed
>
> | Reason shown | What to do |
> | - | - |
> | This GSTR-2B belongs to a different GSTIN than this client's. | Check you picked the right client. |
> | This file is not a GSTR-2B. | Check that it is the GSTR-2B download, not GSTR-2A or another return. |
> | This Excel has the GSTR-2B summary but no document sheets. | Download the full GSTR-2B Excel (with the B2B sheet) or the JSON. |
> | This spreadsheet is not the GST portal's GSTR-2B Excel. | Import the portal's download, or set up a column map. |
> | This spreadsheet does not fit the client's column map. | Check that the mapped headers are in the file, or update the map. |
> | This file is the GSTR-2B of a different month than the one chosen. | Choose the file's own month and import again. |
> | More documents than one import can hold. | Contact support to reconcile this period. |

## Reconcile one period

**1. Choose the period**

Set **Period** to **Latest imported** or to a month. A month whose file was replaced shows "(replaced)". Use the search box to find a supplier, GSTIN or invoice number.

**2. Work through each status**

The tiles total **Matched**, **Values differ**, **Not in Pragma** and **Not on portal**, with the ITC involved. Use **Status** to go through them one at a time.

| Status | What it means | What to do |
| - | - | - |
| **Matched** | The 2B document agrees with an approved purchase. | Nothing. |
| **Values differ** | Both sides have it, but **Notes** shows a difference, for example "Taxable: … in books, … on portal". | Open the row and correct the purchase if Pragma's figure was misread. Otherwise, take it up with the supplier. |
| **Not in Pragma** | On the 2B, with no approved purchase. | Upload or approve the bill. If it is booked outside Pragma, mark it in the GSTR-3B ITC workings. |
| **Not on portal** | Approved in Pragma, but not on this 2B. | Check **Notes**. The supplier may have reported it on a later 2B. Otherwise, follow up with the supplier. |
| **Missing GSTIN or number** | The approved purchase lacks the supplier GSTIN or invoice number, so it cannot be paired. | Add them on the purchase's review screen. |

**3. Read the notes**

**Notes** explains timing and flags. For example: "Booked …, on this 2B … periods late: claim the credit in this period". Flags include **Supplier reported it in a later period**, **Its period's 2B is not imported**, **Past Sec 16(4) limit**, **Still not on portal after the Sec 16(4) last date**, **ITC unavailable**, **Reverse charge**, **Duplicate on portal**, **Duplicate in books** and **Number format differs**. Select any row with a Pragma side to open that invoice's review screen. See [Review and approve invoices](https://help.pragmachartered.com/invoices/review-and-approve.md).

**4. Export the working paper**

**Export CSV** downloads every row of the period, whatever your search or filter shows.

Above the tiles, Pragma may note:

* 2B sections it does not reconcile yet ("Not reconciled: …").
* that the file on screen was replaced by a later import.
* that only the first 1,000 unmatched purchases were checked against later 2Bs. Use the full-year view for the rest.

## Reconcile the whole financial year

In **View**, choose **GSTR-2B full year**. Select **Reconcile the year**. Pragma reconciles every imported 2B against every approved purchase of the year in the background, then pairs invoices booked in one period with a later period's 2B. The page updates when the run is done.

* **Show** **Periods** gives a per-period breakdown, including **Booked earlier** and **Reported later**. **Documents** lists the rows. You can search and filter them by **Period** and **Status**, including **Paired across periods**. A paired row tells you which GSTR-3B to claim the credit in, and the Sec 16(4) last date.
* If a purchase is approved or reopened, or a 2B is imported or replaced, after the run, a notice tells you to **Run again**.
* **Export CSV** downloads every row of the run. Select **Load more** to page through long lists on screen.
* If the run fails, the notice explains why. When one supplier has too many documents for one run, reconcile period by period instead.

## Sign the period off

Mark the reconciliation reviewed from the client's GST health view. In **View**, choose **GST health**, then **Show** **Periods**. Open the period's **Sign-off actions** and choose **Mark 2B reconciled**. The **2B reconciled** column then shows who signed it off and when. It shows **Changed since review** if the books or the 2B change afterwards. Choose **Clear 2B reconciliation mark** to remove it. See [GST reports and the GST portal](https://help.pragmachartered.com/gst/reports-and-portal.md).

## Follow up with GSTR-2A and IMS

> [accordion] GSTR-2A reconciliation and supplier chase list
>
> The GSTR-2A changes as suppliers file. Use it during the month to chase suppliers before the 2B is generated. In **View**, choose **GSTR-2A reconciliation**, select **Import GSTR-2A** and drop the portal's JSON or ZIP. To get it, open Returns Dashboard on the portal, choose the month, then GSTR-2A, Download, Generate JSON. Each new import replaces the last.
>
> **Show** lists documents by the same statuses as the 2B, with **Not on 2A** in place of **Not on portal**. **Suppliers** is the chase list. Each supplier's **Filing** is **Filed**, **GSTR-1 not filed** or **Nothing uploaded**, with what is **On 2A** and what is **Approved, not on 2A**. **Export CSV** offers **Documents** or **Supplier chase list**. Credit is still claimed from the GSTR-2B.

> [accordion] IMS actions
>
> In **View**, choose **IMS actions**, select **Import IMS** and drop the IMS JSON under the month whose GSTR-2B it feeds. To get it, open Invoice Management System (IMS) Dashboard on the portal, then Offline, Download Json. The view shows what the client **Accepted**, **Rejected**, left **Pending** or took **No action** on, beside Pragma's approved purchases and the imported 2B. Filter by **Action**, or **Show** **Needs attention**.
>
> | Flag | What to do |
> | - | - |
> | **Pending at the GSTR-3B cut-off** / **Pending no longer allowed** | Ask the client to accept or reject on the portal now. |
> | **Rejected, but approved in Pragma** | Confirm with the client. A rejected record gives no credit. |
> | **Accepted but not on this 2B** / **In ITC, not approved in Pragma** | Check the 2B and approve the purchase if it is genuine. |
> | **Past Sec 16(4) limit** | The credit is time-barred. |
>
> **Pragma only reads IMS.** Accept, reject or keep pending on the GST portal, then download and import the IMS file again. The import is a snapshot.

## If something is refused

* "Add this client's GSTIN first. A GSTR-2B is checked against it and a GSTR-1 draft is the return of that GSTIN, so neither works without one."
* "This exact GSTR-2B file was already imported for this firm. The existing statement holds it — nothing was created."
* "This GSTR-2B belongs to an archived client, so it was not imported. Restore the client first if its returns are still being prepared."
* "There is no imported GSTR-2B for this period to mark reconciled. Import it on the GST tab first."
* "This client hasn't connected the GST portal, or the connection has expired. Ask them to connect it from their portal."
* "A request to the GST portal is already running for this client. Wait for it to finish."
* "A GSTR-2B file must be between 1 byte and 10 MiB." In the batch import: "At most 30 files are imported in one upload. Import the rest in a second batch."

> [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.