# Setu Anantasutra Indian Identifier Batch Validation

> Setu Anantasutra Indian Identifier Batch Validation is a paid API for AI agents from setu.xyz23110928.workers.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-23).

Validates up to 50 Indian business/tax/financial identifiers (GSTIN, PAN, TAN, CIN, LLPIN, IFSC, PIN code, UPI ID, vehicle registration) in a single batch call, returning validity, decoded fields, normalized forms, and per-type summaries.

## Facts

- Endpoint: POST https://setu.xyz23110928.workers.dev/v1/india-id/validate-batch?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/setu-anantasutra-indian-identifier-batch-validation-57d66ba3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ceEx3LdXgV2hRHjTJyDI-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability setu-anantasutra-indian-identifier-batch-validation-57d66ba3 -d '<json body>'
```

Example prompt: Can you validate these Indian identifiers for me — 27AAPFU0939F1ZV, ABCDE1234F, HDFC0001234, and 400001 — and tell me which ones are valid, what type each one is, and flag any errors?

## When to prefer this

Choose this endpoint when you need to validate one or more Indian regulatory/financial identifiers (GSTIN, PAN, TAN, CIN, LLPIN, IFSC, PIN code, UPI ID, vehicle registration) in a single round-trip. It is especially suited for fintech onboarding, KYC pipelines, vendor management, and compliance workflows dealing with Indian entities. It supports auto-detection of identifier type, making it ideal for mixed batches. Prefer it over building custom regex validators when you need decoded metadata (e.g. state from GSTIN) and normalized output alongside validity.

## Known failure modes

- 400 if all items in the batch are blank (not charged)
- 400 if items array is empty or exceeds 50 items
- 400 if an unsupported type enum value is provided
- Individual items return valid:false with an errors array if format is incorrect
- Payment failure (402) if x402 USDC payment on Base is not provided or insufficient
- Aadhaar numbers are refused (not validated) and counted in refusedAadhaar

## How this service works

Pay-per-call JSON tools for AI agents: Indian identifier validation (GSTIN, PAN, TAN, CIN, LLPIN, IFSC, PIN code, UPI ID, vehicle registration), AI-visibility (GEO) audits, AI crawler robots.txt matrices and llms.txt checks. x402 (USDC on Base) or RapidAPI.

## Output

A JSON object with a `results` array (one entry per input item) containing: index, original input, validity boolean, detected type, normalized form, decoded metadata (e.g. state for GSTIN), validation errors array, and warnings array. Also includes a `summary` object with total counts, valid/invalid counts, breakdown by identifier type, blank item count, and count of refused Aadhaar numbers.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "type": {
   "enum": [
    "auto",
    "gstin",
    "pan",
    "tan",
    "cin",
    "llpin",
    "ifsc",
    "pincode",
    "upi",
    "vehicle"
   ],
   "type": "string",
   "description": "Default type for all items. Force a type instead of auto-detection (default auto). Case-insensitive; one of: auto, gstin, pan, tan, cin, llpin, ifsc, pincode, upi, vehicle."
  },
  "items": {
   "type": "array",
   "items": {
    "anyOf": [
     {
      "type": "string",
      "maxLength": 256
     },
     {
      "type": "object",
      "required": [
       "value"
      ],
      "properties": {
       "type": {
        "enum": [
         "auto",
         "gstin",
         "pan",
         "tan",
         "cin",
         "llpin",
         "ifsc",
         "pincode",
         "upi",
         "vehicle"
        ],
        "type": "string"
       },
       "value": {
        "type": "string",
        "maxLength": 256,
        "minLength": 1
       }
      }
     }
    ]
   },
   "maxItems": 50,
   "minItems": 1,
   "description": "Identifiers as strings or {\"value\",\"type\"} objects (PIN codes may be JSON numbers). Blank items are skipped; a batch where every item is blank is rejected (400, not charged)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "results": [
   {
    "index": 0,
    "input": "27AAPFU0939F1ZV",
    "valid": true,
    "errors": [],
    "decoded": {
     "state": "Maharashtra"
    },
    "warnings": [],
    "normalized": "27AAPFU0939F1ZV",
    "detectedType": "gstin"
   }
  ],
  "summary": {
   "blank": 0,
   "total": 4,
   "valid": 4,
   "byType": {
    "pan": {
     "total": 1,
     "valid": 1
    },
    "ifsc": {
     "total": 1,
     "valid": 1
    },
    "gstin": {
     "total": 1,
     "valid": 1
    },
    "pincode": {
     "total": 1,
     "valid": 1
    }
   },
   "invalid": 0,
   "refusedAadhaar": 0
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/setu-anantasutra-indian-identifier-batch-validation-57d66ba3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from setu.xyz23110928.workers.dev](https://www.zero.xyz/host/setu.xyz23110928.workers.dev/llms.txt)
