---
title: "Upload documents"
method: POST
path: "/v1/documents/uploads"
tags: ["Documents"]
---

# Upload documents

`POST /v1/documents/uploads`

Upload a shipping document.

## Request body

- DocumentUploadData
  - `shipment_id` string, required — The documents related shipment.
  - `document_files` DocumentFileData[], required — Shipping document files
    - `doc_file` string, required — A base64 file to upload
    - `doc_name` string, required — The file name
    - `doc_format` string, nullable — The file format
    - `doc_type` string, nullable — Shipment document type values: <br/> `certificate_of_origin` `commercial_invoice` `pro_forma_invoice` `packing_list` `other` For carrier specific packaging types, please consult the reference.
  - `reference` string, nullable — Shipping document file reference

## Response `201`

- DocumentUploadRecord
  - `id` string — A unique identifier
  - `carrier_name` string, nullable — The shipment carrier
  - `carrier_id` string, nullable — The shipment carrier configured identifier
  - `documents` DocumentDetails[] — the carrier shipping document ids
    - `doc_id` string — The uploaded document id.
    - `file_name` string — The uploaded document file name.
  - `meta` object, nullable — provider specific metadata
  - `reference` string, nullable — Shipping document file reference
  - `messages` Message[] — The list of note or warning messages
    - `message` string — The error or warning message
    - `code` string — The message code
    - `details` object — any additional details
    - `carrier_name` string — The targeted carrier
    - `carrier_id` string — The targeted carrier name (unique identifier)

## Other responses

- `400`
- `424`
- `500`

---

[API](https://skmtc.dev/karrio/apis/karrio-api.md) · [All operations](https://skmtc.dev/karrio/apis/karrio-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/karrio/karrio-api/revisions/76ab3b7c3a61/schema)
