Early accessWe're onboarding teams in batches. The sandbox and docs are open to everyone. Request access →

Skip to content
APIserver.in

Procurement & AP

Onboard a vendor in one call, not one week.

Take a GSTIN from the vendor form. Get legal name, GST status, filing behaviour, PAN, company master and directors back before they hit submit.

The problem

  • Vendor forms collect a GSTIN, then someone checks it by hand on three portals.
  • Inactive or non-filing suppliers slip through and break ITC later.
  • Each check comes from a different vendor with a different response format.

The flow

  1. 1Validate as they typeFormat, state code and checksum run locally — typos never reach a source and never cost anything.
  2. 2One Business360 callGST, returns, PAN, company and directors in parallel, with fallback across sources.
  3. 3Decide on risk flagsAuto-approve low risk. Route GST_NOT_ACTIVE or RETURNS_NOT_FILED to a human.
curl https://api.apiserver.in/v1/business360 \
  -H "Authorization: Bearer as_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"gstin":"24AAHCS9156P1ZL","include":["gst","gst_returns","pan","company","directors"]}'
const res = await fetch("https://api.apiserver.in/v1/business360", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APISERVER_KEY ?? "as_test_YOUR_KEY"}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "gstin": "24AAHCS9156P1ZL",
    "include": [
      "gst",
      "gst_returns",
      "pan",
      "company",
      "directors"
    ]
  }),
});

const { success, data, meta, error } = await res.json();
console.log(meta.charged, meta.amount_inr); // failed calls are never charged
import os, requests

res = requests.post(
    "https://api.apiserver.in/v1/business360",
    headers={
        "Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
    },
    json={
        "gstin": "24AAHCS9156P1ZL",
        "include": ["gst", "gst_returns", "pan", "company", "directors"],
    },
    timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])
<?php
$ch = curl_init('https://api.apiserver.in/v1/business360');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . (getenv('APISERVER_KEY') ?: 'as_test_YOUR_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'gstin' => '24AAHCS9156P1ZL',
        'include' => ['gst', 'gst_returns', 'pan', 'company', 'directors'],
    ]),
]);
$body = json_decode(curl_exec($ch), true);
echo $body['meta']['charged'] ? 'charged' : 'not charged';

This call

₹10.00

incl. GST · failed checks ₹0

Vendor master records that are verified on entry, with the evidence attached as one JSON document.

Your first verified business is a few minutes away.

No sales call. No minimum. ₹0 for failed calls.