API SCHEMAS

API Request & Response Contracts

Prefiler operates as a stateless backend controller. Integrating systems can dynamically fetch supported jurisdictions, pack versions, validation statuses, category IDs, display labels, and required evidence.

1. Dynamic Capability Discovery Contract (`action: "discover"`)

Integrators query this headless endpoint to retrieve localized options dynamically. UI labels are derived from this payload, separating regional rule-packs from public identifiers.

{
  "action": "discover",
  "engine_version": "standalone-analysis-engine/v1",
  "supported_jurisdictions": {
    "IN": {
      "name": "India",
      "pack_version": "v3.1-in",
      "validation_status": "verified",
      "categories": [
        { "id": "general", "label": "General Ledger Assessment" },
        { "id": "itr-individual", "label": "Individual Income Tax" },
        { "id": "gstr-1", "label": "GSTR-1 Sales Return" }
      ],
      "required_evidence": [
        { "id": "bank_statement", "label": "Bank Statement", "description": "Digitally generated or scanned PDF." },
        { "id": "form_26as", "label": "Form 26AS Statement", "description": "TDS tax credit ledger." }
      ]
    }
  }
}

2. Ingestion Request Payload (`action: "start"`)

Submit raw transactions and client metadata context mapped to selected canonical category keys.

{
  "action": "start",
  "jurisdiction": "IN | AE | GB | SG | AU",
  "category": "itr-individual | vat201 | mtd-vat | cit-form-cs | bas-gst",
  "structured_transactions": [
    {
      "source_id": "doc-uuid-1",
      "date": "2026-04-01",
      "narration": "UPI Salary ACME",
      "debit": 0,
      "credit": 150000,
      "balance": 150000,
      "row_confidence": 0.98
    }
  ],
  "client_context": {
    "account_type": "individual",
    "filing_period": "FY 2025-26"
  }
}

3. Analysis Response Payload

Returns the auditable evaluation. Field-level provenance traces raw values and extraction methods directly.

{
  "analysis_id": "analysis-uuid-1",
  "status": "completed | clarifying",
  "jurisdiction": "IN",
  "ruleset_version": "v3.1-in",
  "summary": {
    "risk_score": 1.25,
    "risk_level": "low",
    "overview": "Synthesized semantic summary..."
  },
  "canonical_analysis": {
    "case_id": "case-uuid",
    "accounts": [
      {
        "id": "acc-1",
        "reconciliation_status": "fully_reconciled",
        "reconstructed_closing_paise": 15000000
      }
    ],
    "transactions": [
      {
        "id": "tx-1",
        "amount_paise": 15000000,
        "direction": "credit",
        "provenance": [
          {
            "document_id": "doc-uuid-1",
            "page_number": 1,
            "location_hint": "Row 2, Cols 1-5",
            "extractor_method": "deterministic_pdf_text_layer",
            "raw_value": "150000"
          }
        ]
      }
    ]
  }
}

Stateless Embedding Principles

These JSON structures represent the complete decoupled contract between the host ERP ledger and our isolated intelligence core. We keep the schema completely sanitized of any database persistency indexes, keys, or security session details.

By integrating via these contracts, you can maintain your own custom chart of accounts, database rules, and customer profiles, using Prefiler strictly as an on-demand compliance validation server.