---
title: "Upload document"
method: POST
path: "/api/v1/external/shipments/{shipmentId}/documents"
tags: ["Documents"]
---

# Upload document

`POST /api/v1/external/shipments/{shipmentId}/documents`

## Request

- Base URL: `https://api.wove.com`
- URL: `https://api.wove.com/api/v1/external/shipments/{shipmentId}/documents`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/wove/apis/wove-external-api/docs/api/v1/external/shipments/:shipmentId/documents/post.ts> (a function with typed inputs; its response is checked against the schema)

Upload a single document to a shipment.

## Path parameters

- `shipmentId` string, required

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: File to upload
  - `documentType` string: Document type

## Response `201`

Document uploaded successfully

- object
  - `success` boolean
  - `data` Document
    - `id` string
    - `entityId` string
    - `entityType` string
    - `type` string
    - `name` string
    - `size` integer
    - `checksum` string
    - `isSelected` boolean
    - `extractedData` object: Extracted data from the document
    - `extractionStatus` 'pending' | 'processing' | 'completed' | 'failed'
    - `extractionError` string
    - `extractedAt` string, date-time
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `message` string

---

[API](https://skmtc.dev/wove/apis/wove-external-api.md) - [All operations](https://skmtc.dev/wove/apis/wove-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wove/apis/wove-external-api/revisions/37290e267e07?raw)
