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"