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.

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.

EXPORTING: The export processing is still in progress.
EXPORTED: The export is completed.
FAILED: The export failed.
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.

EXPORTING: The export processing is still in progress.
EXPORTED: The export is completed.
FAILED: The export failed.
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.
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.

AUDIT_TRAIL: Contains all the activity related to processing of the posting.
ATTACHMENT: Contains additional information related to the posting.
INVOICE: The invoice pdf document.
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: type: string format: date-time description: Date of the posting. example: '2024-01-01T00:00:00Z' invoiceFormat: type: string enum: - REGULAR - XRECHNUNG - ZUGFERD description: 'Format of the invoice.
REGULAR: Regular invoice format.
XRECHNUNG: XRechnung invoice format.
ZUGFERD: ZUGFeRD invoice format.' example: REGULAR dueDate: type: string format: date-time description: Due date of the booking. example: '2024-01-01T00:00:00Z' paymentCondition: description: Payment Condition Details allOf: - type: object properties: name: type: string description: Payment Condition Name example: Credit Card Discount nullable: true discountPercentage: type: number description: Discount Percentage example: 10 nullable: true discountPaymentDate: type: string format: date-time description: Discount Payment Date example: '2024-01-01T00:00:00Z' documentType: type: string description: Document type of the Posting. example: Incoming Invoice, Outgoing Invoice splitPostings: description: Split-postings can be a part of a posting. A split-posting contains a specific portion of an invoice, which could be necessary due to the need for a different GLA (General Ledger Account) for an amount or when more than one tax is applicable to an invoice. type: array items: type: object properties: note: type: string description: Note for the split-posting. example: Some note amount: type: number description: Amount of the split-posting. example: 100 costCenter: description: Cost center. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code costObject: description: Cost object. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code customCostDimension: description: Custom cost dimension. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code bookingKey: description: Booking key. allOf: - type: object properties: taxCode: type: string description: Tax code. example: '9' required: - taxCode postingText: type: string description: Posting text. example: Some text unitPrice: type: number description: Unit price of the booking. example: 10.5 quantity: type: number description: Quantity of the booking. example: 4 netAmount: type: number description: Net amount of the booking. example: 42.02 taxAmount: type: number description: Tax amount of the booking. example: 7.98 type: type: string description: 'Booking association type. ITEM: Line item booking. ADDITIONAL_DELIVERY_COST: Additional delivery cost booking.' example: ITEM purchaseOrderMetadata: description: Purchase order metadata associated with the booking. type: array items: type: object properties: orderNumber: type: string description: Purchase order number. example: PO-001 lineNumber: type: number description: Purchase order line number. example: 1 itemNumber: type: string description: Purchase order item number. example: '1000' locationCode: type: string description: Purchase order location code. example: LOC-001 nullable: true externalLineId: type: string description: Purchase order external line ID. example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5 nullable: true required: - orderNumber - lineNumber - itemNumber goodsReceiptMetadata: description: Goods receipt metadata associated with the booking. type: array items: type: object properties: receiptNumber: type: string description: Goods receipt number. example: GR-001 lineNumber: type: number description: Goods receipt line number. example: 1 itemNumber: type: string description: Goods receipt item number. example: '1000' locationCode: type: string description: Goods receipt location code. example: LOC-001 nullable: true externalLineId: type: string description: Goods receipt external line ID. example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5 nullable: true required: - receiptNumber - lineNumber - itemNumber additionalDeliveryCostsMetadata: description: Additional delivery costs metadata associated with the booking. type: array items: type: object properties: code: type: string description: Additional delivery cost code. example: FREIGHT required: - code generalLedgerAccount: type: string description: General ledger account. example: '8400' required: - amount - generalLedgerAccount type: type: string enum: - DOCUMENT required: - id - entityGuid - status - amount - contact - invoiceId - invoiceDate - files - url - invoiceFormat - documentType - splitPostings - type - title: Credit Cards 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.
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 or Transaction number for posting without 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.

