Candis Exports API

Export approved invoices and postings to accounting/ERP systems.

OpenAPI Specification

candis-exports-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Candis Core Data Exports 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: Exports
  description: Export approved invoices and postings to accounting/ERP systems.
paths:
  /v1/organizations/{organizationId}/exports:
    post:
      operationId: createExport
      summary: Create an Export
      description: Create an Export and return basic details. Initial status of the Export will be "EXPORTING".
      parameters:
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          format: slug
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                entityType:
                  type: string
                  description: Posting Type for which you need to create an Export for.
                  example: DOCUMENT
                  default: DOCUMENT
                  enum:
                  - DOCUMENT
                  - REIMBURSEMENT_ITEM
                  - CARD_TRANSACTION
                  nullable: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The unique identifier of the export.
                    example: 86e29aff-ba75-492d-85f6-80d802c4fe69
                  postingsCount:
                    type: number
                    description: The number of postings in the export.
                    example: 10
                  status:
                    type: string
                    description: 'Current status of the export.<br><br>EXPORTING: The export is in progress.'
                    example: EXPORTING
                    enum:
                    - EXPORTING
                  createdAt:
                    format: date-time
                    type: string
                    description: The date and time when the export was initiated.
                    example: '2021-08-31T12:00:00Z'
                required:
                - id
                - postingsCount
                - status
                - createdAt
        '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:
      - Exports
      security:
      - bearer: []
    get:
      operationId: getExports
      summary: Get a list Exports
      description: Get a list of past Exports in the Organization.
      parameters:
      - 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
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          format: slug
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  exports:
                    description: List of exports.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The unique identifier of the export.
                          example: 86e29aff-ba75-492d-85f6-80d802c4fe69
                        postingsCount:
                          type: number
                          description: The number of postings in the export.
                          example: 10
                        status:
                          type: string
                          description: 'Current status of the export.<br><br>EXPORTING: The export processing is still in progress.<br>EXPORTED: The export is completed.<br>FAILED: The export failed.<br>PARTIALLY_EXPORTED: The export was partially successful.'
                          example: EXPORTED
                          enum:
                          - EXPORTING
                          - EXPORTED
                          - FAILED
                          - PARTIALLY_EXPORTED
                        createdAt:
                          format: date-time
                          type: string
                          description: The date and time when the export was initiated.
                          example: '2024-01-01T12:00:00Z'
                      required:
                      - id
                      - postingsCount
                      - status
                      - 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:
                - exports
                - 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
                      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:
      - Exports
      security:
      - bearer: []
  /v1/organizations/{organizationId}/files/{fileId}:
    get:
      operationId: downloadFile
      summary: Download file by ID
      description: Download PDF or XML file by ID.
      parameters:
      - name: fileId
        required: true
        in: path
        description: File ID
        schema:
          type: string
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema: {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
                format: binary
          description: ''
        '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
      security:
      - bearer: []
      tags:
      - Exports
  /v1/organizations/{organizationId}/exports/{exportId}:
    get:
      operationId: getExport
      summary: Get an Export
      description: Get an Export details by ID.
      parameters:
      - name: exportId
        required: true
        in: path
        description: The export ID.
        example: 86e29aff-ba75-492d-85f6-80d802c4fe69
        schema:
          type: string
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The unique identifier of the export.
                    example: 86e29aff-ba75-492d-85f6-80d802c4fe69
                  postingsCount:
                    type: number
                    description: The number of postings in the export.
                    example: 10
                  status:
                    type: string
                    description: 'Current status of the export.<br><br>EXPORTING: The export processing is still in progress.<br>EXPORTED: The export is completed.<br>FAILED: The export failed.<br>PARTIALLY_EXPORTED: The export was partially successful.'
                    example: EXPORTED
                    enum:
                    - EXPORTING
                    - EXPORTED
                    - FAILED
                    - PARTIALLY_EXPORTED
                  createdAt:
                    format: date-time
                    type: string
                    description: The date and time when the export was initiated.
                    example: '2024-01-01T12:00:00Z'
                required:
                - id
                - postingsCount
                - status
                - createdAt
        '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
        '404':
          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:
      - Exports
      security:
      - bearer: []
  /v1/organizations/{organizationId}/exports/{exportId}/postings:
    get:
      operationId: getExportPostings
      summary: Get a list of Export Postings
      description: Get a list of Postings that were exported in the Export.
      parameters:
      - name: exportId
        required: true
        in: path
        description: The export ID.
        example: 86e29aff-ba75-492d-85f6-80d802c4fe69
        schema:
          type: string
      - name: organizationId
        required: true
        in: path
        description: The organization ID.
        example: alpha-organization
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  successfulPostings:
                    type: array
                    description: Successfully exported invoices
                    items:
                      oneOf:
                      - title: Invoice Posting
                        type: object
                        properties:
                          id:
                            type: string
                            description: Unique identifier of Entity
                            example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5
                          entityGuid:
                            type: string
                            description: Candis Unique identifier of the posting.
                            example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5
                          status:
                            type: string
                            description: 'Status of the posting.<br>Exported: The posting was successfully exported.'
                            enum:
                            - EXPORTED
                            example: EXPORTED
                          amount:
                            description: Total Amount information of the posting.
                            allOf:
                            - type: object
                              properties:
                                value:
                                  type: number
                                  description: Total amount of the posting.
                                  example: 100
                                currencyCode:
                                  type: string
                                  description: ISO 4217 currency code.
                                  example: EUR
                              required:
                              - value
                              - currencyCode
                          contact:
                            description: Contact information.
                            allOf:
                            - type: object
                              properties:
                                accountsPayableNumber:
                                  type: string
                                  description: Accounts payable number.
                                  example: '7000001'
                                accountsReceivableNumber:
                                  type: string
                                  description: Accounts receivable number.
                                  example: '7000004'
                                name:
                                  type: string
                                  description: Name of the contact.
                                  example: John Doe
                          invoiceId:
                            type: string
                            description: Invoice ID / Invoice Number mentioned on the invoice.
                            example: '1234'
                          invoiceDate:
                            type: string
                            format: date-time
                            description: Date of the posting.
                            example: '2024-01-01T00:00:00Z'
                          purchaseOrder:
                            description: Purchase Order Information.
                            allOf:
                            - type: object
                              properties:
                                orderNumber:
                                  type: string
                                  description: Purchase Order number attached to the Posting.
                                  example: PO-001
                              required:
                              - orderNumber
                          files:
                            description: Downloadable files information.
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  description: File id
                                  example: 60ace9d227d897fc64add503
                                url:
                                  type: string
                                  description: Download URL of the file.
                                  example: https://api.candis.io/v1/organization/org-id/files/60ace9d227d897fc64add503
                                name:
                                  type: string
                                  description: Name of the file.
                                  example: invoice.pdf
                                type:
                                  type: string
                                  enum:
                                  - AUDIT_TRAIL
                                  - ATTACHMENT
                                  - INVOICE
                                  - XRECHNUNG
                                  description: 'Type of the file.<br><br>AUDIT_TRAIL: Contains all the activity related to processing of the posting.<br>ATTACHMENT: Contains additional information related to the posting.<br>INVOICE: The invoice pdf document.<br>XRECHNUNG: The XRechnung xml document.'
                                  example: INVOICE
                              required:
                              - id
                              - url
                              - name
                              - type
                          url:
                            type: string
                            description: Candis URL of the posting.
                            example: https://my.candis.io/alpha-organization/archive/e4cf0d1b-8514-4437-9b7f-2648b87ec8f5
                          accountingArea:
                            description: Accounting Area Information.
                            allOf:
                            - type: object
                              properties:
                                name:
                                  type: string
                                  description: Accounting Area attached to the Posting.
                                  example: AA-001
                                description:
                                  type: string
                                  description: Description of Accounting Area attached to the Posting.
                                  example: Accounting Area 1
                              required:
                              - name
                              - description
                          deliveryDate:
                    

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