Fast GST Refund Generators API

The Generators API from Fast GST Refund — 2 operation(s) for generators.

GitHub OpenAPI

Operations 4

GET /api/generators/statement3 Statement 3 fields and where each value comes from #
POST /api/generators/statement3 Check records or create the Statement 3 JSON file #
GET /api/generators/annexureb Annexure B fields and where each value comes from #
POST /api/generators/annexureb Check records or create the Annexure B JSON file #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fastgstrefund-com:fastgstrefund-com-generators-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fastgstrefund-com-generators-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fast GST Refund preparation Generators API
  version: 1.3.1
  description: Public preparation guidance, and creation of the Statement 3 and Annexure B JSON files for a GST export refund application. Checking records is open to everyone. A file needs a signed-in account that has paid for the claim. No source-system retrieval, eligibility decision or government submission.
  contact:
    email: support@fastgstrefund.com
    url: https://fastgstrefund.com/for-agents/
servers:
- url: https://fastgstrefund.com
tags:
- name: Generators
paths:
  /api/generators/statement3:
    get:
      operationId: statement3Requirements
      summary: Statement 3 fields and where each value comes from
      security: []
      responses:
        '200':
          description: Field schema, sources, limits and utility version
      tags:
      - Generators
    post:
      operationId: statement3CheckOrCreate
      summary: Check records or create the Statement 3 JSON file
      security:
      - {}
      - account:
        - refund:generate
      description: 'action=validate needs no account and returns every error with its path and a plain-language fix. action=generate needs an account that has paid for the claim (one GSTIN and From/To period; one payment covers both files and all corrections) and returns the file. Amounts may be strings or numbers; dates DD-MM-YYYY; periods MMYYYY. A JSON file made by the official offline utility is accepted as data unchanged. Limits: 8 MB and 10000 rows per file. HTTP 402 means the claim has not been paid for; payment is made on the website.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - action
              - data
              properties:
                action:
                  type: string
                  enum:
                  - validate
                  - generate
                data:
                  $schema: https://json-schema.org/draft/2020-12/schema
                  type: object
                  properties:
                    gstin:
                      type: string
                      pattern: ^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z][Z1-9A-J][0-9A-Z]$
                      description: Applicant GSTIN, 15 characters.
                    fromFp:
                      type: string
                      pattern: ^(0[1-9]|1[0-2])\d{4}$
                      description: First return period of the claim, MMYYYY.
                    toFp:
                      type: string
                      pattern: ^(0[1-9]|1[0-2])\d{4}$
                      description: Last return period of the claim, MMYYYY.
                    documents:
                      minItems: 1
                      maxItems: 10000
                      type: array
                      items:
                        type: object
                        properties:
                          docType:
                            type: string
                            enum:
                            - Invoice
                            - Debit Note
                            - Credit Note
                          inum:
                            type: string
                            pattern: ^[A-Za-z0-9/-]{1,16}$
                            description: 'Document number: up to 16 letters, digits, / or -.'
                          idt:
                            type: string
                            pattern: ^\d{2}-\d{2}-\d{4}$
                            description: Document date, DD-MM-YYYY.
                          val:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Document value in INR, e.g. 1180.50.
                          type:
                            type: string
                            enum:
                            - S
                            - G
                            description: S for a service export, G for a goods export.
                          sbpcode:
                            description: 'Goods only: six-character port code.'
                            type: string
                            pattern: ^[A-Za-z0-9]{6}$
                          sbnum:
                            description: 'Goods only: shipping bill number, 3 to 7 digits.'
                            type: string
                            pattern: ^\d{3,7}$
                          sbdt:
                            description: 'Goods only: shipping bill date, DD-MM-YYYY.'
                            type: string
                            pattern: ^\d{2}-\d{2}-\d{4}$
                          fobValue:
                            description: 'Goods only: FOB value in INR, up to 4 decimals.'
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,4})?$
                          egmref:
                            description: 'Goods only: EGM reference, 1 to 20 letters or digits.'
                            type: string
                            pattern: ^[A-Za-z0-9]{1,20}$
                          egmrefdt:
                            description: 'Goods only: EGM date, DD-MM-YYYY.'
                            type: string
                            pattern: ^\d{2}-\d{2}-\d{4}$
                        required:
                        - docType
                        - inum
                        - idt
                        - val
                        - type
                        additionalProperties: false
                      description: Export invoices, debit notes and credit notes.
                    receipts:
                      maxItems: 10000
                      type: array
                      items:
                        type: object
                        properties:
                          num:
                            type: string
                            pattern: ^[A-Za-z0-9]{2,30}$
                            description: BRC/FIRC number, letters or digits. The GST portal's instructions give 3 to 30 characters; the offline utility also takes 2, which is accepted here with a note.
                          dt:
                            type: string
                            pattern: ^\d{2}-\d{2}-\d{4}$
                            description: BRC/FIRC date, DD-MM-YYYY.
                          val:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: INR value realised under this BRC/FIRC for the listed documents.
                        required:
                        - num
                        - dt
                        - val
                        additionalProperties: false
                      description: Bank realisation rows for service exports. A separate list, not tied to individual invoices; the same BRC/FIRC number may appear more than once. Use [] for goods-only statements.
                  required:
                  - gstin
                  - fromFp
                  - toFp
                  - documents
                  - receipts
                  additionalProperties: false
      responses:
        '200':
          description: 'For validate: valid, errors, warnings and totals. For generate: the JSON file as an attachment; Content-Disposition gives its name.'
        '401':
          description: generate without an account; WWW-Authenticate gives the OAuth resource metadata
        '402':
          description: The account has not paid for this GSTIN and period. The body includes the claim.
        '413':
          description: Request exceeds 8 MB
        '422':
          description: Entries need correcting; see errors[].path and errors[].message
        '429':
          description: Rate limit reached; wait before retrying
        '503':
          description: Temporarily unavailable
      tags:
      - Generators
  /api/generators/annexureb:
    get:
      operationId: annexurebRequirements
      summary: Annexure B fields and where each value comes from
      security: []
      responses:
        '200':
          description: Field schema, sources, limits and utility version
      tags:
      - Generators
    post:
      operationId: annexurebCheckOrCreate
      summary: Check records or create the Annexure B JSON file
      security:
      - {}
      - account:
        - refund:generate
      description: 'action=validate needs no account and returns every error with its path and a plain-language fix. action=generate needs an account that has paid for the claim (one GSTIN and From/To period; one payment covers both files and all corrections) and returns the file. Amounts may be strings or numbers; dates DD-MM-YYYY; periods MMYYYY. A JSON file made by the official offline utility is accepted as data unchanged. Limits: 8 MB and 10000 rows per file. HTTP 402 means the claim has not been paid for; payment is made on the website.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - action
              - data
              properties:
                action:
                  type: string
                  enum:
                  - validate
                  - generate
                data:
                  $schema: https://json-schema.org/draft/2020-12/schema
                  type: object
                  properties:
                    gstin:
                      type: string
                      pattern: ^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z][Z1-9A-J][0-9A-Z]$
                      description: Applicant GSTIN, 15 characters.
                    fromFp:
                      type: string
                      pattern: ^(0[1-9]|1[0-2])\d{4}$
                      description: First return period of the claim, MMYYYY.
                    toFp:
                      type: string
                      pattern: ^(0[1-9]|1[0-2])\d{4}$
                      description: Last return period of the claim, MMYYYY.
                    filename:
                      type: string
                      pattern: ^[A-Za-z0-9](?:[A-Za-z0-9 ._()-]{0,98}[A-Za-z0-9_()-])?$
                      description: Name of the downloaded file without .json. It is also written inside the file. Use a different name for each part of a split upload.
                    reversals:
                      type: object
                      properties:
                        revCGST:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revSGST:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revIGST:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revCess:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revOthCGST:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revOthSGST:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revOthIGST:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                        revOthCess:
                          type: string
                          pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                      required:
                      - revCGST
                      - revSGST
                      - revIGST
                      - revCess
                      - revOthCGST
                      - revOthSGST
                      - revOthIGST
                      - revOthCess
                      additionalProperties: false
                      description: 'ITC reversals from GSTR-3B. rev*: rules 38, 42 and 43 and section 17(5). revOth*: other reversals, Table 4(B)(2). Enter 0 where there is none. For a split upload, enter reversals only in the last file.'
                    invoices:
                      minItems: 1
                      maxItems: 10000
                      type: array
                      items:
                        type: object
                        properties:
                          typeOfInwardSupply:
                            type: string
                            enum:
                            - Import of Goods
                            - Import of Services
                            - Import of Goods(Supplies from SEZ to DTA)
                            - Import of Services(Supplies from SEZ to DTA)
                            - Inward Supplies from Registered Persons
                            - Inward Supplies liable to Reverse Charge (Registered Persons)
                            - Inward Supplies liable to Reverse Charge (Unregistered Persons)
                            - Inward Supplies from ISD
                          istype:
                            type: string
                            enum:
                            - Invoice/Bill of Entry
                            - Credit Note
                            - Debit Note
                          stin:
                            anyOf:
                            - type: string
                              pattern: ^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z][Z1-9A-J][0-9A-Z]$
                            - type: string
                              const: ''
                            description: Supplier GSTIN. Empty for imports of goods or services and for reverse charge from unregistered persons.
                          snm:
                            type: string
                            minLength: 1
                            maxLength: 100
                            description: Supplier name.
                          inum:
                            type: string
                            pattern: ^[A-Za-z0-9/-]{1,16}$
                            description: Document number. For goods imports, the bill of entry number (3 to 7 digits).
                          idt:
                            type: string
                            pattern: ^\d{2}-\d{2}-\d{4}$
                            description: Document date, DD-MM-YYYY.
                          portCode:
                            anyOf:
                            - type: string
                              pattern: ^[A-Za-z0-9]{6}$
                            - type: string
                              const: ''
                            description: Six-character port code for goods imports; else empty.
                          val:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Document value in INR. Use 0 for ISD documents.
                          catOfInv:
                            type: string
                            enum:
                            - Inputs
                            - Input Services
                            - Capital Goods
                          hsnSac:
                            type: string
                            pattern: ^(?:\d{4}|\d{6}|\d{8})$
                            description: HSN or SAC with 4, 6 or 8 digits.
                          camt:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Central tax. 0 for imports.
                          samt:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: State/UT tax. 0 for imports.
                          iamt:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Integrated tax.
                          cessamt:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Cess.
                          isItcBlocked:
                            type: string
                            enum:
                            - 'Yes'
                            - 'No'
                            - Partially
                            description: Whether ITC is blocked under section 17(5).
                          elgItc:
                            type: string
                            enum:
                            - 'Yes'
                            - 'No'
                            - Partially
                            description: Eligible for ITC.
                          elgItcAmt:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Amount of eligible ITC.
                          inelgItcAmt:
                            type: string
                            pattern: ^(?:0|[1-9]\d{0,14})(?:\.\d{1,2})?$
                            description: Amount of ineligible ITC.
                          returnPeriod2B:
                            type: string
                            pattern: ^(?:(?:0[1-9]|1[0-2])-\d{4})?$
                            description: GSTR-2B period that contains the document, MM-YYYY. Empty for imports of services (including SEZ to DTA) and reverse charge from unregistered persons.
                        required:
                        - typeOfInwardSupply
                        - istype
                        - stin
                        - snm
                        - inum
                        - idt
                        - portCode
                        - val
                        - catOfInv
                        - hsnSac
                        - camt
                        - samt
                        - iamt
                        - cessamt
                        - isItcBlocked
                        - elgItc
                        - elgItcAmt
                        - inelgItcAmt
                        - returnPeriod2B
                        additionalProperties: false
                      description: One row per input category and HSN/SAC. Split an invoice that has more than one.
                  required:
                  - gstin
                  - fromFp
                  - toFp
                  - filename
                  - reversals
                  - invoices
                  additionalProperties: false
      responses:
        '200':
          description: 'For validate: valid, errors, warnings and totals. For generate: the JSON file as an attachment; Content-Disposition gives its name.'
        '401':
          description: generate without an account; WWW-Authenticate gives the OAuth resource metadata
        '402':
          description: The account has not paid for this GSTIN and period. The body includes the claim.
        '413':
          description: Request exceeds 8 MB
        '422':
          description: Entries need correcting; see errors[].path and errors[].message
        '429':
          description: Rate limit reached; wait before retrying
        '503':
          description: Temporarily unavailable
      tags:
      - Generators
components:
  securitySchemes:
    account:
      type: oauth2
      description: OAuth 2.1 authorization code with S256 PKCE. Clients register at /oauth/register. The person signs in with an emailed code. See /.well-known/oauth-authorization-server.
      flows:
        authorizationCode:
          authorizationUrl: https://fastgstrefund.com/oauth/authorize
          tokenUrl: https://fastgstrefund.com/oauth/token
          refreshUrl: https://fastgstrefund.com/oauth/token
          scopes:
            refund:generate: Check records, and create and download files for claims the account has paid for.