Bulk IRN Generation API (1,000/call)

Generate up to 1,000 IRNs in a single API call. Async processing with per-invoice success/error tracking and webhook completion.

Get sandbox keys → View OpenAPI docs Talk to sales

What is the Bulk IRN Generation API (1,000/call)?

The response includes per-invoice success / failure status — successful entries carry the IRN, signed QR, and signed JSON; failures carry the NIC error code and human-readable reason. Partial success is the normal case for large batches and the API surfaces it cleanly.

Quick spec

Code examples

curl Node.jsPythonJava
curl -X POST 'https://apisandbox.whitebooks.in/einvoice/api/v1/irn/generate-bulk' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{ /* payload */ }'
Node.js
const res = await fetch('https://apisandbox.whitebooks.in/einvoice/api/v1/irn/generate-bulk', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + accessToken,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload),
});
const data = await res.json();
Python
import requests

resp = requests.post(
    'https://apisandbox.whitebooks.in/einvoice/api/v1/irn/generate-bulk',
    headers={'Authorization': f'Bearer {access_token}'},
    json=payload,
)
data = resp.json()
Java
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://apisandbox.whitebooks.in/einvoice/api/v1/irn/generate-bulk"))
    .header("Authorization", "Bearer " + accessToken)
    .header("Content-Type", "application/json")
    .post(BodyPublishers.ofString(payload))
    .build();
HttpResponse<String> resp = HttpClient.newHttpClient()
    .send(req, BodyHandlers.ofString());

Integrate in 3 steps

  1. Sign up at accounts.whitebooks.in — sandbox credentials issued instantly, no sales gate.
  2. Make your first call against the sandbox base URL using the code example above. Validate against your local model.
  3. Move to production once your tests pass — switch host to https://api.whitebooks.in/einvoice. Same payload, same response shape.

Frequently asked questions

What's the max batch size?

1,000 invoices per call. Larger batches: split into multiple jobs — tenant tracks them under your dashboard.

How long does a 1,000-invoice job take?

Typical: 30-60 seconds for 1,000 invoices. Webhook delivers the result.

Does the API guarantee atomicity?

No — by NIC design, each invoice gets its own IRN independently. Partial success is the norm. Use the per-invoice status to handle failures.

Is bulk supported on sandbox?

Yes — full feature parity. Use the sandbox to dial in your error-handling before going live.

Explore the full e-Invoice API

This is one endpoint inside the WhiteBooks e-Invoice API suite. See the full documentation — every endpoint, every parameter, every error code.

Open the e-Invoice API page →

Related e-Invoice API endpoints

IRN Generation API → IRN Cancellation API → Signed QR Code Retrieval API → Signed JSON Invoice API →