API Documentation
Complete reference for the Taxu REST API. Build tax intelligence into your application with our developer-first platform.
Authentication
Authenticate your API requests using your secret API key in the Authorization header.
curl https://api.taxu.ai/v1/returns \
-H "Authorization: Bearer sk_live_abc123xyz"Important: Keep your API keys secure. Never expose them in client-side code or public repositories.
Quickstart
Get started with a simple refund estimate in under 5 minutes.
1. Install the SDK
npm install @taxu/taxu-js
# or
pip install taxu-python # Coming soon2. Make your first request
import { TaxuClient } from '@taxu/taxu-js';
const taxu = new TaxuClient('sk_live_abc123xyz');
const estimate = await taxu.refunds.estimate({
income: 75000,
filingStatus: 'single',
deductions: ['standard']
});
console.log(estimate.refundAmount); // 2,450New: JavaScript SDK is now available on npm. View documentation
Tax Filing
Submit tax forms including 1099-NEC, W-2, and Form 941 directly to the IRS via TaxBandits.
/api/filing/submit-1099Submit 1099-NEC Form
File 1099-NEC forms for contractors
Request
{
"businessName": "Acme Corp",
"ein": "12-3456789",
"recipients": [{
"name": "John Contractor",
"ssn": "123-45-6789",
"address": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94102",
"compensation": 5000.00
}]
}Response
{
"success": true,
"submissionId": "sub_abc123",
"status": "pending",
"filingId": "filing_xyz789"
}/api/filing/submit-w2Submit W-2 Form
File W-2 forms for employees
Request
{
"employer": {
"name": "Acme Corp",
"ein": "12-3456789",
"address": "456 Business Ave"
},
"employee": {
"name": "Jane Employee",
"ssn": "987-65-4321",
"wages": 75000.00,
"federalWithheld": 8500.00
}
}Response
{
"success": true,
"submissionId": "sub_def456",
"status": "accepted"
}/api/filing/statusGet Filing Status
Check the status of a submitted filing
Response
{
"filingId": "filing_xyz789",
"status": "accepted",
"submittedAt": "2025-01-15T10:30:00Z",
"acceptedAt": "2025-01-15T10:35:00Z",
"confirmationNumber": "IRS-2025-ABC123"
}Documents
Upload and extract data from tax documents using AI-powered OCR.
/api/filing/upload-documentUpload Document
Upload W-2, 1099, or receipt documents
Request
{
"file": "base64_encoded_file",
"filename": "w2-2024.pdf",
"type": "w2"
}Response
{
"success": true,
"url": "https://blob.vercel-storage.com/...",
"documentId": "doc_abc123"
}/api/filing/extract-documentExtract Document Data
Use AI to extract structured data from uploaded documents
Request
{
"documentUrl": "https://blob.vercel-storage.com/...",
"documentType": "w2"
}Response
{
"success": true,
"extractedData": {
"employer": "Acme Corp",
"ein": "12-3456789",
"employee": "John Doe",
"ssn": "123-45-6789",
"wages": 75000.00,
"federalWithheld": 8500.00
}
}QuickBooks Integration
Connect to QuickBooks and sync transaction data for tax categorization.
/api/quickbooks/connectConnect QuickBooks
Initiate OAuth flow to connect QuickBooks account
Response
{
"authUrl": "https://appcenter.intuit.com/connect/oauth2?..."
}/api/quickbooks/syncSync Transactions
Pull transactions from QuickBooks and categorize for taxes
Response
{
"success": true,
"transactionCount": 247,
"categorized": 245,
"needsReview": 2
}Webhooks
Receive real-time notifications when events occur in your Taxu account.
Setting up webhooks
- Create a webhook endpoint on your server
- Register the endpoint URL in your Taxu dashboard
- Verify webhook signatures for security
- Handle events and respond with 200 OK
// Example webhook handler
app.post('/webhooks/taxu', (req, res) => {
const event = req.body;
switch(event.type) {
case 'return.filed':
console.log('Return filed:', event.data.returnId);
break;
case 'refund.issued':
console.log('Refund issued:', event.data.amount);
break;
}
res.status(200).send('OK');
});Rate Limits
API requests are rate limited based on your plan tier.
| Plan | Rate Limit | Burst |
|---|---|---|
| Developer | 100 req/min | 200 req/min |
| Startup | 1,000 req/min | 2,000 req/min |
| Business | 10,000 req/min | 20,000 req/min |
| Enterprise | Custom | Custom |