openapi: 3.1.0
info:
title: Accounting subpackage_files API
version: 1.0.0
servers:
- url: https://api.merge.dev/api
- url: https://api-eu.merge.dev/api
- url: https://api-ap.merge.dev/api
tags:
- name: subpackage_files
paths:
/filestorage/v1/files:
get:
operationId: list
summary: List
description: Returns a list of `File` objects.{/* BEGIN_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: created_after
in: query
description: If provided, will only return objects created after this datetime.
required: false
schema:
type: string
format: date-time
- name: created_before
in: query
description: If provided, will only return objects created before this datetime.
required: false
schema:
type: string
format: date-time
- name: cursor
in: query
description: The pagination cursor value.
required: false
schema:
type: string
- name: drive_id
in: query
description: Specifying a drive id returns only the files in that drive. Specifying null returns only the files outside the top-level drive.
required: false
schema:
type: string
- name: expand
in: query
description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/FilesGetParametersExpandSchemaItems'
- name: folder_id
in: query
description: Specifying a folder id returns only the files in that folder. Specifying null returns only the files in root directory.
required: false
schema:
type: string
- name: include_deleted_data
in: query
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
required: false
schema:
type: boolean
- name: include_remote_data
in: query
description: Whether to include the original data Merge fetched from the third-party to produce these models.
required: false
schema:
type: boolean
- name: include_shell_data
in: query
description: Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null).
required: false
schema:
type: boolean
- name: mime_type
in: query
description: If provided, will only return files with these mime_types. Multiple values can be separated by commas.
required: false
schema:
type: string
- name: modified_after
in: query
description: If provided, only objects synced by Merge after this date time will be returned.
required: false
schema:
type: string
format: date-time
- name: modified_before
in: query
description: If provided, only objects synced by Merge before this date time will be returned.
required: false
schema:
type: string
format: date-time
- name: name
in: query
description: If provided, will only return files with this name. This performs an exact match.
required: false
schema:
type: string
- name: order_by
in: query
description: 'Overrides the default ordering for this endpoint. Possible values include: created_at, -created_at, modified_at, -modified_at.'
required: false
schema:
$ref: '#/components/schemas/FilesGetParametersOrderBy'
- name: page_size
in: query
description: Number of results to return per page. The maximum limit is 100.
required: false
schema:
type: integer
- name: remote_created_after
in: query
description: If provided, will only return files created in the third party platform after this datetime.
required: false
schema:
type: string
format: date-time
- name: remote_created_before
in: query
description: If provided, will only return files created in the third party platform before this datetime.
required: false
schema:
type: string
format: date-time
- name: remote_id
in: query
description: The API provider's ID for the given object.
required: false
schema:
type: string
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedFileList'
post:
operationId: create
summary: Create
description: Creates a `File` object with the given values.{/* BEGIN_FILESTORAGE_FILE_CREATE_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_CREATE_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: is_debug_mode
in: query
description: Whether to include debug fields (such as log file links) in the response.
required: false
schema:
type: boolean
- name: run_async
in: query
description: Whether or not third-party updates should be run asynchronously.
required: false
schema:
type: boolean
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/FileStorageFileResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FileStorageFileEndpointRequest'
/filestorage/v1/files/{id}:
get:
operationId: retrieve
summary: Retrieve
description: Returns a `File` object with the given `id`.{/* BEGIN_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: expand
in: query
description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/FilesIdGetParametersExpandSchemaItems'
- name: include_remote_data
in: query
description: Whether to include the original data Merge fetched from the third-party to produce these models.
required: false
schema:
type: boolean
- name: include_shell_data
in: query
description: Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null).
required: false
schema:
type: boolean
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/File'
/filestorage/v1/files/{id}/download:
get:
operationId: download-retrieve
summary: Download Retrieve
description: Returns the `File` content with the given `id` as a stream of bytes.{/* BEGIN_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: include_shell_data
in: query
description: Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null).
required: false
schema:
type: boolean
- name: mime_type
in: query
description: If provided, specifies the export format of the file to be downloaded. For information on supported export formats, please refer to our export format help center article.
required: false
schema:
type: string
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/octet-stream:
schema:
type: string
format: binary
/filestorage/v1/files/{id}/download/request-meta:
get:
operationId: download-request-meta-retrieve
summary: Download Request Meta Retrieve
description: Returns metadata to construct an authenticated file download request for a singular file, allowing you to download file directly from the third-party. For information on our download process please refer to our direct file download help center article.{/* BEGIN_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: mime_type
in: query
description: If provided, specifies the export format of the file to be downloaded.
required: false
schema:
type: string
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DownloadRequestMeta'
/filestorage/v1/files/download/request-meta:
get:
operationId: download-request-meta-list
summary: Download Request Meta List
description: Returns metadata to construct authenticated file download requests, allowing you to download files directly from the third-party.{/* BEGIN_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: created_after
in: query
description: If provided, will only return objects created after this datetime.
required: false
schema:
type: string
- name: created_before
in: query
description: If provided, will only return objects created before this datetime.
required: false
schema:
type: string
- name: cursor
in: query
description: The pagination cursor value.
required: false
schema:
type: string
- name: ids
in: query
description: If provided, will only return objects with the given IDs. Comma-separated list of strings.
required: false
schema:
type: array
items:
type: string
- name: include_deleted_data
in: query
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
required: false
schema:
type: boolean
- name: mime_types
in: query
description: A comma-separated list of preferred MIME types in order of priority. If supported by the third-party provider, the file(s) will be returned in the first supported MIME type from the list. The default MIME type is PDF. To see supported MIME types by file type, refer to our export format help center article.
required: false
schema:
type: string
- name: modified_after
in: query
description: If provided, will only return objects modified after this datetime.
required: false
schema:
type: string
- name: modified_before
in: query
description: If provided, will only return objects modified before this datetime.
required: false
schema:
type: string
- name: order_by
in: query
description: 'Overrides the default ordering for this endpoint. Possible values include: created_at, -created_at, modified_at, -modified_at.'
required: false
schema:
$ref: '#/components/schemas/FilesDownloadRequestMetaGetParametersOrderBy'
- name: page_size
in: query
description: Number of results to return per page. The maximum limit is 100.
required: false
schema:
type: integer
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedDownloadRequestMetaList'
/filestorage/v1/files/meta/post:
get:
operationId: meta-post-retrieve
summary: Meta Post Retrieve
description: Returns metadata for `FileStorageFile` POSTs.{/* BEGIN_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}{/* END_FILESTORAGE_FILE_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_files
parameters:
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MetaResponse'
components:
schemas:
FileStorageFileEndpointRequest:
type: object
properties:
model:
$ref: '#/components/schemas/FileRequest'
required:
- model
title: FileStorageFileEndpointRequest
PermissionFieldMappings:
type: object
properties:
organization_defined_targets:
type: object
additionalProperties:
description: Any type
linked_account_defined_targets:
type: object
additionalProperties:
description: Any type
title: PermissionFieldMappings
ErrorValidationProblem:
type: object
properties:
source:
$ref: '#/components/schemas/ValidationProblemSource'
title:
type: string
detail:
type: string
problem_type:
type: string
block_merge_link:
type: boolean
raw_error:
type: string
error_code:
type: integer
required:
- title
- detail
- problem_type
title: ErrorValidationProblem
FilesDownloadRequestMetaGetParametersOrderBy:
type: string
enum:
- -created_at
- -modified_at
- created_at
- modified_at
title: FilesDownloadRequestMetaGetParametersOrderBy
FilesGetParametersOrderBy:
type: string
enum:
- -created_at
- -modified_at
- created_at
- modified_at
title: FilesGetParametersOrderBy
File:
type: object
properties:
id:
type: string
format: uuid
remote_id:
type:
- string
- 'null'
description: The third-party API ID of the matching object.
created_at:
type: string
format: date-time
description: The datetime that this object was created by Merge.
modified_at:
type: string
format: date-time
description: The datetime that this object was modified by Merge.
name:
type:
- string
- 'null'
description: The file's name.
file_url:
type:
- string
- 'null'
description: The URL to access the file.
file_thumbnail_url:
type:
- string
- 'null'
description: The URL that produces a thumbnail preview of the file. Typically an image.
size:
type:
- integer
- 'null'
format: int64
description: The file's size, in bytes.
mime_type:
type:
- string
- 'null'
description: The file's mime type.
description:
type:
- string
- 'null'
description: The file's description.
folder:
type:
- string
- 'null'
format: uuid
description: The folder that the file belongs to.
checksum:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations.
permissions:
type: array
items:
$ref: '#/components/schemas/Permission'
drive:
type:
- string
- 'null'
format: uuid
description: The drive that the file belongs to.
remote_created_at:
type:
- string
- 'null'
format: date-time
description: When the third party's file was created.
remote_updated_at:
type:
- string
- 'null'
format: date-time
description: When the third party's file was updated.
remote_was_deleted:
type: boolean
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
field_mappings:
oneOf:
- $ref: '#/components/schemas/FileFieldMappings'
- type: 'null'
remote_data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RemoteData'
description: '# The File Object
### Description
The `File` object is used to represent a file in the workspace. The Object typically exists under a folder or drive, if it exists.
### Usage Example
Fetch from the `GET /api/filestorage/v1/files` endpoint and view their files.'
title: File
FilesGetParametersExpandSchemaItems:
type: string
enum:
- drive
- folder
- permissions
title: FilesGetParametersExpandSchemaItems
PermissionRequest:
type: object
properties:
remote_id:
type:
- string
- 'null'
description: The third-party API ID of the matching object.
user:
type:
- string
- 'null'
format: uuid
description: The user that is granted this permission. This will only be populated if the type is `USER`.
group:
type:
- string
- 'null'
format: uuid
description: The group that is granted this permission. This will only be populated if the type is `GROUP`.
type:
oneOf:
- $ref: '#/components/schemas/TypeEnum'
- type: 'null'
description: Denotes what type of people have access to the file.
roles:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RolesEnum'
description: 'The permissions that the user or group has for the File or Folder. It is possible for a user or group to have multiple roles, such as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. In cases where there is no clear mapping, the original value passed through will be returned.'
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The Permission Object
### Description
The Permission object is used to represent a user''s or group''s access to a File or Folder. Permissions are unexpanded by default.
### Usage Example
Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details.'
title: PermissionRequest
FileRequest:
type: object
properties:
name:
type:
- string
- 'null'
description: The file's name.
file_url:
type:
- string
- 'null'
description: The URL to access the file.
file_thumbnail_url:
type:
- string
- 'null'
description: The URL that produces a thumbnail preview of the file. Typically an image.
size:
type:
- integer
- 'null'
format: int64
description: The file's size, in bytes.
mime_type:
type:
- string
- 'null'
description: The file's mime type.
description:
type:
- string
- 'null'
description: The file's description.
folder:
type:
- string
- 'null'
format: uuid
description: The folder that the file belongs to.
checksum:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations.
permissions:
type: array
items:
$ref: '#/components/schemas/PermissionRequest'
drive:
type:
- string
- 'null'
format: uuid
description: The drive that the file belongs to.
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The File Object
### Description
The `File` object is used to represent a file in the workspace. The Object typically exists under a folder or drive, if it exists.
### Usage Example
Fetch from the `GET /api/filestorage/v1/files` endpoint and view their files.'
title: FileRequest
PaginatedDownloadRequestMetaList:
type: object
properties:
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
$ref: '#/components/schemas/DownloadRequestMeta'
title: PaginatedDownloadRequestMetaList
WarningValidationProblem:
type: object
properties:
source:
$ref: '#/components/schemas/ValidationProblemSource'
title:
type: string
detail:
type: string
problem_type:
type: string
block_merge_link:
type: boolean
raw_error:
type: string
error_code:
type: integer
required:
- title
- detail
- problem_type
title: WarningValidationProblem
RolesEnum:
type: string
enum:
- READ
- WRITE
- OWNER
title: RolesEnum
DebugModeLog:
type: object
properties:
log_id:
type: string
dashboard_view:
type: string
log_summary:
$ref: '#/components/schemas/DebugModelLogSummary'
required:
- log_id
- dashboard_view
- log_summary
title: DebugModeLog
MetaResponse:
type: object
properties:
request_schema:
type: object
additionalProperties:
description: Any type
status:
$ref: '#/components/schemas/LinkedAccountStatus'
has_conditional_params:
type: boolean
has_required_linked_account_params:
type: boolean
remote_fields:
type: array
items:
type: string
format: uuid
description: Remote field values to populate
required:
- request_schema
- has_conditional_params
- has_required_linked_account_params
title: MetaResponse
FileStorageFileResponse:
type: object
properties:
model:
$ref: '#/components/schemas/File'
warnings:
type: array
items:
$ref: '#/components/schemas/WarningValidationProblem'
errors:
type: array
items:
$ref: '#/components/schemas/ErrorValidationProblem'
logs:
type: array
items:
$ref: '#/components/schemas/DebugModeLog'
required:
- model
- warnings
- errors
title: FileStorageFileResponse
FileFieldMappings:
type: object
properties:
organization_defined_targets:
type: object
additionalProperties:
description: Any type
linked_account_defined_targets:
type: object
additionalProperties:
description: Any type
title: FileFieldMappings
RemoteData:
type: object
properties:
path:
type: string
description: The third-party API path that is being called.
data:
description: The data returned from the third-party for this object in its original, unnormalized format.
required:
- path
description: '# The RemoteData Object
### Description
The `RemoteData` object is used to represent the full data pulled from the third-party API for an object.
### Usage Example
TODO'
title: RemoteData
ValidationProblemSource:
type: object
properties:
pointer:
type: string
required:
- pointer
title: ValidationProblemSource
FilesIdGetParametersExpandSchemaItems:
type: string
enum:
- drive
- folder
- permissions
title: FilesIdGetParametersExpandSchemaItems
TypeEnum:
type: string
enum:
- USER
- GROUP
- COMPANY
- ANYONE
title: TypeEnum
Permission:
type: object
properties:
id:
type: string
format: uuid
remote_id:
type:
- string
- 'null'
description: The third-party API ID of the matching object.
created_at:
type: string
format: date-time
description: The datetime that this object was created by Merge.
modified_at:
type: string
format: date-time
description: The datetime that this object was modified by Merge.
user:
type:
- string
- 'null'
format: uuid
description: The user that is granted this permission. This will only be populated if the type is `USER`.
group:
type:
- string
- 'null'
format: uuid
description: The group that is granted this permission. This will only be populated if the type is `GROUP`.
type:
oneOf:
- $ref: '#/components/schemas/TypeEnum'
- type: 'null'
description: Denotes what type of people have access to the file.
roles:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RolesEnum'
description: 'The permissions that the user or group has for the File or Folder. It is possible for a user or group to have multiple roles, such as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. In cases where there is no clear mapping, the original value passed through will be returned.'
remote_was_deleted:
type: boolean
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
field_mappings:
oneOf:
- $ref: '#/components/schemas/PermissionFieldMappings'
- type: 'null'
description: '# The Permission Object
### Description
The Permission object is used to represent a user''s or group''s access to a File or Folder. Permissions are unexpanded by default.
### Usage Example
Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details.'
title: Permission
DebugModelLogSummary:
type: object
properties:
url:
type: string
method:
type: string
status_code:
type: integer
required:
- url
- method
- status_code
title: DebugModelLogSummary
DownloadRequestMeta:
type: object
properties:
id:
type: string
url:
type: string
method:
type: string
headers:
type: object
additionalProperties:
description: Any type
required:
- id
- url
- method
- headers
title: DownloadRequestMeta
LinkedAccountStatus:
type: object
properties:
linked_account_status:
type: string
can_make_request:
type: boolean
required:
- linked_account_status
- can_make_request
title: LinkedAccountStatus
PaginatedFileList:
type: object
properties:
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
$ref: '#/components/schemas/File'
title: PaginatedFileList
securitySchemes:
tokenAuth:
type: http
scheme: bearer
description: Token-based authentication with required prefix "Bearer"