IRP (Invoice Registration Portal) API Integration

Direct integration with the Invoice Registration Portal (IRP) operated by NIC. IRN generation, signed JSON retrieval, cancellation lifecycle.

Get sandbox keys → View OpenAPI docs Talk to sales

What is the IRP (Invoice Registration Portal) API Integration?

For developers, IRP integration is the heart of e-Invoice flow — generate IRN, retrieve signed artefacts, handle cancellations within 24h window. The WhiteBooks API abstracts away IRP's session management, retry logic, and schema validation so your code just deals with clean REST + JSON.

Quick spec

Code examples

curl Node.jsPythonJava
curl -X POST 'https://apisandbox.whitebooks.in/einvoice/api/v1/irn/generate' \
  -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', {
  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',
    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"))
    .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

Do I need a separate IRP account?

No — WhiteBooks holds the IRP API access. Your WhiteBooks credentials suffice.

How does IRP handle high concurrency?

IRP rate-limits per GSTIN. WhiteBooks adds a queueing layer that serializes per-GSTIN traffic to stay within IRP limits.

What's the IRP uptime?

IRP publishes ~99.9% uptime. WhiteBooks adds replay queueing to deliver ~99.99% effective uptime to your application.

Can I check IRP status?

GET /api/v1/health returns IRP upstream status along with WhiteBooks layer health.

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 → Bulk IRN Generation API (1,000/call) → Signed QR Code Retrieval API →