---
title: "Upload file"
method: POST
path: "/v1/documents"
tags: ["Files"]
---

# Upload file

`POST /v1/documents`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/documents`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `document:write`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `document:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Uploads a file associated with a specified employment.

Please contact api-support@remote.com to request access to this endpoint.

## Authentication

This endpoint accepts any one of the following token types:

- **Company-scoped access token** (`OAuth2AuthorizationCode`) — obtained by a company manager through the Authorization Code flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).
- **Company-scoped access token (assertion)** (`OAuth2CompanyManagerAssertion`) — obtained through the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant for a company manager. See [OAuth Assertion](https://developer.remote.com/docs/authorization-method-oauth-assertion).
- **Customer API token** (`CustomerAPIToken`) — generated by the customer on their Integration Settings page, with the scopes they choose there. See [Authorization for customers](https://developer.remote.com/docs/authorization-for-customers).

## Scopes

Any one of the scopes in a token type's row is enough. `all:write` works too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Company-scoped access token | Manage employment documents (`employment_documents`) | - | Manage documents (`document:write`) |
| Company-scoped access token (assertion) | Manage employment documents (`employment_documents`) | - | Manage documents (`document:write`) |
| Customer API token | Manage employment documents (`employment_documents`) | - | Manage documents (`document:write`) |

## Headers

- `Authorization` string, required

## Request body `multipart/form-data`

- FileParams: Parameters to upload a file
  - `employment_id` string, required: The unique identifier (UUID) of the employment to attach this file to.
  - `file` string, binary, required: The file content, base64-encoded.
  - `sub_type` string: A more specific classification within the type (e.g., "ir_35" for a UK contractor tax determination).
  - `type` string: The broad category of the file (e.g., "contract", "id", "tax_document").

## Response `200`

Success

- UploadFileResponse: Response returned after successfully uploading a file.
  - `data` object
    - `file` File, required: A file associated with an employment, such as a contract, tax document, or identity document.
      - `id` string, required: The unique identifier (UUID) of the file.
      - `inserted_at` string, date-time, required: UTC date time in [ISO 8601][] format. [ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601
      - `name` string, required: The file name including extension (e.g., "id.pdf", "contract.pdf").
      - `sub_type` string, nullable: A more specific classification of the file within its type (e.g., "personal_id" within type "id", or "ir_35" within type "contract"). Null if no sub-type applies.
      - `type` string, required: The broad category of the file (e.g., "id", "contract", "tax_document").

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/remote-com/apis/employments.md) - [All operations](https://skmtc.dev/remote-com/apis/employments/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/employments/revisions/da61f6ebc73a?raw)
