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/applicationsCreate a new ITIN applicationGET
/v1/applications/:idGet application status and detailsPOST
/v1/applications/:id/documentsUpload identity documentsGET
/v1/applicationsList all applications with filtersPOST
/v1/webhooksConfigure webhook endpointsDELETE
/v1/applications/:idCancel a pending applicationCode 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.