Candis Core Data API

Import/update master data: general ledger accounts, cost dimensions, additional delivery costs.

OpenAPI Specification

candis-core-data-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Candis Core Data API
  description: Candis API for exporting approved invoices and postings, managing master core data (contacts, general ledger accounts, cost dimensions, delivery costs), and reading invoice, reimbursement item, and purchase request data. Reconstructed by the API Evangelist enrichment pipeline from the per-operation OpenAPI fragments embedded in the Candis ReadMe developer reference (developer.candis.io).
  version: 1.0.0
  contact:
    name: Candis
    url: https://developer.candis.io/
  x-apievangelist:
    method: searched
    source: Reconstructed from per-operation OpenAPI fragments published in the Candis developer reference (https://developer.candis.io/reference/*) via ReadMe; merged and filtered to Candis /v1/organizations operations by the API Evangelist enrichment pipeline.
    generated: '2026-07-18'
servers:
- url: https://api.candis.io
  description: Production
security:
- bearerAuth: []
tags:
- name: Core Data
  description: 'Import/update master data: general ledger accounts, cost dimensions, additional delivery costs.'
paths:
  /v1/organizations/{organizationId}/imports/cost-centers:
    post:
      operationId: createCostCenter
      summary: Create Cost Dimensions
      description: Receive requests and attempts to create Cost Dimensions in Candis
      parameters:
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                oneOf:
                - title: Cost Center
                  type: object
                  properties:
                    code:
                      type: string
                      description: The unique code of the cost dimension
                      example: ABC-000
                    name:
                      type: string
                      description: Name of the cost dimension
                      example: ABC-000
                    type:
                      type: string
                      description: Type of the cost dimension
                      example: COST_CENTER
                      enum:
                      - COST_CENTER
                  required:
                  - code
                  - name
                  - type
                - title: Cost Object
                  type: object
                  properties:
                    code:
                      type: string
                      description: The unique code of the cost dimension
                      example: ABC-000
                    name:
                      type: string
                      description: Name of the cost dimension
                      example: ABC-000
                    type:
                      type: string
                      description: Type of the cost dimension
                      example: COST_OBJECT
                      enum:
                      - COST_OBJECT
                  required:
                  - code
                  - name
                  - type
                - title: Custom Cost Dimension
                  type: object
                  properties:
                    code:
                      type: string
                      description: The unique code of the cost dimension
                      example: ABC-000
                    name:
                      type: string
                      description: Name of the cost dimension
                      example: ABC-000
                    type:
                      type: string
                      description: Type of the cost dimension
                      example: CUSTOM_COST_DIMENSION
                      enum:
                      - CUSTOM_COST_DIMENSION
                  required:
                  - code
                  - name
                  - type
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  processId:
                    type: string
                    description: The unique identifier of the import request.
                    example: 9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031
                required:
                - processId
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                  errors:
                    description: This is an optional output that can provide more details about the input parameters that may have caused an issue.
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: string
                          description: This identifies the index of the payload that has an issue.
                        property:
                          type: string
                          description: This identifies the parameter that has an issue.
                        messages:
                          description: This provides more details about the parameter that has an issue.
                          type: array
                          items:
                            type: string
                      required:
                      - property
                      - messages
                required:
                - errorCode
                - message
        '503':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                required:
                - errorCode
                - message
      tags:
      - Core Data
      security:
      - bearer: []
    put:
      operationId: updateCostCenter
      summary: Update Cost Dimensions
      description: Receive requests and attempts to update Cost Dimensions in Candis
      parameters:
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                oneOf:
                - title: Cost Center
                  type: object
                  properties:
                    code:
                      type: string
                      description: The unique code of the cost dimension
                      example: ABC-000
                    name:
                      type: string
                      description: Name of the cost dimension
                      example: ABC-000
                      nullable: true
                    isArchived:
                      type: boolean
                      description: Flag to deactivate or activate a cost dimension
                      example: true
                    type:
                      type: string
                      description: Type of the cost dimension
                      example: COST_CENTER
                      enum:
                      - COST_CENTER
                  required:
                  - code
                  - type
                - title: Cost Object
                  type: object
                  properties:
                    code:
                      type: string
                      description: The unique code of the cost dimension
                      example: ABC-000
                    name:
                      type: string
                      description: Name of the cost dimension
                      example: ABC-000
                      nullable: true
                    isArchived:
                      type: boolean
                      description: Flag to deactivate or activate a cost dimension
                      example: true
                    type:
                      type: string
                      description: Type of the cost dimension
                      example: COST_OBJECT
                      enum:
                      - COST_OBJECT
                  required:
                  - code
                  - type
                - title: Custom Cost Dimension
                  type: object
                  properties:
                    code:
                      type: string
                      description: The unique code of the cost dimension
                      example: ABC-000
                    name:
                      type: string
                      description: Name of the cost dimension
                      example: ABC-000
                      nullable: true
                    isArchived:
                      type: boolean
                      description: Flag to deactivate or activate a cost dimension
                      example: true
                    type:
                      type: string
                      description: Type of the cost dimension
                      example: CUSTOM_COST_DIMENSION
                      enum:
                      - CUSTOM_COST_DIMENSION
                  required:
                  - code
                  - type
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  processId:
                    type: string
                    description: The unique identifier of the import request.
                    example: 9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031
                required:
                - processId
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                  errors:
                    description: This is an optional output that can provide more details about the input parameters that may have caused an issue.
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: string
                          description: This identifies the index of the payload that has an issue.
                        property:
                          type: string
                          description: This identifies the parameter that has an issue.
                        messages:
                          description: This provides more details about the parameter that has an issue.
                          type: array
                          items:
                            type: string
                      required:
                      - property
                      - messages
                required:
                - errorCode
                - message
        '503':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                required:
                - errorCode
                - message
      tags:
      - Core Data
      security:
      - bearer: []
  /v1/organizations/{organizationId}/imports/general-ledger-accounts:
    post:
      operationId: createGeneralLedgerAccounts
      summary: Create General Ledger Accounts
      description: Receive requests and attempts to create General Ledger Accounts in Candis
      parameters:
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  accountCode:
                    type: string
                    description: The unique General Ledger Account Code
                    example: ABC-000
                  name:
                    type: string
                    description: General Ledger Account Label
                    example: ABC-000
                required:
                - accountCode
                - name
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  processId:
                    type: string
                    description: The unique identifier of the import request.
                    example: 9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031
                required:
                - processId
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                  errors:
                    description: This is an optional output that can provide more details about the input parameters that may have caused an issue.
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: string
                          description: This identifies the index of the payload that has an issue.
                        property:
                          type: string
                          description: This identifies the parameter that has an issue.
                        messages:
                          description: This provides more details about the parameter that has an issue.
                          type: array
                          items:
                            type: string
                      required:
                      - property
                      - messages
                required:
                - errorCode
                - message
        '503':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                required:
                - errorCode
                - message
      tags:
      - Core Data
      security:
      - bearer: []
    put:
      operationId: updateGeneralLedgerAccounts
      summary: Update General Ledger Accounts
      description: Receive requests and attempts to update General Ledger Accounts in Candis
      parameters:
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  accountCode:
                    type: string
                    description: The unique General Ledger Account Code
                    example: ABC-000
                  name:
                    type: string
                    description: General Ledger Account Label
                    example: ABC-000
                    nullable: true
                  isArchived:
                    type: boolean
                    description: Flag to deactivate a General Ledger Account entry
                    example: true
                    default: false
                required:
                - accountCode
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  processId:
                    type: string
                    description: The unique identifier of the import request.
                    example: 9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031
                required:
                - processId
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                  errors:
                    description: This is an optional output that can provide more details about the input parameters that may have caused an issue.
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: string
                          description: This identifies the index of the payload that has an issue.
                        property:
                          type: string
                          description: This identifies the parameter that has an issue.
                        messages:
                          description: This provides more details about the parameter that has an issue.
                          type: array
                          items:
                            type: string
                      required:
                      - property
                      - messages
                required:
                - errorCode
                - message
        '503':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                required:
                - errorCode
                - message
      tags:
      - Core Data
      security:
      - bearer: []
  /v1/organizations/{organizationId}/imports/{processId}:
    get:
      operationId: getImportLogs
      summary: Get Import Logs
      description: Returns Status Summary on Core data Import Request received
      parameters:
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      - name: processId
        required: true
        in: path
        description: The import Request ID.
        example: 9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The offset of the first element in the list.
        example: 0
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        description: The maximum number of elements to return.
        example: 50
        schema:
          minimum: 1
          default: 50
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobStatus:
                    type: string
                    description: The status of the import job request.
                    example: PROCESSED
                    enum:
                    - PROCESSED
                    - PROCESSING
                  events:
                    description: List of Import Logs.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The unique identifier for the code data
                          example: ABC-000
                        processId:
                          type: string
                          description: The unique identifier of the import request.
                          example: 9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031
                        organizationId:
                          type: string
                          description: The organization ID.
                          example: alpha-organization
                        status:
                          type: string
                          description: The status of the core data entity import.
                          example: FAILED
                          enum:
                          - FAILED
                          - IMPORTED
                        importErrors:
                          type: array
                          description: 'The Error encountered while trying to process the request.

                            `ACCOUNT_CODE_ALREADY_EXIST` `ACCOUNT_CODE_NOT_EXISTING` `COST_CENTER_ALREADY_EXIST` `COST_CENTER_NOT_EXISTING` `BOOKING_KEY_ALREADY_EXIST` `BOOKING_KEY_NOT_FOUND` `CONTACT_ALREADY_EXIST` `CONTACT_NOT_EXISTING` `DUPLICATE_CONTACT_NAME` `NO_UPDATABLE_INPUT` `PAYMENT_CONDITION_ALREADY_EXIST` `PAYMENT_CONDITION_NOT_FOUND` `PAYMENT_CONDITION_IS_ARCHIVED` `UNKNOWN_ERROR` `INVALID_INPUT` `INVALID_TAX_NUMBER` `INVALID_IBAN`'
                          example:
                          - ACCOUNT_CODE_ALREADY_EXIST
                          items:
                            type: string
                            enum:
                            - ACCOUNT_CODE_ALREADY_EXIST
                            - ACCOUNT_CODE_NOT_EXISTING
                            - COST_CENTER_ALREADY_EXIST
                            - COST_CENTER_NOT_EXISTING
                            - BOOKING_KEY_ALREADY_EXIST
                            - BOOKING_KEY_NOT_FOUND
                            - CONTACT_ALREADY_EXIST
                            - CONTACT_NOT_EXISTING
                            - DUPLICATE_CONTACT_NAME
                            - NO_UPDATABLE_INPUT
                            - PAYMENT_CONDITION_ALREADY_EXIST
                            - PAYMENT_CONDITION_NOT_FOUND
                            - PAYMENT_CONDITION_IS_ARCHIVED
                            - UNKNOWN_ERROR
                            - INVALID_INPUT
                            - INVALID_TAX_NUMBER
                            - INVALID_IBAN
                        operation:
                          type: string
                          description: The import request operation
                          example: CREATE
                          enum:
                          - CREATE
                          - UPDATE
                        createdAt:
                          format: date-time
                          type: string
                          description: The date and time when the import was processed.
                          example: '2024-01-01T12:00:00Z'
                      required:
                      - id
                      - processId
                      - organizationId
                      - status
                      - operation
                      - createdAt
                  pagination:
                    description: Pagination Data providing information and the record count, page size and total count
                    allOf:
                    - type: object
                      properties:
                        pageCount:
                          type: number
                          example: 10
                          description: This is the total number of pages available with records
                        pageSize:
                          type: number
                          example: 50
                          description: This is the length of size of the current page
                        totalCount:
                          type: number
                          example: 500
                          description: This is the total count of export records available
                      required:
                      - pageCount
                      - pageSize
                      - totalCount
                required:
                - jobStatus
                - events
                - pagination
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    description: The Error Code assigned to the issue encountered
                    enum:
                    - UNAUTHORIZED
                    - FORBIDDEN
                    - BAD_REQUEST
                    - SERVICE_UNAVAILABLE
                    - INTERNAL_SERVER_ERROR
                    - MISSING_REQUESTER_ID
                    - BAD_INPUT
                    - NOT_FOUND
                    - EXPORTABLE_POSTINGS_NOT_FOUND
                    - TOO_MANY_REQUEST
                    - FAILED_TO_FETCH_DOWNLOAD_URL
                    - FILE_NOT_FOUND
                  message:
                    type: string
                    description: Description about the issue encountered
                  requestId:
                    type: string
                    description: This is the unique identifier for the request.
                  errors:
                    description: This is an optional output that can provide more details about the input parameters that may have caused an issue.
                    type: array
                    items:
                      type: object
                   

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/candis/refs/heads/main/openapi/candis-core-data-api-openapi.yml