---
title: "Generate presigned S3 URL for transaction file upload"
method: POST
path: "/data-tables/{data_table_id}/transactions/uploads/presign"
tags: ["ERP"]
---

# Generate presigned S3 URL for transaction file upload

`POST /data-tables/{data_table_id}/transactions/uploads/presign`

Creates a presigned S3 URL that allows direct client-side file upload to S3. Only supports NetSuite connections. Use the returned file_path in complete_upload.

## Path parameters

- `data_table_id` string, required

## Headers

- `X-Company-ID` string, required

## Request body

- PresignUpload
  - `file_name` string, required
  - `content_type` string, required

## Response `200`

Presigned URL generated successfully

- object
  - `upload_url` string — Presigned S3 URL for PUT upload (expires in 1 hour)
  - `file_path` string — S3 key to use in complete_upload

## Other responses

- `400` — Invalid request body or non-NetSuite connection
- `401` — Unauthorized
- `403` — Permission denied

---

[API](https://skmtc.net/cubesoftware/apis/cube-api.md) · [All operations](https://skmtc.net/cubesoftware/apis/cube-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cubesoftware/cube-api/revisions/67d9f45bb99b/schema)
