swagger: '2.0' info: title: Autonomous AP APIs Chart of Accounts API description: Public APIs for integrating with Autonomous AP version: 2.0.3 host: .appzen.com basePath: /dictionary-data-services schemes: - https security: - API Key Header: [] Customer Id Header: [] Customer Key Header: [] tags: - name: Chart of Accounts paths: /chart-of-accounts: post: tags: - Chart of Accounts summary: Creates a new chart of account segment description: Creates a new chart of account segment in AppZen and returns a uuid that uniquely identifies it. When there already exists a chart of account segment (segment_code), then the operation is an update (the `status` would be `UPDATED` in this case). parameters: - $ref: '#/parameters/chart-of-account-input-schema' - in: header name: segment-name-for-uniqueness type: boolean required: false default: false description: Flag to indicate whether the segment-name should be used to determine (in addition to segment-code and segment-type) whether the payload signifies a unique chart of account - in: header name: merge-segment-lookup-names type: boolean required: false default: false description: Flag to indicate whether the segment-lookup-names list in the payload should be concatenated to the corresponding list in an existing chart of account responses: 200: description: Updated schema: $ref: '#/definitions/uuid-updated' 201: description: Created schema: $ref: '#/definitions/uuid' 400: description: Bad Request schema: $ref: '#/definitions/http-400-error-response' 401: description: Unauthorized schema: $ref: '#/definitions/http-401-error-response' 403: description: Forbidden schema: $ref: '#/definitions/http-403-error-response' 404: description: Not Found schema: $ref: '#/definitions/http-404-error-response' 500: description: Internal Server Error schema: $ref: '#/definitions/http-500-error-response' /chart-of-accounts/{uuid}: get: tags: - Chart of Accounts summary: Returns a chart of account segment's details description: Returns the details of a chart of account segment by uuid produces: - application/json parameters: - $ref: '#/parameters/uuid' responses: 200: description: OK schema: $ref: '#/definitions/chart-of-account-output-schema' 400: description: Bad Request schema: $ref: '#/definitions/http-400-error-response' 401: description: Unauthorized schema: $ref: '#/definitions/http-401-error-response' 403: description: Forbidden schema: $ref: '#/definitions/http-403-error-response' 404: description: Not Found schema: $ref: '#/definitions/http-404-error-response' 500: description: Internal Server Error schema: $ref: '#/definitions/http-500-error-response' /chart-of-accounts/search: post: tags: - Chart of Accounts summary: Returns all Chart of Accounts uuid that match the search criteria description: Returns a list of the Chart of Accounts uuids that match from-date and end-date consumes: - application/json produces: - application/json parameters: - $ref: '#/parameters/find-query-spec' responses: 200: description: OK schema: $ref: '#/definitions/find-chart-of-accounts-result-spec' 400: description: Bad Request schema: $ref: '#/definitions/http-400-error-response' 401: description: Unauthorized schema: $ref: '#/definitions/http-401-error-response' 403: description: Forbidden schema: $ref: '#/definitions/http-403-error-response' 404: description: Not Found schema: $ref: '#/definitions/http-404-error-response' 500: description: Internal Server Error schema: $ref: '#/definitions/http-500-error-response' definitions: chart-of-account-output-schema: type: object properties: customer_id: type: string appzen_segment_type: type: string description: Value represents how appzen understands the customer segment type. OTHER_SEGMENT should be used to map any customer segment type that does not have correspondence with one of the named appzen segment types (e.g. ACCOUNT_SEGMENT, DEPARTMENT_SEGMENT etc). Multiple OTHER_SEGMENT mappings may be specified, if needed. enum: - OTHER_SEGMENT - LEGAL_ENTITY_SEGMENT - COMPANY_SEGMENT - ACCOUNT_SEGMENT - DEPARTMENT_SEGMENT - COST_CENTER_SEGMENT - VENDOR_SEGMENT - LOCATION_SEGMENT - USER_SEGMENT - CUSTOMER_SEGMENT - PROJECT_SEGMENT - SPEND_CATEGORY_SEGMENT - REGION_SEGMENT - INTERCOMPANY_SEGMENT example: LOCATION_SEGMENT segment_type: type: string example: Location segment_name: type: string example: San Jose segment_code: type: string example: SanJose parent_segment_type: description: Combination of parent_segment_type and parent_segment_code must reference another existing Chart of Account type: string example: Location parent_segment_name: type: string example: United States parent_segment_code: description: Combination of parent_segment_type and parent_segment_code must reference another existing Chart of Account type: string example: USA parent_segments: description: parent chart of account segments. Combination of segment_type and segment_code must reference another existing Chart of Account $ref: '#/definitions/segments' segment_lookup_names: description: optional list of lookup names type: array example: - ca_locations - hr_locations custom_json: type: object description: 20 fields allowed, 500 chars per field active: type: boolean valid_start_date: allOf: - $ref: '#/definitions/date-time' valid_end_date: allOf: - $ref: '#/definitions/date-time' uuid: type: string example: 5fc03087-d265-11e7-b8c6-83e29cd24f4c chart-of-account-input-schema: type: object properties: appzen_segment_type: type: string description: Value represents how appzen understands the customer segment type. OTHER_SEGMENT should be used to map any customer segment type that does not have correspondence with one of the named appzen segment types (e.g. ACCOUNT_SEGMENT, DEPARTMENT_SEGMENT etc). Multiple OTHER_SEGMENT mappings may be specified, if needed. enum: - OTHER_SEGMENT - LEGAL_ENTITY_SEGMENT - COMPANY_SEGMENT - ACCOUNT_SEGMENT - DEPARTMENT_SEGMENT - COST_CENTER_SEGMENT - VENDOR_SEGMENT - LOCATION_SEGMENT - USER_SEGMENT - CUSTOMER_SEGMENT - PROJECT_SEGMENT - SPEND_CATEGORY_SEGMENT - REGION_SEGMENT - INTERCOMPANY_SEGMENT example: LOCATION_SEGMENT segment_type: type: string example: Location segment_name: type: string example: San Jose segment_code: type: string example: SanJose parent_segment_type: description: customer segment type for parent chart of account. Combination of parent_segment_type and parent_segment_code must reference another existing Chart of Account type: string example: Location parent_segment_name: description: customer segment name for parent chart of account. type: string example: United States parent_segment_code: description: customer segment code for parent chart of account. Combination of parent_segment_type and parent_segment_code must reference another existing Chart of Account type: string example: USA parent_segments: description: parent chart of account segments. Combination of segment_type and segment_code must reference another existing Chart of Account $ref: '#/definitions/segments' segment_lookup_names: description: optional list of lookup names type: array example: - ca_locations - hr_locations items: type: string custom_json: type: object description: 20 fields allowed, 500 chars per field example: custom_key1: any-value1 custom_key2: any-value2 active: type: boolean default: true valid_start_date: allOf: - $ref: '#/definitions/date-time' valid_end_date: allOf: - $ref: '#/definitions/date-time' required: - appzen_segment_type - segment_type - segment_name - segment_code http-404-error-response: type: object properties: timestamp: type: string example: 2019-01-17T16:12:45.977+0000 status: type: string example: 404 error: type: string example: Not Found message: type: string example: 'Error code : 17e3338d - The resource you specified cannot be not found' find-chart-of-accounts-result-spec: example: - segment-code: '3689490915' segment-type: Account appzen-uuid: 5e160e12-23af-4e3f-bdd5-65f7bbccdbc8 is-active: true last-appzen-update-time: '2021-12-08T23:30:10.314Z' - segment-code: '6649972540' segment-type: Legal appzen-uuid: e70cd677-2a91-4564-a429-78163beeadcf is-active: true last-appzen-update-time: '2021-12-08T23:30:12.597Z' properties: erp-invoice-id: type: string erp-invoice-status: type: string appzen-uuid: type: string appzen-invoice-status: type: string last-appzen-update-time: type: string http-403-error-response: type: object properties: timestamp: type: string example: 2019-01-17T16:12:45.977+0000 status: type: string example: 403 error: type: string example: Forbidden message: type: string example: 'Error code : 17e3338d - You do not have permission to access this resource' http-500-error-response: type: object properties: timestamp: type: string example: 2019-01-17T16:12:45.977+0000 status: type: string example: 500 error: type: string example: Internal Server Error message: type: string example: 'Error code : 17e3338d - Unable to process your request at this moment, please try again later' http-400-error-response: type: object properties: timestamp: type: string example: 2019-01-17T16:12:45.977+0000 status: type: string example: 400 error: type: string example: Bad Request message: type: string example: 'Error code : 17e3338d - Invalid request, please fix and resend' uuid: type: object properties: uuid: type: string example: 5fc03087-d265-11e7-b8c6-83e29cd24f4c status: type: string example: CREATED find-query-spec: description: The date range must be limited to 7 days properties: from-last-appzen-update-time: description: Start Date Range value for Appzen processing date specified in UTC format allOf: - $ref: '#/definitions/date-time' to-last-appzen-update-time: description: End Date Range for Appzen processing date specified in UTC format allOf: - $ref: '#/definitions/date-time' limit: description: Number of matched records to return type: number default: 1000 maximum: 1000 example: 50 required: - from-last-appzen-update-time - to-last-appzen-update-time segments: type: object properties: segment_name: type: string example: San Jose segment_code: type: string example: SanJose uuid-updated: type: object properties: uuid: type: string example: 5fc03087-d265-11e7-b8c6-83e29cd24f4c status: type: string example: UPDATED date-time: type: string format: date-time example: '2024-03-01T11:01:00Z' description: date should be in UTC format http-401-error-response: type: object properties: timestamp: type: string example: 2019-01-17T16:12:45.977+0000 status: type: string example: 401 error: type: string example: Unauthorized message: type: string example: 'Error code : 17e3338d - Unable to authenticate credentials' parameters: chart-of-account-input-schema: in: body required: true name: chart-of-account-input-schema schema: $ref: '#/definitions/chart-of-account-input-schema' uuid: in: path description: Globally unique identifier for an uploaded document required: true name: uuid type: string find-query-spec: in: body description: Query Criterion for locating Items required: true name: find-query-spec schema: $ref: '#/definitions/find-query-spec' securityDefinitions: API Key Header: type: apiKey in: header name: x-api-key Customer Id Header: type: apiKey in: header name: customer-id Customer Key Header: type: apiKey in: header name: customer-key