---
title: "Upload a file"
method: POST
path: "/entities/{entityId}/files"
tags: ["Platforms"]
---

# Upload a file

`POST /entities/{entityId}/files`

## Request

- Base URL: `https://files.checkout.com`
- URL: `https://files.checkout.com/entities/{entityId}/files`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `string` scopes: `files`
  - API key in header `Authorization`
- TypeScript: <https://skmtc.dev/checkout/apis/checkout-com-api-reference/docs/entities/:entityId/files/post.ts> (a function with typed inputs; its response is checked against the schema)

Our Platforms solution provides an easy way to upload documentation required for full due diligence.

Use this endpoint to generate a file upload link, which you can then upload a file to using a data-binary type request.

See the <a href="https://checkout.com/docs/platforms/onboarding/api/full/upload-a-file" target="_blank">documentation</a> for more information.

Please note that the sub-domain – https://files.checkout.com – is slightly different to Checkout.com's other endpoints. See the <a href="https://checkout.com/docs/platforms/onboarding/api/full/upload-a-file" target="_blank">documentation</a> for more information.

## Request body

- PlatformsFileUpload
  - `purpose` 'additional_document' | 'articles_of_association' | 'bank_verification' | 'certified_authorised_signatory' | 'company_ownership' | 'company_verification' | 'financial_verification' | 'identity_verification' | 'proof_of_legality' | 'proof_of_principal_address' | 'shareholder_structure' | 'tax_verification' | 'proof_of_residential_address' | 'proof_of_registration', required: The purpose of the file upload.

## Response `200`

File uploaded successfully

- PlatformsFileUploadResponse: File uploaded successfully.
  - `id` string: The file identifier.
  - `maximum_size_in_bytes` number: The maximum file size allowed, in bytes.
  - `document_types_for_purpose` string[]: The MIME file types allowed for the document purpose, provided on the initial file upload request.
  - `_links` object
    - `upload` object: Send a data-binary type request to this URL with your file attached. For example: ``` curl --location --request PUT 'https://s3.eu-west-1.amazonaws.com/mp-files-api-staging-prod/ent_ociwguf5a5fe3ndmpnvpnwsi3e/file_6lbss42ezvoufcb2beo76rvwly?AWSAccessKeyId=ASIX4BFJOBCQFLAMPKU3&Expires=1661355993&x-amz-security-token=some_token' --data-binary '@/C:/Users/Test/test.pdf' ```
      - `href` string
    - `self` object: The file information retrieval URL.
      - `href` string

## Other responses

- `401`: Unauthorized
- `422`: Unprocessable
- `429`: Too many requests

---

[API](https://skmtc.dev/checkout/apis/checkout-com-api-reference.md) - [All operations](https://skmtc.dev/checkout/apis/checkout-com-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/checkout/apis/checkout-com-api-reference/revisions/0f1abdb1c3e9?raw)
