openapi: 3.1.0 info: title: Accounting subpackage_customObjects 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_customObjects paths: /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects: get: operationId: custom-object-classes-custom-objects-list summary: Custom Object Classes Custom Objects List description: Returns a list of `CustomObject` objects.{/* BEGIN_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */} tags: - subpackage_customObjects parameters: - name: custom_object_class_id in: path required: true schema: type: string format: uuid - 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: 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_remote_fields in: query description: Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format. 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: 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: page_size in: query description: Number of results to return per page. The maximum limit is 100. required: false schema: type: integer - 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/PaginatedCustomObjectList' post: operationId: custom-object-classes-custom-objects-create summary: Custom Object Classes Custom Objects Create description: Creates a `CustomObject` object with the given values.{/* BEGIN_CRM_CUSTOMOBJECTCLASS_CREATE_SUPPORTED_FIELDS */}{/* END_CRM_CUSTOMOBJECTCLASS_CREATE_SUPPORTED_FIELDS */} tags: - subpackage_customObjects parameters: - name: custom_object_class_id in: path required: true schema: type: string format: uuid - 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/CRMCustomObjectResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/CRMCustomObjectEndpointRequest' /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{id}: get: operationId: custom-object-classes-custom-objects-retrieve summary: Custom Object Classes Custom Objects Retrieve description: Returns a `CustomObject` object with the given `id`.{/* BEGIN_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */} tags: - subpackage_customObjects parameters: - name: custom_object_class_id in: path required: true schema: type: string format: uuid - name: id in: path required: true schema: type: string format: uuid - 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_remote_fields in: query description: Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format. 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/CustomObject' /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/meta/post: get: operationId: custom-object-classes-custom-objects-meta-post-retrieve summary: Custom Object Classes Custom Objects Meta Post Retrieve description: Returns metadata for `CRMCustomObject` POSTs.{/* BEGIN_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */} tags: - subpackage_customObjects parameters: - name: custom_object_class_id in: path required: true schema: type: string format: uuid - 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' /crm/v1/custom-object-classes/custom-objects/remote-field-classes: get: operationId: custom-object-classes-custom-objects-remote-field-classes-list summary: Custom Object Classes Custom Objects Remote Field Classes List description: Returns a list of `RemoteFieldClass` objects.{/* BEGIN_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_CUSTOMOBJECTCLASS_FETCH_SUPPORTED_FIELDS */} tags: - subpackage_customObjects parameters: - name: cursor in: query description: The pagination cursor value. 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_remote_fields in: query description: Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format. 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: is_common_model_field in: query description: If provided, will only return remote field classes with this is_common_model_field value required: false schema: type: boolean - name: is_custom in: query description: If provided, will only return remote fields classes with this is_custom value required: false schema: type: boolean - 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/PaginatedRemoteFieldClassList' components: schemas: CRMCustomObjectResponse: type: object properties: model: $ref: '#/components/schemas/CustomObject' 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: CRMCustomObjectResponse 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 ItemTypeEnum: type: string enum: - string - number - date - datetime - bool - list title: ItemTypeEnum ItemFormatEnum: type: string enum: - string - number - date - datetime - bool - list title: ItemFormatEnum PaginatedCustomObjectList: type: object properties: next: type: - string - 'null' previous: type: - string - 'null' results: type: array items: $ref: '#/components/schemas/CustomObject' title: PaginatedCustomObjectList CustomObjectRequest: type: object properties: fields: type: object additionalProperties: description: Any type integration_params: type: - object - 'null' additionalProperties: description: Any type linked_account_params: type: - object - 'null' additionalProperties: description: Any type required: - fields title: CustomObjectRequest CRMCustomObjectEndpointRequest: type: object properties: model: $ref: '#/components/schemas/CustomObjectRequest' required: - model title: CRMCustomObjectEndpointRequest 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 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 PaginatedRemoteFieldClassList: type: object properties: next: type: - string - 'null' previous: type: - string - 'null' results: type: array items: $ref: '#/components/schemas/RemoteFieldClass' title: PaginatedRemoteFieldClassList ItemSchema: type: object properties: item_type: $ref: '#/components/schemas/ItemTypeEnum' item_format: $ref: '#/components/schemas/ItemFormatEnum' item_choices: type: array items: type: string title: ItemSchema ValidationProblemSource: type: object properties: pointer: type: string required: - pointer title: ValidationProblemSource RemoteField: type: object properties: remote_field_class: $ref: '#/components/schemas/RemoteFieldClass' value: type: object additionalProperties: description: Any type required: - remote_field_class title: RemoteField RemoteFieldClass: type: object properties: id: type: string display_name: type: string remote_key_name: type: string description: type: string is_custom: type: boolean is_common_model_field: type: boolean is_required: type: boolean field_type: $ref: '#/components/schemas/FieldTypeEnum' field_format: $ref: '#/components/schemas/FieldFormatEnum' field_choices: type: array items: type: string item_schema: $ref: '#/components/schemas/ItemSchema' title: RemoteFieldClass FieldFormatEnum: type: string enum: - string - number - date - datetime - bool - list title: FieldFormatEnum DebugModelLogSummary: type: object properties: url: type: string method: type: string status_code: type: integer required: - url - method - status_code title: DebugModelLogSummary LinkedAccountStatus: type: object properties: linked_account_status: type: string can_make_request: type: boolean required: - linked_account_status - can_make_request title: LinkedAccountStatus FieldTypeEnum: type: string enum: - string - number - date - datetime - bool - list title: FieldTypeEnum CustomObject: 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. object_class: type: - string - 'null' format: uuid description: The custom object class the custom object record belongs to. fields: type: object additionalProperties: description: Any type description: The fields and values contained within the custom object record. remote_fields: type: array items: $ref: '#/components/schemas/RemoteField' description: '# The CustomObject Object ### Description The `Custom Object` record refers to an instance of a Custom Object Class. ### Usage Example TODO' title: CustomObject securitySchemes: tokenAuth: type: http scheme: bearer description: Token-based authentication with required prefix "Bearer"