Skip to content

Create Customer Document Upload

Required scope: customer_file:create

This is step 1 of the public document upload flow. Call this first, upload the document directly to the returned signed URL, then call CompleteCustomerDocumentUpload.

Documents may be at most 25 MB. The declared content type must match the uploaded file bytes.

Generated Reference
POST /public-api/publicapi.v1.Customer/CreateCustomerDocumentUpload

Creates a short-lived signed upload URL for a customer document.

Request CreateCustomerDocumentUploadRequest
Response CreateCustomerDocumentUploadResponse

CreateCustomerDocumentUploadRequest

Field Type
customer_id string
filename string
content_type string
size_bytes int64
visibility CustomerFileVisibility
description string
created_at optional int64
updated_at optional int64

CreateCustomerDocumentUploadResponse

Field Type
upload_id string
upload_url string
storage_key string
expires_at int64
headers map<string, string>
{
"customerId": "be85f4d1-b680-4964-bf62-9828fdf4ce04",
"filename": "quote.pdf",
"contentType": "application/pdf",
"sizeBytes": 124991,
"visibility": "PUBLIC_CUSTOMER_FILE_VISIBILITY_CUSTOMER",
"description": "Generated quote from ERP"
}

Successful requests return 201 Created.

{
"uploadId": "9a970b0c-1a2f-49db-b67b-43fa4fc32bbf",
"uploadUrl": "https://storage.example/signed-put-url",
"storageKey": "workspaces/.../documents/abc123.pdf",
"expiresAt": 1760000000,
"headers": {
"Content-Type": "application/pdf"
}
}