Quote versus invoice
Model input
Document says QUOTATION, valid for 30 days, and contains estimated prices; no payment due.
Identify incoming document types, flag incomplete submissions, and extract invoice and purchase-order fields.
Choose an example
Identify incoming document types and route incomplete submissions for review.
Step 01
Upload sample data, define your output schema, and provide feedback on the hardest cases.
Document type supported by its contents.
Whether the source is legible enough to classify.
Whether missing or unreadable information prevents reliable intake.
Identify incoming document types and route incomplete submissions for review.
Document says QUOTATION, valid for 30 days, and contains estimated prices; no payment due.
Sutro can now generalize the rules based on your feedback.
Step 02
Compare quality and cost on your examples, then choose a model or use Sutro’s default.
Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.
Illustrative sweep · select Value or Best to use that model in your function.
Step 03
Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.
import sutro as so
input_data = {
"text": "Document says QUOTATION, valid for 30 days, and contains estimated prices; no payment due."
}
result = so.run_function(
"document-classification-intake",
input_data,
)curl --fail-with-body -X POST "${SUTRO_API_URL%/}/v1/functions/document-classification-intake/run" \
-H "Authorization: Key $SUTRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"text": "Document says QUOTATION, valid for 30 days, and contains estimated prices; no payment due."
}
}'import sutro as so
job_id = so.batch_run_function(
name="document-classification-intake",
data="document_classification_intake.csv",
)
results = so.await_job_completion(job_id)curl --fail-with-body -X POST "${SUTRO_API_URL%/}/v1/batch-inference" \
-H "Authorization: Key $SUTRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "document-classification-intake",
"inputs": [
{
"text": "Document says QUOTATION, valid for 30 days, and contains estimated prices; no payment due."
}
]
}'Step 01
Upload sample data, define your output schema, and provide feedback on the hardest cases.
Date the invoice was issued. Use YYYY-MM-DD; not provided if unknown.
Date payment is due. Use YYYY-MM-DD; not provided if unknown.
Final invoice total including stated tax.
Three-letter currency code, such as USD, EUR, or GBP.
Explicit purchase order reference; never substitute the invoice ID. Not provided when absent from the source.
Extract invoice and purchase-order fields while preserving their meaning.
Invoice date: 2026-10-01. Due date: 2026-10-31. Invoice INV-104.
Sutro can now generalize the rules based on your feedback.
Step 02
Compare quality and cost on your examples, then choose a model or use Sutro’s default.
Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.
Illustrative sweep · select Value or Best to use that model in your function.
Step 03
Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.
import sutro as so
input_data = {
"text": "Invoice date: 2026-10-01. Due date: 2026-10-31. Invoice INV-104."
}
result = so.run_function(
"invoice-purchase-order-extraction",
input_data,
)curl --fail-with-body -X POST "${SUTRO_API_URL%/}/v1/functions/invoice-purchase-order-extraction/run" \
-H "Authorization: Key $SUTRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"text": "Invoice date: 2026-10-01. Due date: 2026-10-31. Invoice INV-104."
}
}'import sutro as so
job_id = so.batch_run_function(
name="invoice-purchase-order-extraction",
data="invoice_purchase_order_extraction.csv",
)
results = so.await_job_completion(job_id)curl --fail-with-body -X POST "${SUTRO_API_URL%/}/v1/batch-inference" \
-H "Authorization: Key $SUTRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "invoice-purchase-order-extraction",
"inputs": [
{
"text": "Invoice date: 2026-10-01. Due date: 2026-10-31. Invoice INV-104."
}
]
}'