---
title: "Create an upload transfer ticket"
method: POST
path: "/transfer-tickets"
tags: ["Transfer Tickets"]
---

# Create an upload transfer ticket

`POST /transfer-tickets`

Creates either:
- a single PUT upload ticket for smaller files, or
- a multipart upload session for larger files.

The client supplies `sizeBytes` and the API decides which upload path to use.

## Request body

- TransferTicketRequest
  - `clientId` string, required
  - `fileName` string, required
  - `contentType` string
  - `sizeBytes` integer, required
  - `requestedExpirySeconds` integer
  - `contentMd5` string — Base64-encoded MD5 digest for single PUT uploads only

## Response `200`

Upload session created

- union
  - SingleUploadTicketResponse
    - `transferTicket` string, uuid, required
    - `clientId` string, required
    - `upload` PresignedSingleUpload, required
      - `method` string, required
      - `url` string, uri, required
      - `headers` object, required
      - `expiresInSeconds` integer, required
    - `object` ObjectReference, required
      - `bucket` string, required
      - `key` string, required
  - MultipartUploadTicketResponse
    - `transferTicket` string, uuid, required
    - `clientId` string, required
    - `object` ObjectReference, required
      - `bucket` string, required
      - `key` string, required
    - `multipart` MultipartUploadSession, required
      - `uploadId` string, required
      - `partSizeBytes` integer, required
      - `totalParts` integer, nullable
      - `maxParts` integer, required
      - `expiresInSeconds` integer, required
      - `initialParts` MultipartPart[], required
        - `partNumber` integer, required
        - `method` string, required
        - `url` string, uri, required
        - `headers` object, required
        - `expiresInSeconds` integer, required
      - `operations` MultipartOperationPaths, required
        - `presignPartsPath` string, required
        - `completePath` string, required
        - `abortPath` string, required

## Other responses

- `400` — Request failed
- `401` — Request failed
- `403` — Request failed
- `404` — Request failed

---

[API](https://skmtc.net/ministryofjustice/apis/integration-hub-managed-file-transfer-api.md) · [All operations](https://skmtc.net/ministryofjustice/apis/integration-hub-managed-file-transfer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ministryofjustice/integration-hub-managed-file-transfer-api/revisions/64e74e3697a6/schema)
