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

Skip to content
APIserver.in

Marketplaces

Verify sellers at signup without adding a step.

Run KYB in the background while the seller fills the rest of the form. Pay ₹0 for the ones that fail validation or aren't found.

The problem

  • Seller KYB adds days to activation and drops conversion.
  • Minimum-commitment vendors make you pre-pay for volume you don't have yet.
  • Fraudulent sellers reuse a real GSTIN with a different name.

The flow

  1. 1Capture GSTIN or PANSmart input accepts either; we detect which one it is.
  2. 2Name-match the PANPAN Verify returns a 0–1 match score against the seller's display name.
  3. 3Activate or reviewUse Business360 risk level to gate payouts, not signups.
curl https://api.apiserver.in/v1/pan/verify \
  -H "Authorization: Bearer as_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pan":"AAJCK4821M","name":"Kaveri Textiles Pvt Ltd"}'
const res = await fetch("https://api.apiserver.in/v1/pan/verify", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APISERVER_KEY ?? "as_test_YOUR_KEY"}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "pan": "AAJCK4821M",
    "name": "Kaveri Textiles Pvt Ltd"
  }),
});

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/pan/verify",
    headers={
        "Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
    },
    json={
        "pan": "AAJCK4821M",
        "name": "Kaveri Textiles Pvt Ltd",
    },
    timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])
<?php
$ch = curl_init('https://api.apiserver.in/v1/pan/verify');
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([
        'pan' => 'AAJCK4821M',
        'name' => 'Kaveri Textiles Pvt Ltd',
    ]),
]);
$body = json_decode(curl_exec($ch), true);
echo $body['meta']['charged'] ? 'charged' : 'not charged';

This call

₹2.00

incl. GST · failed checks ₹0

Faster seller activation with a name-matched PAN and every GSTIN the seller operates under.

Your first verified business is a few minutes away.

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