Skip to content

Orders — status & files

API reference

Read processing status and the extracted purchase order, list orders, download files. Guide: Polling & notifications · Order lifecycle.

Get order status and extracted data

GET/order_status/{request_id}integration key

The current lifecycle status of an order plus, once processing finished, the extracted purchase order in result. Also carries erp_ref after a successful ERP send, last_error / retry_count / next_retry_at for transient failures, and the email_group_id / order_label when the order came from a split e-mail.

Parameters

NameInTypeRequiredDescription
request_idpathstringyesThe order's id (UUID) as returned by the upload endpoints

Responses

StatusDescriptionBody
200Order statusOrderStatus
400Invalid request (malformed UUID, unsupported file, …)ErrorResponse
401Missing or invalid API keyErrorResponse
404Resource not foundErrorResponse
422Validation ErrorHTTPValidationError
bash
curl -X GET "https://acme.aiotic.ai/order_status/<request_id>" -H "X-API-Key: $AIOTIC_API_KEY"
python
status = client.orders.get(request_id)
status.status, status.result, status.erp_ref
json
{
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "PROCESSED",
  "timestamp": "2026-03-14T10:30:00",
  "attachments": {
    "PO-4711.pdf": {
      "size": 125840,
      "mime_type": "application/pdf"
    }
  },
  "metadata": {
    "source": "api",
    "my_reference": "TICKET-8812"
  },
  "result": {
    "order_number": "PO-4711",
    "order_date": "2026-03-14",
    "delivery_date": "2026-03-21",
    "currency": "EUR",
    "total_price": 123.4,
    "supplier": {
      "company": "Acme Supplies BV",
      "contact_person": null,
      "email": null,
      "address": {
        "street": "Industrieweg 5",
        "postal_code": "1234 AB",
        "city": "Amsterdam",
        "country": "NL"
      }
    },
    "customer": {
      "customer_id": "58931",
      "company": "LUMITECH INSTALLATIES",
      "contact_person": "J. de Boer",
      "email": "info@lumitech.example",
      "phone": null,
      "branch": null,
      "vat_id": "NL001234567B01",
      "iban": null,
      "bic": null,
      "address": {
        "street": "Ambachtsweg 12",
        "postal_code": "7327 AA",
        "city": "Apeldoorn",
        "country": "NL"
      }
    },
    "shipping_details": null,
    "items": [
      {
        "article_number": "PROD-001",
        "customer_item_number": "LT-ART-001",
        "description": "LED Driver 48V",
        "quantity": 10,
        "quantity_state": "Valid",
        "unit": "ST",
        "price": 12.34,
        "currency": "EUR",
        "line_total": 123.4
      }
    ],
    "additional_information": null
  },
  "state": null,
  "erp_ref": null,
  "email_group_id": null,
  "order_label": "PO-4711",
  "retry_count": 0,
  "next_retry_at": null,
  "last_error": null
}

List orders (paginated, newest first)

GET/order_status/listintegration key

Paginated list of orders with their status. There is no server-side filter or updated_since parameter today — poll the first page(s) and track transitions locally (the Python SDK's OrderWatcher does exactly this).

Parameters

NameInTypeRequiredDescription
pagequeryintegerPage number Default 1. Min 1.
sizequeryintegerItems per page Default 100. Min 1. Max 1000.

Responses

StatusDescriptionBody
200Successful ResponseOrderListResponse
404Resource not foundErrorResponse
422Validation ErrorHTTPValidationError
bash
curl -X GET "https://acme.aiotic.ai/order_status/list?page=1&size=100" -H "X-API-Key: $AIOTIC_API_KEY"
python
page = client.orders.list(page=1, size=100)
for order in client.orders.iter_all(size=200, max_pages=5): ...

Documentation revision 3 · Published 8 September 2026 · commit 6862d5e. Verified against AIOTIC API v1.0.0. AIOTIC is a product of DevOps Company.