azure-doc-invoice

Extract invoice fields, totals, vendors, and line items.

API IDazure-doc-invoice
View setup
View usage

Overview

Input
An invoice document or image.
Output
Invoice fields and line items with available confidence data.
Providers
Azure AI Services
Latest operational check
Healthy
API compatibility
  • Primex Document Analysis API
Recommended for
  • Accounts payable
  • Invoice ingestion
Supported features
  • OCR
  • Typed fields
  • Line items

Make your first request

View full setup
# Requires curl and jq.
set -euo pipefail

API_KEY="YOUR_API_KEY"
GATEWAY='https://gateway.primexos.com'
FILE_PATH='document.pdf'
CONTENT_TYPE='application/pdf'
BYTE_SIZE=$(wc -c < "$FILE_PATH" | tr -d '[:space:]')

AUTHORIZATION=$(curl --fail-with-body -sS "$GATEWAY/v1/primex/files/upload-authorizations" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"purpose\":\"DOCUMENT_INPUT\",\"content_type\":\"$CONTENT_TYPE\",\"byte_size\":$BYTE_SIZE}")

UPLOAD_URL=$(printf '%s' "$AUTHORIZATION" | jq -r '.upload_url')
UPLOAD_METHOD=$(printf '%s' "$AUTHORIZATION" | jq -r '.method')
BLOB_TYPE=$(printf '%s' "$AUTHORIZATION" | jq -r '.headers["x-ms-blob-type"]')
UPLOAD_CONTENT_TYPE=$(printf '%s' "$AUTHORIZATION" | jq -r '.headers["Content-Type"]')
FILE_ID=$(printf '%s' "$AUTHORIZATION" | jq -r '.file_id')

curl --fail-with-body -sS -X "$UPLOAD_METHOD" "$UPLOAD_URL" \
  -H "x-ms-blob-type: $BLOB_TYPE" \
  -H "Content-Type: $UPLOAD_CONTENT_TYPE" \
  --data-binary "@$FILE_PATH"

FINALIZED=$(curl --fail-with-body -sS -X POST "$GATEWAY/v1/primex/files/$FILE_ID/finalize" \
  -H "Authorization: Bearer $API_KEY")
FILE_ID=$(printf '%s' "$FINALIZED" | jq -r '.file_id')

SERVICE_PAYLOAD='{"model":"azure-doc-invoice","file_id":"__PRIMEX_PRODUCTION_FILE_ID__"}'
SERVICE_PAYLOAD=$(printf '%s' "$SERVICE_PAYLOAD" | jq --arg file_id "$FILE_ID"   'walk(if type == "object" and .file_id? == "__PRIMEX_PRODUCTION_FILE_ID__" then .file_id = $file_id else . end)')

curl --fail-with-body "$GATEWAY/v1/documents/analyze" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d "$SERVICE_PAYLOAD"

Executing this request uses your account’s API credits.

Sample input → output

Inputinvoice.pdf
Output preview
pages
Detected page count
documents[].fields
Vendor, totals, dates, and line items
tables
Extracted table structures

Simplified preview based on the published service response contract.