Skip to main content
GET
/
gst
/
analytics
/
gstr-2a-reconciliation
Reconcile GSTR-2A Job Status
curl --request GET \
  --url https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation \
  --header 'authorization: <authorization>' \
  --header 'x-api-key: <x-api-key>'
import requests

url = "https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation"

headers = {
"authorization": "<authorization>",
"x-api-key": "<x-api-key>"
}

response = requests.get(url, headers=headers)

print(response.text)
const options = {
method: 'GET',
headers: {authorization: '<authorization>', 'x-api-key': '<x-api-key>'}
};

fetch('https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: <authorization>",
"x-api-key: <x-api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("authorization", "<authorization>")
req.Header.Add("x-api-key", "<x-api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation")
.header("authorization", "<authorization>")
.header("x-api-key", "<x-api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://test-api.sandbox.co.in/gst/analytics/gstr-2a-reconciliation")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
request["x-api-key"] = '<x-api-key>'

response = http.request(request)
puts response.read_body
{
  "code": 200,
  "transaction_id": "d3d19997-c48a-4867-95b9-5a77c3567098",
  "data": {
    "@entity": "in.co.sandbox.gst.analytics.gstr-2a_reconciliation.job",
    "job_id": "d3d19997-c48a-4867-95b9-5a77c3567098",
    "gstin": "24EGCAZ2081S7Z4",
    "year": 2023,
    "month": 12,
    "reconciliation_criteria": "strict",
    "status": "succeeded",
    "reconciliation_report_url": "https://in-co-sandbox-gst-test-storage.s3.ap-south-1.amazonaws.com/gstr-2a-reconciliation/gstr-2a-reconciliation-report.xlsx",
    "created_at": 123,
    "updated_at": 123
  },
  "timestamp": 123
}
When the job succeeds, this endpoint returns a signed URL for the reconciliation report workbook.

Reconciliation report schema

Use this workbook schema to inspect or validate the downloaded report.

View reconciliation report schema

If the job fails validation, use the validation_report_url from the poll response to review the issues in the uploaded files.

Headers

authorization
string
required

JWT access token

x-api-key
string
required

API key for identification

x-api-version
string
default:1.0.0

API version

Query Parameters

job_id
string<uuid>
required

Job id of the created job

Response

default - application/json

200 Reconciliation Job Done

code
integer

HTTP-like status code returned by the API.

Example:

200

transaction_id
string<uuid>
data
object
timestamp
integer