Skip to main content
Version: 1.0.0 (beta)

Your First Smart Services Request

Learn how to make your first call to Smart Services with practical examples.

Example Request: Document Analysis

We will use the AI document analysis service to extract information from an invoice.

1. Preparation

Make sure you have:

  • API credentials configured
  • A test document (PDF or image)
  • Base endpoint: https://tse.smart-api.teamsystem.cloud

2. Document Upload

curl -X POST \
https://tse.smart-api.teamsystem.cloud/v1/documents/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/your/invoice.pdf" \
-F "type=invoice"

Response:

{
"document_id": "doc_123456789",
"status": "uploaded",
"filename": "invoice.pdf",
"size": 245760,
"created_at": "2025-08-06T10:30:00Z"
}

3. Start AI Analysis

curl -X POST \
https://tse.smart-api.teamsystem.cloud/v1/ai/document-analysis \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"document_id": "doc_123456789",
"analysis_type": "invoice_extraction",
"language": "it"
}'

Response:

{
"analysis_id": "analysis_987654321",
"status": "processing",
"estimated_completion": "2025-08-06T10:32:00Z",
"webhook_url": null
}

4. Retrieve Results

curl -X GET \
https://tse.smart-api.teamsystem.cloud/v1/ai/document-analysis/analysis_987654321 \
-H "Authorization: Bearer YOUR_API_KEY"

Complete Response:

{
"analysis_id": "analysis_987654321",
"status": "completed",
"confidence": 0.95,
"extracted_data": {
"invoice_number": "INV-2025-001",
"invoice_date": "2025-08-01",
"supplier": {
"name": "Fornitore Esempio S.r.l.",
"vat_number": "IT12345678901",
"address": "Via Roma 123, 20100 Milano"
},
"total_amount": 1250.00,
"vat_amount": 250.00,
"net_amount": 1000.00,
"line_items": [
{
"description": "Servizio consulenza",
"quantity": 10,
"unit_price": 100.00,
"total": 1000.00
]
},
"processing_time": "2.3s"
}

JavaScript Example

const SmartServicesClient = require('@teamsystem/smart-services-sdk');

const client = new SmartServicesClient({
apiKey: 'YOUR_API_KEY',
environment: 'production' // or 'sandbox'
});

async function analyzeInvoice() {
try {
// 1. Upload document
const uploadResult = await client.documents.upload({
file: './invoice.pdf',
type: 'invoice'
});

console.log('Document uploaded:', uploadResult.document_id);

// 2. Start analysis
const analysis = await client.ai.analyzeDocument({
documentId: uploadResult.document_id,
analysisType: 'invoice_extraction',
language: 'it'
});

console.log('Analysis started:', analysis.analysis_id);

// 3. Wait for results
const result = await client.ai.waitForAnalysis(analysis.analysis_id);

console.log('Extracted data:', result.extracted_data);

} catch (error) {
console.error('Error:', error.message);
}
}

analyzeInvoice();

Error Handling

Common Error Codes

CodeMeaningSolution
401UnauthorizedCheck API credentials
403Access deniedCheck your account permissions
429Too many requestsImplement retry with backoff
500Server errorTry again later or contact support

Error Handling Example

try {
const result = await client.ai.analyzeDocument(params);
} catch (error) {
switch (error.status) {
case 401:
console.error('Invalid credentials');
break;
case 429:
console.log('Rate limit reached, retrying in 60s');
setTimeout(() => analyzeDocument(), 60000);
break;
default:
console.error('Error:', error.message);
}
}

Next Steps

Now that you've made your first request: