> ## Documentation Index
> Fetch the complete documentation index at: https://developer.sandbox.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Job

> Create GSTR-2A reconciliation job and get two signed URLs to upload GSTR-2A and purchase ledger.

<Note>
  This endpoint is part of a job-based async workflow. See the [job-based API workflow guide](/guides/developer-resources/job_based_apis#job-based-api-workflow) for job creation, payload upload, and status polling.
</Note>

You upload two files after the job is created: the GSTR-2A JSON export and the purchase ledger workbook.

#### Upload file schemas

Use these schemas to validate both files before you upload them to the signed URLs returned by this endpoint.

<CardGroup>
  <Card title="View GSTR-2A upload schema" icon="code" href="https://raw.githubusercontent.com/in-co-sandbox/in-co-sandbox-docs/refs/heads/main/data/gst/analytics/reconciliation/gstr_2a_upload.schema.json" arrow="true" horizontal />

  <Card title="View purchase ledger schema" icon="file-spreadsheet" href="https://sheet-tools.quicko.org.in/sheet-schema-builder?schema_url=https://raw.githubusercontent.com/in-co-sandbox/in-co-sandbox-docs/refs/heads/main/data/gst/analytics/reconciliation/purchase_ledger_workbook.schema.json" arrow="true" horizontal />
</CardGroup>

<Note>
  The GSTR upload schema file lists the available schema versions with their `valid_from` dates.
</Note>


## OpenAPI

````yaml api-reference/gst/analytics/openapi.json POST /gst/analytics/gstr-2a-reconciliation
openapi: 3.1.0
info:
  title: analytics
  version: 1.0.0
  description: >-
    **GST Analytics API** enables businesses to analyze and dive deep into the
    GST data including reconciliations of GSTR-2B with purchase ledgers,
    compliance checks of businesses, and more.
servers:
  - url: https://test-api.sandbox.co.in
  - url: https://api.sandbox.co.in
security: []
paths:
  /gst/analytics/gstr-2a-reconciliation:
    post:
      tags:
        - GSTR-2A Reconciliation
      summary: Reconcile GSTR-2A Job
      description: >-
        Create GSTR-2A reconciliation job and get two signed URLs to upload
        GSTR-2A and purchase ledger.
      parameters:
        - name: authorization
          in: header
          required: true
          description: JWT access token
          deprecated: false
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          description: API key for identification
          deprecated: false
          schema:
            type: string
        - name: x-api-version
          in: header
          description: API version
          schema:
            type: string
            default: 1.0.0
          required: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                '@entity':
                  type: string
                  const: in.co.sandbox.gst.analytics.gstr-2a_reconciliation.request
                  description: Entity name
                gstin:
                  type: string
                  pattern: ^([0-9]{2}[0-9A-Z]{13})$
                  description: GSTIN of the taxpayer
                year:
                  type: integer
                  description: Year e.g. 2020
                month:
                  type: integer
                  description: Month e.g. 10
                reconciliation_criteria:
                  type: string
                  enum:
                    - strict
                    - moderate
                    - flexible
                  description: >-
                    Preference for the reconciliation strictness. Possible
                    values: strict, moderate, flexible
              required:
                - '@entity'
                - gstin
                - year
                - month
                - reconciliation_criteria
            examples:
              Reconcile GSTR-2A Job:
                summary: Reconcile GSTR-2A Job
                value:
                  '@entity': in.co.sandbox.gst.analytics.gstr-2a_reconciliation.request
                  gstin: 24ABKCS2033B1ZV
                  year: 2026
                  month: 3
                  reconciliation_criteria: strict
      responses:
        '200':
          description: 200 Job Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    description: HTTP-like status code returned by the API.
                    example: 200
                  transaction_id:
                    type: string
                    format: uuid
                  data:
                    type: object
                    properties:
                      '@entity':
                        type: string
                        description: Fully-qualified entity type.
                        example: in.co.sandbox.gst.analytics.gstr-2a_reconciliation.job
                        const: in.co.sandbox.gst.analytics.gstr-2a_reconciliation.job
                      job_id:
                        type: string
                        format: uuid
                        description: ID of the reconciliation job (UUID).
                        example: d3d19997-c48a-4867-95b9-5a77c3567098
                      gstin:
                        type: string
                        description: GSTIN of the taxpayer (15 characters).
                        pattern: ^[0-9]{2}[A-Z0-9]{13}$
                        minLength: 15
                        maxLength: 15
                        example: 24EGCAZ2081S7Z4
                      year:
                        type: integer
                        description: Financial year (calendar year) for the job.
                        example: 2025
                      month:
                        type: integer
                        description: Month number (1-12).
                        minimum: 1
                        maximum: 12
                        example: 12
                      filing_preference:
                        type: string
                        description: Filing preference used for the job.
                        enum:
                          - monthly
                        example: monthly
                      reconciliation_criteria:
                        type: string
                        description: Matching criteria used for reconciliation.
                        enum:
                          - strict
                        example: strict
                      status:
                        type: string
                        description: Current status of the job.
                        enum:
                          - created
                          - queued
                          - in_progress
                          - succeeded
                          - failed
                        example: created
                      gstr_2a_url:
                        type: string
                        format: uri
                        description: Presigned URL for the input GSTR-2A JSON file.
                      purchase_ledger_url:
                        type: string
                        format: uri
                        description: Presigned URL for the purchase ledger JSON file.
                      created_at:
                        type: integer
                        description: Job creation timestamp in milliseconds since epoch
                    required:
                      - '@entity'
                      - job_id
                      - gstin
                      - year
                      - month
                      - filing_preference
                      - reconciliation_criteria
                      - status
                      - gstr_2a_url
                      - purchase_ledger_url
                      - created_at
                  timestamp:
                    type: integer
              examples:
                200 Job Created:
                  summary: 200 Job Created
                  value:
                    code: 200
                    timestamp: 1777273620309
                    data:
                      created_at: 1777273620951
                      '@entity': in.co.sandbox.gst.analytics.gstr-2a_reconciliation.job
                      job_id: f42e3d84-409a-4351-a9d7-9697750e7f98
                      gstin: 24ABKCS2033B1ZV
                      year: 2026
                      month: 3
                      reconciliation_criteria: strict
                      purchase_ledger_url: >-
                        https://in-co-sandbox-gst-test-storage.s3.ap-south-1.amazonaws.com/gstr-2a-reconciliation/purchase-ledger.json
                      gstr_2a_url: >-
                        https://in-co-sandbox-gst-test-storage.s3.ap-south-1.amazonaws.com/gstr-2a-reconciliation/gstr-2a.json
                      status: created
                    transaction_id: f42e3d84-409a-4351-a9d7-9697750e7f98

````