API Documentation

ITIN.io API

Integrate ITIN services into your application with our REST API. Create applications, upload documents, and track status programmatically.

API Key Authentication

Secure API keys with test and live modes. Rotate keys without downtime.

Real-time Webhooks

Receive instant notifications when application status changes.

Sandbox Environment

Test your integration with our sandbox before going live.

SDKs & Libraries

Official SDKs for JavaScript, Python, and more. Community libraries available.

API Endpoints

POST/v1/applications
GET/v1/applications/:id
POST/v1/applications/:id/documents
GET/v1/applications
POST/v1/webhooks
DELETE/v1/applications/:id

Code Examples

Get started quickly with examples in your preferred language.

cURL
curl -X POST https://api.itin.io/v1/applications \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "applicant": {
      "first_name": "John",
      "last_name": "Smith",
      "date_of_birth": "1990-01-15",
      "country_of_citizenship": "GB",
      "reason": "tax_filing"
    },
    "callback_url": "https://yourapp.com/webhooks/itin"
  }'
JavaScript
import { ITINClient } from '@itin-io/sdk';

const client = new ITINClient('sk_live_...');

// Create application
const app = await client.applications.create({
  applicant: {
    first_name: 'John',
    last_name: 'Smith',
    date_of_birth: '1990-01-15',
    country_of_citizenship: 'GB',
    reason: 'tax_filing',
  },
  callback_url: 'https://yourapp.com/webhooks/itin',
});

console.log(app.id);     // "itin_abc123"
console.log(app.status); // "pending_documents"
Python
from itin_io import Client

client = Client(api_key="sk_live_...")

# Create application
app = client.applications.create(
    applicant={
        "first_name": "John",
        "last_name": "Smith",
        "date_of_birth": "1990-01-15",
        "country_of_citizenship": "GB",
        "reason": "tax_filing",
    },
    callback_url="https://yourapp.com/webhooks/itin",
)

print(app.id)     # "itin_abc123"
print(app.status) # "pending_documents"
Webhook Payload
// Webhook payload example
{
  "event": "application.status_changed",
  "data": {
    "application_id": "itin_abc123",
    "status": "submitted_to_irs",
    "previous_status": "documents_verified",
    "updated_at": "2024-03-15T10:30:00Z"
  }
}

Ready to integrate?

Request API access and start building your ITIN integration today. Our team will help you get set up.