Finpass API Collection
  1. GST Analyser
  • Introduction
  • Bureau
    • Commercial Credit Report
      POST
    • Multi-Bureau Fetch
      POST
  • Bank Statement Analyser
    • Batch Upload Statements
      POST
    • Batch Result
      GET
    • Upload Statement
      POST
    • Statement Result
      GET
  • Account Aggregator
    • Initialize
      POST
    • Fetch JSON Report
      POST
    • Fetch PDF Report
      POST
    • Refresh Data
      POST
  • Corporate
    • CIN Lookup
      POST
    • LLPIN
      POST
    • PAN Lookup
      POST
    • Company Autocomplete
      POST
  • EPFO
    • Fetch EPFO Data by Mobile Number
      POST
    • EPFO-CRIF Combined Report
      POST
  • ITR Analyzer
    • Initialize
      POST
    • Status
      POST
    • ITR Analyzer — Get Full Data
      POST
    • Create ITR Login Client
      POST
    • Check Credential
      POST
    • Generate 2FA
      POST
    • Submit 2FA OTP
      POST
    • Initiate ITR Password Reset
      POST
    • Confirm Password Reset (Submit OTP)
      POST
  • AA-BSA Analyzer
    • Initialize
    • Status
    • AA BSA — Statement Result
    • AA BSA — Analysis JSON
  • GST Analyser
    • Analyze
      POST
    • Status
      POST
    • GST Data
      POST
  • Hosted Collection
    • Create ITR Collection Session
    • Create GST Collection Session
  1. GST Analyser

Status

POST
/api/v1/services/gst-analyzer/status

GST Analyzer Job Status#

Endpoint Overview
POST /api/v1/services/gst-analyzer/status

Description#

The GST Analyzer Status API returns the current processing state of an asynchronous GST analysis job initiated via the /analyze endpoint. Clients should poll this endpoint at a reasonable cadence (typically every 5–10 seconds) until the job reaches a terminal state — either completed or failed — and then proceed to fetch the full analysis payload using the data endpoint.
The response exposes granular progress information including the current processing step, completed steps, failed steps, and (once available) the extracted GSTIN and business name. This enables clients to render real-time progress UIs and surface meaningful status to end users.
Key Benefits
Granular Progress Tracking — Inspect current_step and steps_completed to drive progress indicators.
Early Visibility into Job Outcome — Detect failures and the failing step before fetching final data.
Lightweight Polling — Lean response payload designed for frequent status checks.
Billing-Friendly — Polling is not billable; billing is triggered only on first successful completed data fetch.

Use Cases#

Lending & NBFC
Accounting & Audit
B2B Marketplaces
Drive real-time loan application status screens during borrower onboarding.
Trigger downstream underwriting workflows the moment a GST analysis completes.
Alert operations teams when long-running jobs stall or fail at a specific step.

Technical Implementation#

1
Authentication
All API requests require authentication using API key headers. Authentication follows these steps:
1.
Obtain API Credentials: Register with Finpass to receive your X-API-KEY and X-API-Secret.
2.
Include in Requests: Add both headers to every request — X-API-KEY: <your_key> and X-API-Secret: <your_secret>.
3.
Use Environment-Specific Credentials: Use separate keys for sandbox and production.
The production environment base URL is:
Production: https://api.finpass.ai
Never expose API credentials in client-side code; always proxy requests through your backend.
2
Request Parameters

Request Headers#

HeaderRequiredDescription
X-API-KEYYesYour Finpass-issued API key.
X-API-SecretYesYour Finpass-issued API secret paired with the key.
Content-TypeYesMust be set to application/json.

Request Body#

ParameterTypeRequiredDescription
doc_idstringYesThe unique job identifier returned by the /analyze endpoint.

Example Request#

{
  "doc_id": "GST-xxxxxxxxxxxxxxxx"
}
3
Process Response

Response Parameters#

ParameterTypeDescription
successbooleanIndicates whether the status request succeeded.
dataobjectContainer holding job status fields.
data.doc_idstringThe GST analysis job identifier.
data.job_idstringUpstream job identifier (internal reference).
data.statusstringCurrent job status. One of: pending, processing, completed, failed.
data.gstinstring | nullExtracted GSTIN once profile fetch completes; null before then.
data.business_namestring | nullExtracted business name once profile fetch completes; null before then.
data.current_stepstringThe processing step currently in progress (e.g., fetching_returns).
data.steps_completedarray of stringsList of processing steps that have completed successfully.
data.steps_failedarray of stringsList of processing steps that failed.
data.error_messagestring | nullError description if the job failed; otherwise null.
data.financial_yearsarray of stringsFinancial years included in the analysis once known.
data.created_atstringISO timestamp when the job was created.
data.updated_atstringISO timestamp of the last status update.
data.completed_atstring | nullISO timestamp when the job completed; null if still running.

Example Successful Response#

{
  "success": true,
  "data": {
    "doc_id": "GST-xxxxxxxxxxxxxxxx",
    "job_id": "upstream-job-id",
    "status": "processing",
    "gstin": null,
    "business_name": null,
    "current_step": "fetching_returns",
    "steps_completed": ["login", "profile"],
    "steps_failed": [],
    "error_message": null,
    "financial_years": [],
    "created_at": "...",
    "updated_at": "...",
    "completed_at": null
  }
}

Possible Error Responses#

Document Not Found
Unauthorized
Validation Error
Rate Limited
{
  "success": false,
  "error": {
    "code": "DOC_NOT_FOUND",
    "message": "No analysis job exists for the supplied doc_id."
  }
}
Returned when the supplied doc_id does not exist or belongs to a different tenant. Verify that the doc_id was captured correctly from the /analyze response.

Integration Best Practices#

Security Recommendations
Always invoke this endpoint over HTTPS and validate TLS certificates.
Treat X-API-KEY and X-API-Secret as highly sensitive secrets; rotate them periodically.
Never expose the doc_id to untrusted clients; it should only be used in trusted server-to-server contexts.
Implement IP allowlisting on your backend for outbound calls to Finpass where feasible.
Use separate API credentials for sandbox and production environments.
User Experience Guidelines
Poll at a sensible interval (5–10 seconds is typical); avoid aggressive sub-second polling.
Drive a progress bar or step indicator from current_step and steps_completed to keep users informed.
When webhook_url is configured during initiation, prefer webhook callbacks over polling.
On failed status, surface a clear, user-friendly explanation derived from error_message and the failing step.
Implement a maximum polling duration with a graceful timeout if a job stalls beyond expected SLA.

Code Samples#

cURL
Python
Node.js
Related APIs
Initiate GST Analysis — Starts the asynchronous job and returns the doc_id required by this endpoint.
GST Analyzer Data — Retrieves the full analysis payload once this endpoint reports status: "completed".
GSTIN Verification — Lightweight, synchronous endpoint for basic GSTIN validation without credentials.
Compliance and Legal Considerations
While this endpoint does not handle GST portal credentials directly, it returns identifying information about the taxpayer (GSTIN, business name) once available. Treat all returned data as sensitive personal/business information under the Digital Personal Data Protection Act, 2023 (DPDP Act). Restrict access to authorized personnel only, log access for audit purposes, and never persist the response beyond what is required to complete the user's workflow.

Request

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200Success
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.finpass.ai/api/v1/services/gst-analyzer/status' \
--header 'x-api-key;' \
--header 'x-api-secret;' \
--header 'Content-Type: application/json' \
--data '{
      "doc_id": "GST-xxxxxxxxxxxxxxxx"
    }'
Response Response Example
{}
Previous
Analyze
Next
GST Data
Built with