AUDIT_TRAIL: Contains all the activity related to processing of the posting.
ATTACHMENT: Contains additional information related to the posting.
INVOICE: The invoice pdf document.
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: type: string format: date-time description: Date of the posting. example: '2024-01-01T00:00:00Z' invoiceFormat: type: string enum: - REGULAR - XRECHNUNG - ZUGFERD description: 'Format of the invoice.
REGULAR: Regular invoice format.
XRECHNUNG: XRechnung invoice format.
ZUGFERD: ZUGFeRD invoice format.' example: REGULAR dueDate: type: string format: date-time description: Due date of the booking. example: '2024-01-01T00:00:00Z' paymentCondition: description: Payment Condition Details allOf: - type: object properties: name: type: string description: Payment Condition Name example: Credit Card Discount nullable: true discountPercentage: type: number description: Discount Percentage example: 10 nullable: true discountPaymentDate: type: string format: date-time description: Discount Payment Date example: '2024-01-01T00:00:00Z' documentType: type: string description: Document type of the Posting. example: Incoming Invoice, Outgoing Invoice splitPostings: description: Split-postings can be a part of a posting. A split-posting contains a specific portion of an invoice, which could be necessary due to the need for a different GLA (General Ledger Account) for an amount or when more than one tax is applicable to an invoice. type: array items: type: object properties: note: type: string description: Note for the split-posting. example: Some note amount: type: number description: Amount of the split-posting. example: 100 costCenter: description: Cost center. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code costObject: description: Cost object. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code customCostDimension: description: Custom cost dimension. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code bookingKey: description: Booking key. allOf: - type: object properties: taxCode: type: string description: Tax code. example: '9' required: - taxCode postingText: type: string description: Posting text. example: Some text unitPrice: type: number description: Unit price of the booking. example: 10.5 quantity: type: number description: Quantity of the booking. example: 4 netAmount: type: number description: Net amount of the booking. example: 42.02 taxAmount: type: number description: Tax amount of the booking. example: 7.98 type: type: string description: 'Booking association type. ITEM: Line item booking. ADDITIONAL_DELIVERY_COST: Additional delivery cost booking.' example: ITEM purchaseOrderMetadata: description: Purchase order metadata associated with the booking. type: array items: type: object properties: orderNumber: type: string description: Purchase order number. example: PO-001 lineNumber: type: number description: Purchase order line number. example: 1 itemNumber: type: string description: Purchase order item number. example: '1000' locationCode: type: string description: Purchase order location code. example: LOC-001 nullable: true externalLineId: type: string description: Purchase order external line ID. example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5 nullable: true required: - orderNumber - lineNumber - itemNumber goodsReceiptMetadata: description: Goods receipt metadata associated with the booking. type: array items: type: object properties: receiptNumber: type: string description: Goods receipt number. example: GR-001 lineNumber: type: number description: Goods receipt line number. example: 1 itemNumber: type: string description: Goods receipt item number. example: '1000' locationCode: type: string description: Goods receipt location code. example: LOC-001 nullable: true externalLineId: type: string description: Goods receipt external line ID. example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5 nullable: true required: - receiptNumber - lineNumber - itemNumber additionalDeliveryCostsMetadata: description: Additional delivery costs metadata associated with the booking. type: array items: type: object properties: code: type: string description: Additional delivery cost code. example: FREIGHT required: - code generalLedgerAccount: type: string description: General ledger account. example: '8400' required: - amount - generalLedgerAccount type: type: string enum: - DOCUMENT - CARD_TRANSACTION - CARD_SETTLEMENT creditCardSettings: type: object properties: bookingAccount: type: string nullable: true transitAccount: type: string nullable: true payment: type: object properties: method: type: string enum: - CARD_TRANSACTION nullable: true paidAt: type: string format: date-time example: '2024-01-01T00:00:00Z' required: - id - entityGuid - status - amount - contact - invoiceId - invoiceDate - files - url - invoiceFormat - documentType - splitPostings - type - creditCardSettings - title: Reimbursement 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.
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 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' 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.

