---
title: "POST /api/certified-materials/documents"
method: POST
path: "/api/certified-materials/documents"
tags: ["CertifiedMaterials/Documents"]
---

# POST /api/certified-materials/documents

`POST /api/certified-materials/documents`

Create one or more evidence documents. Triggers AI processing (classification, extraction, then order matching) unless triggerAi is false.

## Request body

- union
  - object
    - `fileId` string, required
    - `fileUrl` string, uri, required
    - `fileName` string, required
    - `fileSize` integer, required
    - `fileMimetype` string, required
    - `type` 'tc' | 'invoice' | 'shipment' | 'po' | 'unknown'
    - `orderId` string, uuid
    - `triggerAi` boolean
  - object[]
    - `fileId` string, required
    - `fileUrl` string, uri, required
    - `fileName` string, required
    - `fileSize` integer, required
    - `fileMimetype` string, required
    - `type` 'tc' | 'invoice' | 'shipment' | 'po' | 'unknown'
    - `orderId` string, uuid
    - `triggerAi` boolean

## Response `201`

Default Response

- object
  - `metadata` object, required
    - `success` boolean, required — True when the request succeeded.
  - `data` union, required
    - object
      - `id` string, uuid, required
      - `companyId` string, required
      - `fileId` string, required
      - `fileUrl` string, required
      - `fileName` string, required
      - `fileSize` number, required
      - `fileMimetype` string, required
      - `type` 'tc' | 'invoice' | 'shipment' | 'po' | 'unknown' | 'fabric_certificate', required
      - `subType` string, nullable, required
      - `status` 'pending' | 'processing' | 'completed' | 'failed', required
      - `failureStep` string, nullable, required
      - `failureReason` string, nullable, required
      - `reviewStatus` string, nullable, required
      - `uploadedBy` string, nullable, required
      - `reviewedAt` string, nullable, required
      - `reviewedBy` string, nullable, required
      - `createdAt` string, required
      - `updatedAt` string, required
      - `aiJob` object
        - `jobId` string, uuid, required
        - `status` string, required
    - object[]
      - `id` string, uuid, required
      - `companyId` string, required
      - `fileId` string, required
      - `fileUrl` string, required
      - `fileName` string, required
      - `fileSize` number, required
      - `fileMimetype` string, required
      - `type` 'tc' | 'invoice' | 'shipment' | 'po' | 'unknown' | 'fabric_certificate', required
      - `subType` string, nullable, required
      - `status` 'pending' | 'processing' | 'completed' | 'failed', required
      - `failureStep` string, nullable, required
      - `failureReason` string, nullable, required
      - `reviewStatus` string, nullable, required
      - `uploadedBy` string, nullable, required
      - `reviewedAt` string, nullable, required
      - `reviewedBy` string, nullable, required
      - `createdAt` string, required
      - `updatedAt` string, required
      - `aiJob` object
        - `jobId` string, uuid, required
        - `status` string, required

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `409` — Default Response

## Changes

> 49 revisions in range; 1 not diffed.

- **2026-09-11** `07beb74c037c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/retraced/apis/api-reference/changes/api/certified-materials/documents/post.md)

---

[API](https://skmtc.dev/retraced/apis/api-reference.md) · [All operations](https://skmtc.dev/retraced/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/retraced/apis/api-reference/revisions/940ef021e2d5?raw)