AUDIT_TRAIL: Contains all the activity related to processing of the posting.
ATTACHMENT: Contains additional information related to the posting.
INVOICE: The invoice pdf document.
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 splitPostings: description: Split-postings can be a part of a posting. A split-posting contains a specific portion of an invoice, which could be necessary due to the need for a different GLA (General Ledger Account) for an amount or when more than one tax is applicable to an invoice. type: array items: type: object properties: note: type: string description: Note for the split-posting. example: Some note amount: type: number description: Amount of the split-posting. example: 100 costCenter: description: Cost center. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code costObject: description: Cost object. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code customCostDimension: description: Custom cost dimension. allOf: - type: object properties: code: type: string description: Code of the cost center. example: CC-123 required: - code bookingKey: description: Booking key. allOf: - type: object properties: taxCode: type: string description: Tax code. example: '9' required: - taxCode postingText: type: string description: Posting text. example: Some text unitPrice: type: number description: Unit price of the booking. example: 10.5 quantity: type: number description: Quantity of the booking. example: 4 netAmount: type: number description: Net amount of the booking. example: 42.02 taxAmount: type: number description: Tax amount of the booking. example: 7.98 type: type: string description: 'Booking association type. ITEM: Line item booking. ADDITIONAL_DELIVERY_COST: Additional delivery cost booking.' example: ITEM purchaseOrderMetadata: description: Purchase order metadata associated with the booking. type: array items: type: object properties: orderNumber: type: string description: Purchase order number. example: PO-001 lineNumber: type: number description: Purchase order line number. example: 1 itemNumber: type: string description: Purchase order item number. example: '1000' locationCode: type: string description: Purchase order location code. example: LOC-001 nullable: true externalLineId: type: string description: Purchase order external line ID. example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5 nullable: true required: - orderNumber - lineNumber - itemNumber goodsReceiptMetadata: description: Goods receipt metadata associated with the booking. type: array items: type: object properties: receiptNumber: type: string description: Goods receipt number. example: GR-001 lineNumber: type: number description: Goods receipt line number. example: 1 itemNumber: type: string description: Goods receipt item number. example: '1000' locationCode: type: string description: Goods receipt location code. example: LOC-001 nullable: true externalLineId: type: string description: Goods receipt external line ID. example: e4cf0d1b-8514-4437-9b7f-2648b87ec8f5 nullable: true required: - receiptNumber - lineNumber - itemNumber additionalDeliveryCostsMetadata: description: Additional delivery costs metadata associated with the booking. type: array items: type: object properties: code: type: string description: Additional delivery cost code. example: FREIGHT required: - code generalLedgerAccount: type: string description: General ledger account. example: '8400' required: - amount - generalLedgerAccount type: type: string enum: - REIMBURSEMENT_ITEM description: Type of the posting entity example: REIMBURSEMENT_ITEM reason: type: string description: Reason for the reimbursement example: Business trip to Berlin reimbursementType: type: string enum: - GENERAL_EXPENSE - HOSPITALITY_EXPENSE - PER_DIEM - MILEAGE description: Type of the reimbursement item example: GENERAL_EXPENSE employee: description: Employee information associated with the reimbursement allOf: - type: object properties: name: type: string description: Employee name accountsPayableNumber: type: string description: Employee account payable number required: - name reimbursementDate: type: string format: date-time description: Date of the reimbursement example: '2024-01-01T00:00:00Z' reimbursementCase: description: Reimbursement case information allOf: - type: object properties: id: type: string title: type: string required: - id - title required: - id - entityGuid - status - amount - invoiceId - invoiceDate - files - url - splitPostings - type - reason - reimbursementType - employee - reimbursementDate - reimbursementCase failedPostings: description: Failed entities type: array items: type: object properties: id: type: string description: Unique identifier of the entity example: '1234' entityId: type: string description: Identifier of the entity (e.g., invoice ID, transaction ID) example: '1234' errorCode: type: string description: Candis error code example: EXPORTABLE_ENTITY_NOT_FOUND required: - id - errorCode required: - successfulPostings - failedPostings '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: [] components: securitySchemes: bearerAuth: type: http scheme: bearer description: OAuth2 access token issued by the Candis authorization server (Keycloak realm 'candis') sent as a Bearer token. Obtain via the OAuth2 authorization code or token-exchange flow at https://id.my.candis.io/auth/realms/candis/protocol/openid-connect/token.