{"openapi":"3.0.0","paths":{"/status":{"get":{"description":"Gets the status of the API","operationId":"AppController_getStatus","parameters":[],"responses":{"200":{"description":"The API is up and running.","content":{"text/plain":{"schema":{"type":"string","example":"The API is up and running."}}}}},"summary":"","tags":["App"]}},"/clients/deactivate-client-registration":{"post":{"description":"This call deactivates registration of the calling client.<br/><br/>Feedback needs to be received on registered webhook for event \"client.cancellation\", it is required to have this webhook registered before cancelling a subscription","operationId":"ClientController_deactivateClientRegistrationForClient","parameters":[],"responses":{"200":{"description":"Deactivation of client registration successfully initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientCancellationResponseDto"}}}},"400":{"description":"No Webhook with event \"client.cancellation\" was registered for client","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}}},"summary":"Deactivates the registration for the calling client","tags":["clients"]}},"/client-counter":{"get":{"description":"Retrieves a list of ClientCounters indicating the amount of counted items for a given period for client","operationId":"ClientCounterController_getClientCounterForClientBetweenDates","parameters":[{"name":"fromDate","required":true,"in":"query","description":"The from date in ISO format, cannot be more than 365 days ago.","schema":{"format":"date-time","example":"2023-01-01","type":"string"}},{"name":"toDate","required":true,"in":"query","description":"The to date in ISO format, cannot be more than 365 days ago.","schema":{"format":"date-time","example":"2023-01-02","type":"string"}},{"name":"flow","required":false,"in":"query","description":"Optional flow filter for client counter data - if provided only counters that for given flow will be returned","schema":{"type":"string"}}],"responses":{"200":{"description":"List of client counters for specified date range","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientCounterDto"}}}}},"400":{"description":"The provided request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}}},"summary":"Gets the client counters for client","tags":["client-counter"]}},"/webhooks":{"post":{"description":"Register a new webhook URL for a given list of events.<br/><br/>URL needs to be publicly accessible, accepting POST request and should return 200 OK immediatelty. Processing of the received data should happen asynchronously.  No data is expected in the response.<br/><br/>It is possible to register multiple webhooks for the same event, in that case all URLs will be called.  If no webhooks are registered for a given event, nothing will be called but processing will never be blocked.<br/><br/>A client can register a total of 10 webhooks","operationId":"WebhookController_createWebhook","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookRequestDto"}}}},"responses":{"201":{"description":"The webhook has been registered.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookResponseDto"}}}},"400":{"description":"The provided request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}}},"summary":"Register webhook","tags":["webhooks"]},"get":{"description":"Lists all registered webhooks.","operationId":"WebhookController_getWebhooks","parameters":[],"responses":{"200":{"description":"List of registered webhooks.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookResponseDto"}}}}},"400":{"description":"The provided request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}}},"summary":"List webhooks","tags":["webhooks"]}},"/webhooks/{ulid}":{"delete":{"description":"Deregister a webhook based on its ulid and clientUlid.<br/><br/>","operationId":"WebhookController_deleteWebhook","parameters":[{"name":"ulid","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The webhook has been deregistered.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWebhookResponseDto"}}}},"400":{"description":"The provided request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"404":{"description":"No webhook found for provided ulid and clientUlid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}}},"summary":"Deregister webhook","tags":["webhooks"]}},"/webhooks/secretKey":{"post":{"description":"Generate a webhook secret as a client. In case you need a new key, rerun this operation to invalidate the previous key and regenerate a new one","operationId":"WebhookController_generateWebhookSecretForClient","parameters":[],"responses":{"201":{"description":"The webhook secret has been generated for the client.","content":{"text/plain":{"schema":{"type":"string","example":"your-webhook-secret-key"}}}},"400":{"description":"The provided request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetailDto"}}}}},"summary":"Generate a webhook secret key","tags":["webhooks"]}},"/recognition-runs/initiate":{"post":{"description":"Create a new run for every document you want to process. Each file should be handled with a separate call, allowing you to specify a processing flow by providing a `flowName`. You can optionally provide customer and/or supplier information to guide the recognition process - this information serves as a reference to validate and match against the document content, reducing potential misidentification errors. Document processing will start after the file has been successfully uploaded using the provided AWS presigned URL.","operationId":"RecognitionRunsController_initiate","parameters":[],"requestBody":{"required":false,"description":"The request body containing the flow information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateResultDto"}}}},"400":{"description":"Invalid data provided.","content":{"application/json":{"schema":{"example":{"message":["flowName must be one of the following values: invoice, invoice-table, payslip, fiche281-10, conditionsClassification"],"error":"Bad Request","statusCode":400}}}}}},"summary":"Initiate a run","tags":["Recognition API v2"]}},"/recognition-runs/{runId}/result":{"get":{"operationId":"RecognitionRunsController_getResult","parameters":[{"name":"runId","required":true,"in":"path","description":"The unique identifier of the document recognition run.","schema":{"example":"da228a85-0207-4045-8f6e-1ea85882ae14","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResultDto"}}}},"404":{"description":"Run not found.","content":{"application/json":{"example":{"message":"Not Found","statusCode":404}}}}},"summary":"Retrieve the result of a document recognition run.","tags":["Recognition API v2"]}},"/recognition-runs/{runId}/feedback":{"post":{"operationId":"RecognitionRunsController_addFeedback","parameters":[{"name":"runId","required":true,"in":"path","description":"The unique identifier of the document recognition run.","schema":{"example":"da228a85-0207-4045-8f6e-1ea85882ae14","type":"string"}}],"requestBody":{"required":true,"description":"Feedback object describing which fields were correct or need correction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackDto"}}}},"responses":{"201":{"description":"Feedback successfully submitted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponseDto"}}}},"400":{"description":"Feedback already submitted or run not in SUCCESS state","content":{"application/json":{"examples":{"AlreadySubmitted":{"summary":"Feedback already submitted","value":{"message":"Run da228a85-0207-4045-8f6e-1ea85882ae14 already got feedback","error":"Bad Request","statusCode":400}},"InvalidStatus":{"summary":"Run is not in SUCCESS state","value":{"message":"Run da228a85-0207-4045-8f6e-1ea85882ae14 should have status SUCCESS instead of PROCESSING","error":"Bad Request","statusCode":400}}}}}},"404":{"description":"The specified run was not found","content":{"application/json":{"schema":{"example":{"message":"Not Found","statusCode":404}}}}}},"summary":"Submit feedback for a specific run","tags":["Recognition API v2"]}},"/recognition-runs/{runId}/improve":{"post":{"operationId":"RecognitionRunsController_improve","parameters":[{"name":"runId","required":true,"in":"path","description":"The unique identifier of the run to improve","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Related runIds for improving the given run result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImproveDto"}}}},"responses":{"201":{"description":"Improvement submitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImproveResponseDto"}}}},"400":{"description":"Improvement already submitted or invalid status","content":{"application/json":{"schema":{"example":{"message":"Run <id> already got improvement feedback","error":"Bad Request","statusCode":400}}}}},"404":{"description":"The specified run was not found","content":{"application/json":{"schema":{"example":{"message":"Not Found","statusCode":404}}}}},"422":{"description":"Not enough related runs have feedback to perform improvement","content":{"application/json":{"schema":{"example":{"message":"Only 1 related run has feedback, minimum 2 required","error":"Unprocessable Entity","statusCode":422}}}}}},"summary":"Improvement a specific run based on similar runs","tags":["Recognition API v2"]}},"/algorithms/list":{"get":{"operationId":"AlgorithmsController_getList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Algorithm"}}}}}},"summary":"Get list of algorithms","tags":["Algorithms"]}},"/algorithms/{id}/version/list":{"get":{"operationId":"AlgorithmsController_getAlgorithmVersionsForAlgorithm","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlgorithmVersion"}}}}}},"summary":"Get versions for an algorithm","tags":["Algorithms"]}}},"info":{"title":"Dokapi Recognition API","description":"# Steps to take when you want to use our Recognition model \n\n## Step 1: Register a Webhook\nFor efficient communication and to receive the results from the recognition, you need to register at least one webhook to the `recognition.finished` event.\n## Step 2: Initiate a run\nStart the recognition process by making a `POST` request to `/recognition-runs/initiate`.\nUpon successful initiation, you will be provided with a pre-signed URL and runID per PDF. This URL is where you will upload your document for recognition.\n## Step 3: Upload your PDF to the presigned url\nUse the pre-signed URL to upload your PDF document. A successful upload is essential for a recognition run. The PDF will be analysed by our recognition model.\n## Step 4: Receive a webhook\nAfter a successful start, your document will be transmitted to our recognition model. Depending upon the size of your PDF you'll receive a webhook with the results of the recognition.\n\n# Recognition API output\n\n## Webhook\n\nWhen your run is completed you will receive a webhook, with the following body:\n\nSuccessful run:\n```\n{\n    \"status\": \"SUCCESS\",\n    \"runId\": \"1234\",\n    \"info\": {\n        \"resultUrl\": \"<string> presigned url to get the result.json\",\n        \"textUrl\": \"<string> presigned url to get the content.json\",\n    }\n}\n```\nFailed Run:\n```\n{\n    \"status\": \"ERROR\",\n    \"runId\": \"1234\",\n    \"info\": {\n        \"error\": \"error message\"\n    }\n}\n```\n\n## Recognition Result Format (info.resultUrl)\n\nThe recognition results can be downloaded using the resultUrl in the webhook body. The result contains the recognized fields.\nDocuments that can be send to the recognition model are invoices or creditnotes.\n\n\n### Fields\n\nThe result JSON contains all detected header fields in the array `result.fields`. Each header field may include multiple predictions. Each prediction with its values, these values can varify due to the machine learning methods employed. \nFor simplicity, the first value in the list can be used if only the predicted value is of interest.\n\nThe output format of the recognition result `info.resultUrl` depends on the flow being used. Currently supported flows include:\n\n* `invoice`\n* `invoice-table`\n* `payslip`\n\nFor detailed information about the result format specific to each flow, please refer to the corresponding flow documentation.\n\n### Properties\n\nAdditional general document properties can be found in `result.properties`. These are flow-dependent; please refer to Swagger for more information.\n\n## The Document Text Content (info.textUrl)\n\nThe text of the document can be downloaded from the URL provided by `info.textUrl`. The content follows the `TextContentDto` schema, containing the recognized words along with metadata, such as their positions and sizes.\n\nWhen using the `invoice-table` flow, the extracted tables are also included here.\n\n## LinkedFiles\nSome flows generate additional artifacts like images of cropped receipts or documents `result.linkedFiles`. A list of the presigned URLs is returned here.\n\n## Important Notes\n- Presigned URLs for uploading files are valid for only 5 minutes. For downloading files, the presigned URLs are valid for 12 hours. Please ensure to save your output within this timeframe after receiving the presigned URL.\n\n- Supported document extensions include: [.pdf, .jpg, .png].\n\n# Flows\n\n## Invoice Flow\n\n### Fields\n\nThe following fields are supported:\n\n| Field                    | Desription                                                                                                                                                                  |\n|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Dates**                |\n| issueDate                | Date of the document.                                                                                                                                                       |\n| dueDate                  | Date by which the invoice is due. No general rule (e.g., +30 days) is applied unless explicitly mentioned on the document.                                                  |\n| dueDays                  | A dueDate will be calculated using the issueDate and dueDays whenever a value for dueDays is found, the issueDate is reliable, and the dueDate is unreliable.               |\n| **Document numbers**     |\n| invoiceNumber            | Document number.                                                                                                                                                            |\n| orderNumber              | Order number of the document.                                                                                                                                               |\n| **Payment Information**  |\n| reference                | The payment reference.                                                                                                                                                      |\n| structuredReference      | The structured payment reference, if available.                                                                                                                             |\n| balancePaid              | The amount that has already been paid.                                                                                                                                      |\n| balanceDue               | The amount that should be payed.                                                                                                                                            |\n| totalVatIncl             | The total VAT inclusive of the invoice.                                                                                                                                     |\n| totalVatExcl             | The total VAT exclusive of the invoice.                                                                                                                                     |\n| extraCost                | Additional costs (e.g., shipping costs) not included in the VAT breakdown table.                                                                                            |\n| **Supplier Information** |\n| IBAN                     | IBAN number of the supplier.                                                                                                                                                |\n| supplierName             | Company name of the supplier.                                                                                                                                               |\n| supplierVAT              | VAT number of the supplier.                                                                                                                                                 |\n| supplierVATCountry       | Two-letter country of the supplier, deducted from the VAT number.                                                                                                           |\n| supplierAddress**        | Address of the supplier.                                                                                                                                                    |\n| supplierBIC              | BIC of the supplier.                                                                                                                                                        |\n| supplierOrgID            | Organisation ID of the supplier. Words of detected positions are formatted as '{org-id-type}:{detected-org-id}', where orch-id-type is one of: \"GLN\", \"SIRET\", \"KVK\", \"OIN\" |\n| **Customer Information** |\n| customerName             | Company name of the customer.                                                                                                                                               |\n| customerVAT              | VAT number of the customer.                                                                                                                                                 |\n| customerVATCountry       | Two-letter country of the supplier, deducted from the VAT number.                                                                                                           |\n| customerAddress**        | Address of the customer.                                                                                                                                                    |\n| customerOrgID            | Organisation ID of the customer. Words of detected positions are formatted as '{org-id-type}:{detected-org-id}', where orch-id-type is one of: \"GLN\", \"SIRET\", \"KVK\", \"OIN\" |\n| **Other Fields**         |\n| VAT                      | List of all VAT numbers on the document.                                                                                                                                    |\n| vatAmount                | List of all VAT amounts on the document.                                                                                                                                    |\n| vatPercentage            | List of all VAT percentages on the document.                                                                                                                                |\n| lineAmount               | Total amount exclusive VAT for its VAT category (full list in the table section)                                                                                            |\n| lineArticleNumber        | The article number of the line item (full list in the table section)                                                                                                        |\n                                                                                                                                             |\n\n** Fields with subfields\n\nEach field Object has the following elements:\n\n- **name** : InvoiceFieldEnum\n- **positions** : list, List of detected items with their respective values and positions in the document  \n- **reliable** : boolean, Indicates whether the predictions for this field are deemed reliable (threshold applied: 0.75).  \n- **exists** : boolean, Indicates if the field is present in the document.  \n- **subfields** : list, Optional subfields associated with this field, such as address components.\n\n\n### Tables\n\nIn addition to header fields, the VAT breakdown table and detail lines can be found in `result.tables`. Up to three types of tables are available:\n-  `invoicelines_summary`: VAT breakdown table showing VAT percentages and their corresponding amounts.\n-  `invoicelines_table`: Detailed line items from the invoice.\n- `cash_discount`: Available cash discounts, sorted by date. (optional)\n\nEach table shares the same structure but may use the columns differently depending on its purpose:\n\n#### Invoice Lines Table (`invoicelines_table`)\nContains the detailed line items from the invoice. All fields are used as described below:\n\n| Field | Description |\n| ----- | ----------- |\n| lineId | The unique identifier for the line item in the table. |\n| description | Description of the line item, including product codes in the format \"[product_code] - product_description\" |\n| quantity | Total quantity of items referenced in the line. |\n| amount | Total amount for the line item, excluding VAT, divided by the quantity (float). The unit price excluding VAT. |\n| vatPercentage | Applicable VAT percentage, expressed as a float between 0 and 100. |\n| taxableAmount | Subtotal of the unit price of the line item that is subject to VAT (optional). |\n| info | Additional information for the line item. |\n\nFor table-fields in the `amount` column, the `position` contains:\n- `word`: Contains the VAT-exclusive unit price (calculated if necessary).\n- `originalWord`: (optional) When the document only contains VAT-inclusive prices for the line items, this field shows the original VAT-inclusive amount found in the document.\n- `calculation`: (optional) When the amount has been calculated from a VAT-inclusive price, this field shows the calculation performed (e.g., \"2.0/1.21\" for a price that was divided by 1.21 to remove 21% VAT).\n\nNote: The value of `taxableAmount` is in most cases equal to `amount`. An exception is the case of cash discounts in Belgium (“betalingskorting”), where the VAT amount is calculated over the subtotal reduced by the discount amount. The price including VAT of an item is then computed as:\n\n```\nTotal price (VAT Incl) = row.quantity * (row.taxableAmount * (1 + row.vatPercentage / 100) + row.amount - row.taxableAmount)\n```\n\n\n#### VAT Summary Table (`invoicelines_summary`)\nSummarizes VAT information. Only certain fields are meaningful:\n\n| Field         | Description                                                           |\n|---------------|-----------------------------------------------------------------------|\n| lineId        | Unique identifier for the row                                         |\n| description   | Human-readable description of the VAT category (e.g., \"Total of invoice 6% VAT\") |\n| amount        | Total amount exclusive VAT for this VAT category                      |\n| articleNumber | The article number for this item                                      |\n| vatPercentage | The VAT percentage for this category                                  |\n| quantity      | Always set to 1 (not meaningful for this table)                       |\n\n#### Cash Discount Table (`cash_discount`)\nContains available cash discount information. Uses specialized fields:\n\n| Field | Description |\n| ----- | ----------- |\n| cashDiscountDate | Date for applicable cash discount |\n| cashDiscountPercentage | Applicable percentage of the cash discount |\n| cashDiscountAmount | Amount of the applicable cash discount |\n| cashDiscountTotal | Total after applying the cash discount |\n\n**Notes:**\n- Other fields in the cash discount table may contain default values for compatibility reasons and should be ignored\n- The cashDiscountAmount is also included in the VAT Summary Table (`invoicelines_summary`) as a separate row when the VAT amount is calculated over the subtotal reduced by the cash discount amount. This row is distinguished by a VAT percentage of 0% and a description equal to \"Cash Discount\".\n\n---\n\n**Important Note:** Document amounts such as `totalVatIncl` can be derived from the detected fields or computed using the detected tables. You can choose which information to use or combine both.\n\n#### Pseudo Code: Print the VAT Breakdown Table\n```\ndef print_vat_breakdown_table(resultsObj) -> [None, str]:\n    print('VAT Breakdown Table:')\n    for table in resultsObj.tables:\n        if table.name == 'invoicelines_summary':\n            if table.reliable:\n                total_excl = 0\n                total_incl = 0\n                for row in table.content:\n                    print(row.description, row.vatPercentage, row.amount)\n                    total_excl += row.amount\n                    total_incl += row.amount * (1 + row.vatPercentage)\n                print('Total Excl:', total_excl)\n                print('Total Incl:', total_incl)\n                return None\n    print('Summary Table not found or not reliable.')\n    return None\n\n```\n### Properties\n* currency: ISO 4217 currency code\n* currency_info: Information about the currency\n* VATCountries: List of VAT countries found.\n* already_paid: Indicates whether the document has already been paid.\n* payment_method: The payment method used.\n* exempted from vat: Indicates if the supplier is exempt from VAT.\n* exempted from vat reason: Reason for VAT exemption.\n* doctype: The classification of the document, invoice, credit or receipt.\n\nRefer to the `InvoicePropertiesDto` for more details.\n\n### Classification Result\n\nThe flow classification output is presented in the `result.types`. \n\n**Note:** This can be ignored in most use cases.\n\n## Invoice-table Flow\n\n### Fields\nThis flow extracts the same fields as defined in the `invoice` flow.\n\n### Extracted tables\nExtracted tables are provided under `textContent.extracted_tables`, available via the URL specified in `info.textUrl`.\n\nThe result is an array of tables, each containing:\n* A cells array representing individual cells within the table.\n* Additional metadata at the table level.\n\nFor more details, refer to the schema definition ExtractedTableDto.\n\n## Payslip flow\n\n### Fields\n\nThe following fields are supported:\n\n| Field         | Desription      |\n| ------------- | -------------   |\n| **Dates** |\n| issueDate | Date of the payslip. |\n| payslipStartDate | Start date of the pay period covered by this payslip | \n| payslipEndDate | End date of the pay period covered by this payslip |\n| **Employee Information** |\n| familyName | Last name of the employee |\n| firstName |First name of the employee |\n| gender | Gender of the employee |\n| birthDate | Employee’s date of birth |\n| address | Residential address of the employee |\n| nationality | Employee’s nationality |\n| maritalStatus | Marital status of the employee |\n| dependents | Number of dependents under the employee’s care |\n| disabledDependents | Number of disabled dependents under the employee’s car |\n| nationalRegisterNumber | Official national identification number of the employee |\n| employmentStartDate | Date when the employee started employment |\n| employmentEndDate | Date when employment ended (if applicable) |\n| seniority | Duration or seniority level of the employee within the company |\n| employmentStatus | Status of employment |\n| IBAN | Employee’s IBAN bank account number |\n| BIC | Employee’s bank identification code | \n| **Employer Information** |\n| employerName | Name of the employer/company |\n| employerAddress | Employer’s registered business address |\n| employerVAT | Employer’s VAT identification number |\n| **Payslip Information**|\n| contract | Type of employment contract (e.g., permanent, temporary) |\n| jobTitle | Employee’s official job title or position |\n| mealVoucherAmountEmployee | Employee contribution amount of meal vouchers |\n| mealVoucherAmountEmployer | Employer contribution amount of meal vouchers |\n| ecoVoucherAmount | Total value of eco-vouchers provided |\n| socSecAmount | Amount contributed to social security |\n| workedDays | Total number of days worked in the pay period |\n| holidays | Number of holiday days taken within the pay period |\n| leaveDays | Number of leave days taken |\n| sickDays | Number of sick leave days in the pay period |\n| econUnemploymentDays | Days of economic unemployment during the pay period |\n| techUnemploymentDays | Days of technical unemployment during the pay period. |\n| baseSalary | Employee’s contractual base salary for the pay period |\n| baseSalaryUnit | e.g. \"euro/month\" or \"euro/hour\"|\n| depositedAmount | Amount actually deposited into the employee’s bank account |\n| withholdTax | Amount withheld for tax purposes |\n| grossAmount | Total gross salary before deductions |\n| taxableAmount | Portion of the salary subject to taxation |\n| netAmount | Net salary after all deductions |\n\n### Properties\n\n* Correction: Indicates whether the payslip contains corrections (e.g. from previous months).\n\n## Fiche281 flow\n\n### Fields\n\nThe following fields are supported:\n\n| Field         | Desription                                               |\n| ------------- |----------------------------------------------------------|\n| receiverNRN | The validated national registry number of the recipient. |\n| receiverName | Name of the recipient                                    | \n| year | The year of the payslip                                  |\n| debtorName | The name of the debtor                                   |\n\n### Tables\n\nIn addition to header fields, the VAT breakdown table and detail lines can be found in `result.tables`. Up to three types of tables are available:\n-  `codelines`: Overview of all the codes and their corresponding amounts.\n-  `code254`: Detailed breakdown of the transportation amounts `[float, '']`.\n\n#### Code Lines Table (`codelines`)\nContains available code - value information. Uses specialized fields:\n\n| Field              | Description                                                              |\n|--------------------|--------------------------------------------------------------------------|\n| code               | The code number                                                          |\n| amount             | The amount or value corresponding to the code `[float, '', 'yes', 'no']` |\n\n#### Code 254 Breakdown Table (`code254`)\nContains detailed breakdown information of the code 254 amounts. Uses specialized fields:\n\n| Field       | Description                                    |\n|-------------|------------------------------------------------|\n| description | The transport description                      |\n| amount      | The amount of the transportation `[float, '']` |\n\n## Conditions Classification flow\n\n### Type  \nContains the classification output of the flow.\n\n| Key                      | Description                                                                  |\n|--------------------------|------------------------------------------------------------------------------|\n| `name`                   | `\"conditions\"` if the probability is greater than 0.7, otherwise `\"invoice\"` |\n| `probability_invoice`    | The probability score (float) that the page is an invoice                    |\n| `probability_conditions` | The probability score (float) that the page contains conditions              |\n\n\n\n\n<!-- ### Entities\n**Note:** This section is only relevant in the splitter flow.\n\nA list of the detected entities within the document.\nThese entities are listed in the `result.entities`. -->","version":"1.1.109","contact":{}},"tags":[],"servers":[{"url":"https://recognition-api.dokapi.io/v1"}],"components":{"schemas":{"ProblemDetailDto":{"type":"object","properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type.","format":"uri","example":"https://httpstatuses.com/500"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"Service Unavailable"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem.","example":"The service is currently unable to handle the request."},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence of the problem.","example":"/errors/12345"},"status":{"type":"number","description":"The HTTP status code for this occurrence of the problem.","example":500},"uuid":{"type":"string","description":"A UUID that uniquely identifies this specific error occurrence.","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["title","detail"]},"ClientCancellationFeedbackDto":{"type":"object","properties":{"event":{"type":"string","description":"Will always be `client.cancellation` in this case."},"ulid":{"type":"string","description":"A unique identifier for this webhook invocation, requests with the same ULID coming in again can be ignored"},"body":{"type":"string","description":"A message being set as feedback for client cancellation","example":"Cancellation process completed successfully!"}},"required":["event","ulid","body"]},"ClientCancellationResponseDto":{"type":"object","properties":{"message":{"type":"string","example":"Client cancellation successfully initiated. Further communications will be sent to the client.cancellation webhook."}},"required":["message"]},"ClientCounterDto":{"type":"object","properties":{"clientUlid":{"type":"string","example":"01HT00M1TBRPRPN6HT5ARZ1R2F"},"creationTimestamp":{"type":"string","example":"2024-03-08T15:34:18.242Z"},"lastModifiedTimestamp":{"type":"string","example":"2024-03-08T15:34:18.242Z"},"flow":{"type":"string","description":"indication of for which flow we are incrementing the counter"},"count":{"type":"number","description":"current count for the counter in context of the flow"}},"required":["clientUlid","creationTimestamp","lastModifiedTimestamp","flow","count"]},"WebhookRequestDto":{"type":"object","properties":{"url":{"type":"string","description":"A valid HTTPS Webhook URL.","format":"url","example":"https://webhook-test.com/004818c78eecacef393fee5822991234"},"events":{"description":"A list of event identifiers to be received on this webhook.<br/><br/>","example":["outgoing-peppol-documents.sent","incoming-peppol-documents.received","client.cancellation"],"type":"array","items":{"type":"string"}}},"required":["url","events"]},"WebhookResponseDto":{"type":"object","properties":{"ulid":{"type":"string","example":"01HT00M1TBRPRPN6HT5ARZ1R2F"},"clientUlid":{"type":"string","example":"01HT00M1TBRPRPN6HT5ARZ1R2F"},"creationTimestamp":{"type":"string","example":"2024-03-08T15:34:18.242Z"},"lastModifiedTimestamp":{"type":"string","example":"2024-03-08T15:34:18.242Z"},"url":{"type":"string","format":"url","example":"https://webhook-test.com/004818c78eecacef393fee5822991234"},"events":{"example":["outgoing-peppol-documents.sent","incoming-peppol-documents.received","client.cancellation"],"type":"array","items":{"type":"string"}}},"required":["ulid","clientUlid","creationTimestamp","lastModifiedTimestamp","url","events"]},"CreateWebhookResponseDto":{"type":"object","properties":{"message":{"type":"string","description":"Info about the webhook being created or not","example":"Webhook created successfully"},"webhook":{"description":"Info about the webhook","allOf":[{"$ref":"#/components/schemas/WebhookResponseDto"}]}},"required":["message","webhook"]},"DeleteWebhookResponseDto":{"type":"object","properties":{"message":{"type":"string","description":"Info about the webhook being deleted or not","example":"Webhook deleted successfully"}},"required":["message"]},"Address":{"type":"object","properties":{"street":{"type":"string","description":"Street address","example":"Rue de la Loi"},"number":{"type":"string","description":"Number","example":"16"},"city":{"type":"string","description":"City","example":"Brussels"},"zipCode":{"type":"string","description":"Postal Code","example":"1000"},"country":{"type":"string","description":"Country","example":"BE"}},"required":["street","number","city","zipCode","country"]},"InvoiceEntityInfo":{"type":"object","properties":{"name":{"type":"string","description":"Name of the entity","example":"XYZ NV","nullable":true},"address":{"description":"Address of the entity","example":{"street":"Avenue Louise","number":"54","city":"Antwerp","zipCode":"2000","country":"BE"},"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/Address"}]},"entityId":{"type":"string","description":"Entity ID","example":"BE0123456789","nullable":true},"vatNumber":{"type":"string","description":"VAT Number","example":"BE0123456789","nullable":true}}},"AdditionalInfoDto":{"type":"object","properties":{"supplier":{"nullable":true,"description":"Optional supplier information to help improve recognition accuracy. When provided with an address, all address fields must be included.","type":"object","allOf":[{"$ref":"#/components/schemas/InvoiceEntityInfo"}]},"customer":{"nullable":true,"description":"Optional customer information to help improve recognition accuracy. When provided with an address, all address fields must be included.","type":"object","allOf":[{"$ref":"#/components/schemas/InvoiceEntityInfo"}]}}},"InitiateDto":{"type":"object","properties":{"flowName":{"default":"invoice","enum":["invoice","invoice-table","payslip","fiche281-10","conditionsClassification"],"type":"string","description":"The flow name of the process","example":"invoice"},"additionalInfo":{"description":"Provide optional information about either the customer, supplier or both to lower the uncertainty for the recognition model in certain situations. Each field is optional. When the address is included, all of its attributes are expected.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/AdditionalInfoDto"}]},"externalReference":{"type":"string","maxLength":255,"description":"External reference","nullable":true,"example":"external-reference-123"}}},"InitiateResultDto":{"type":"object","properties":{"runId":{"type":"string","description":"The unique identifier for the initiated run.","example":"35a0e772-8056-42eb-b208-9cd66e459988"},"fileUrl":{"type":"string","description":"The AWS presigned URL used to upload the file.","example":"https://aws-s3-bucket-url.com/file-upload-url"},"flowName":{"enum":["invoice","invoice-table","payslip","fiche281-10","conditionsClassification"],"type":"string","description":"The flow name of the process","example":"invoice","default":"invoice"},"externalReference":{"type":"string","description":"External reference","example":"external-reference-123","nullable":true}},"required":["runId","fileUrl","flowName"]},"ClassificationOutputDto":{"type":"object","properties":{"name":{"type":"string","description":"Label assigned for document classification based on the processing flow.","title":"Name","example":"invoice"},"probability":{"type":"number","description":"Probability score associated with the classification result.","title":"Probability","example":1}},"required":["name","probability"]},"LocationDto":{"type":"object","properties":{"x1":{"type":"number","description":"Top-left X coordinate of the location","title":"x1"},"y1":{"type":"number","description":"Top-left Y coordinate of the location","title":"y1"},"x2":{"type":"number","description":"Bottom-right X coordinate of the location","title":"x2"},"y2":{"type":"number","description":"Bottom-right Y coordinate of the location","title":"y2"}},"required":["x1","y1","x2","y2"]},"PositionDto":{"type":"object","properties":{"source":{"type":"string","description":"The source of the position data","title":"Source","example":"detected"},"page":{"type":"number","description":"The page number where the position is located","title":"Page","example":1},"location":{"description":"The location object with coordinates for the detected field","title":"Location","example":{"x1":0.79039,"y1":0.1976,"x2":0.86762,"y2":0.21024},"allOf":[{"$ref":"#/components/schemas/LocationDto"}]},"prob":{"type":"number","description":"Probability of the detection","title":"Prob","example":0.999940633773804},"word":{"type":"string","description":"Detected word or value","title":"Word","example":"VR-2407151"},"originalWord":{"type":"string","description":"The original word before any processing","title":"Originalword","example":"VR-2407151"},"updatedBy":{"type":"string","description":"The user or system that updated the value","title":"Updatedby","example":""},"statusMessage":{"type":"string","description":"Message explaining the status","title":"Statusmessage","example":"No validation performed"},"status":{"type":"string","description":"Current status of the field","title":"Status","example":"SKIPPED"}},"required":["source","page","location","prob","word"]},"SubfieldDto":{"type":"object","properties":{"name":{"type":"string","description":"The name of the subfield","title":"Name","example":"street"},"positions":{"description":"List of detected positions for the subfield","title":"Positions","type":"array","items":{"$ref":"#/components/schemas/PositionDto"}},"reliable":{"type":"boolean","description":"Indicates whether the predictions for this subfield are reliable","title":"Reliable"},"exists":{"type":"boolean","description":"Indicates if the subfield exists in the document","title":"Exists"}},"required":["name","positions","reliable","exists"]},"InvoiceFieldDto":{"type":"object","properties":{"name":{"enum":["issueDate","dueDate","dueDays","invoiceNumber","orderNumber","reference","structuredReference","balancePaid","balanceDue","totalVatIncl","totalVatExcl","extraCost","IBAN","supplierName","supplierVAT","supplierVATCountry","supplierAddress","supplierBIC","supplierOrgID","customerName","customerVAT","customerVATCountry","customerAddress","customerOrgID","VAT","vatAmount","vatPercentage"],"type":"string","description":"The name of the field","title":"Name"},"positions":{"description":"List of detected items with their respective values and positions in the document.","title":"Positions","items":{"type":"array","$ref":"#/components/schemas/PositionDto"},"type":"array"},"reliable":{"type":"boolean","description":"Indicates whether the predictions for this field are deemed reliable (threshold applied: 0.75).","title":"Reliable"},"exists":{"type":"boolean","description":"Indicates if the field is present in the document.","title":"Exists"},"subfields":{"description":"Optional subfields associated with this field, such as address components.","title":"Subfields","items":{"type":"array","$ref":"#/components/schemas/SubfieldDto"},"type":"array"}},"required":["name","positions","reliable","exists"]},"TablePositionDto":{"type":"object","properties":{"page":{"type":"number","description":"Page number (starting from 1) where the table position is located.","title":"Page","example":1},"location":{"description":"The location object with coordinates for the table position.","title":"Location","allOf":[{"$ref":"#/components/schemas/LocationDto"}]},"word":{"description":"The table cell value, which can be a string, number, or float.","title":"Word","oneOf":[{"type":"string"},{"type":"number"}],"example":0},"originalWord":{"description":"The original word before any processing","title":"Originalword","oneOf":[{"type":"string"},{"type":"number"}],"example":2},"calculation":{"type":"string","description":"The calculation performed on the table cell value. Only available for the amount column. The \"word\" field is equal to the result of this calculation.","title":"Calculation","example":"2.0/1.21"}},"required":["page","location","word"]},"TableFieldDto":{"type":"object","properties":{"positions":{"description":"List of positions for the field within the table.","title":"Positions","type":"array","items":{"$ref":"#/components/schemas/TablePositionDto"}},"reliable":{"type":"boolean","description":"Indicates whether the field data is considered reliable.","title":"Reliable"},"exists":{"type":"boolean","description":"Indicates if the field exists in the table.","title":"Exists"}},"required":["positions","reliable","exists"]},"InvoiceContentDto":{"type":"object","properties":{"lineId":{"description":"The unique identifier for the line item in the table.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"articleNumber":{"description":"Article number of the line item.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"description":{"description":"Description of the line item, including product codes in the format \"[prodcut_code] - product_description\"","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"quantity":{"description":"Total quantity of items referenced in the line.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"amount":{"description":"Unit price, VAT-exclusive","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"vatPercentage":{"description":"Applicable VAT percentage, expressed as a float between 0 and 100.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"taxableAmount":{"description":"Subtotal of the unit price of the line item that is subject to VAT (optional).","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"info":{"description":"Additional information for the line item.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"cashDiscountDate":{"description":"Date for applicable cash discount.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"cashDiscountPercentage":{"description":"Applicable percentage of the cash discount.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"cashDiscountAmount":{"description":"Amount of the applicable cash discount.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]},"cashDiscountTotal":{"description":"Total after applying the cash discount.","allOf":[{"$ref":"#/components/schemas/TableFieldDto"}]}},"required":["lineId","description","quantity","amount","vatPercentage","info"]},"InvoiceTableDto":{"type":"object","properties":{"name":{"enum":["invoicelines_summary","invoicelines_table","cashdiscount"],"type":"string","description":"The name of the table.","title":"Name"},"content":{"description":"List of rows in the table.","title":"Content","type":"array","items":{"$ref":"#/components/schemas/InvoiceContentDto"}},"header":{"description":"List of column names in the table.","title":"Header","example":["lineId","description","quantity","amount","articleNumber","vatPercentage","info","cashDiscountDate","cashDiscountPercentage","cashDiscountAmount","cashDiscountTotal"],"type":"array","items":{"type":"string"}},"reliable":{"type":"boolean","description":"Indicates whether the table data is reliable.","title":"Reliable"},"info":{"type":"string","description":"Additional information describing the table.","title":"Info","example":"generated table by invoicecnn postprocessor"}},"required":["name","content","header","reliable","info"]},"CurrencyInfoDto":{"type":"object","properties":{"reliable":{"type":"boolean","description":"Indicates if the currency data is reliable","title":"Reliable"},"name":{"type":"string","description":"ISO 4217 currency code","title":"Name","example":"EUR"}},"required":["reliable"]},"InvoicePropertiesDto":{"type":"object","properties":{"currency":{"type":"string","description":"ISO 4217 currency code.","title":"Currency","example":"EUR"},"currency_info":{"description":"Information about the currency","title":"Currency Info","allOf":[{"$ref":"#/components/schemas/CurrencyInfoDto"}]},"VATCountries":{"type":"object","description":"Mapping of VAT numbers to their respective countries (format: vatnr:vatcountry).","title":"Vatcountries","example":{"DE113826619":"DE","LU25239681":"LU"}},"already_paid":{"type":"boolean","description":"Indicates whether the document has already been paid.","title":"Already Paid"},"payment_method":{"enum":["cash","credit card","debit card","domicile","paypal","not paid","unknown"],"type":"string","description":"The payment method used","title":"Payment Method"},"exempted_from_vat":{"type":"boolean","description":"Indicates if the supplier is exempt from VAT.","title":"Exempted From Vat"},"exempted_from_vat_reason":{"enum":["","unknown","small business","exempted operations","reversed vat","reversed vat cocontractor","reversed vat intracommunair"],"type":"string","description":"Reason for VAT exemption","title":"Exempted From Vat Reason","example":"exempted operations"},"doctype":{"enum":["invoice","credit","receipt"],"type":"string","description":"Indicates the classification of the document, such as invoice or credit note.","title":"Doctype"},"split_required_prob":{"type":"number","description":"Probability that the document contains multiple components.","title":"Split Required Prob","example":0.09}},"required":["currency","currency_info","VATCountries","already_paid","payment_method","exempted_from_vat","exempted_from_vat_reason","doctype","split_required_prob"]},"InvoiceOutputDto":{"type":"object","properties":{"type":{"description":"List of classification outputs with their probabilities.","type":"array","items":{"$ref":"#/components/schemas/ClassificationOutputDto"}},"fields":{"description":"List of detected fields within the document.","type":"array","items":{"$ref":"#/components/schemas/InvoiceFieldDto"}},"tables":{"description":"List of tables detected in the document.","type":"array","items":{"$ref":"#/components/schemas/InvoiceTableDto"}},"properties":{"$ref":"#/components/schemas/InvoicePropertiesDto"}},"required":["type","fields","tables","properties"]},"PayslipFieldDto":{"type":"object","properties":{"name":{"enum":["familyName","firstName","gender","birthDate","address","nationality","maritalStatus","IBAN","BIC","dependents","disabledDependents","nationalRegisterNumber","employerName","employerAddress","employerVAT","issueDate","employmentEndDate","employmentStartDate","seniority","employmentStatus","contract","jobTitle","mealVoucherAmountEmployer","mealVoucherAmountEmployee","ecoVoucherAmount","workedDays","holidays","leaveDays","sickDays","econUnemploymentDays","techUnemploymentDays","baseSalary","socSecAmount","depositedAmount","withholdTax","grossAmount","taxableAmount","netAmount","payslipStartDate","payslipEndDate"],"type":"string","description":"The name of the field","title":"Name"},"positions":{"description":"List of detected items with their respective values and positions in the document.","title":"Positions","items":{"type":"array","$ref":"#/components/schemas/PositionDto"},"type":"array"},"reliable":{"type":"boolean","description":"Indicates whether the predictions for this field are deemed reliable (threshold applied: 0.75).","title":"Reliable"},"exists":{"type":"boolean","description":"Indicates if the field is present in the document.","title":"Exists"},"subfields":{"description":"Optional subfields associated with this field, such as address components.","title":"Subfields","items":{"type":"array","$ref":"#/components/schemas/SubfieldDto"},"type":"array"}},"required":["name","positions","reliable","exists"]},"PayslipPropertiesDto":{"type":"object","properties":{"correction":{"type":"boolean","description":"Indicates whether the payslip contains corrections (e.g. from previous months).","title":"Correction"}},"required":["correction"]},"PayslipOutputDto":{"type":"object","properties":{"fields":{"description":"List of detected fields within the document.","type":"array","items":{"$ref":"#/components/schemas/PayslipFieldDto"}},"properties":{"$ref":"#/components/schemas/PayslipPropertiesDto"}},"required":["fields","properties"]},"ConditionsClassificationDto":{"type":"object","properties":{"name":{"type":"string","description":"The classification label assigned to the document. This will be either \"invoice\" or \"conditions\" depending on the prediction result.","enum":["invoice","conditions"],"example":"invoice"},"probability_invoice":{"type":"number","description":"The probability score (between 0 and 1) that the document is an invoice.","title":"Probability (Invoice)","example":1},"probability_conditions":{"type":"number","description":"The probability score (between 0 and 1) that the document contains conditions.","title":"Probability (Conditions)","example":0}},"required":["name","probability_invoice","probability_conditions"]},"ConditionsOutputDto":{"type":"object","properties":{"type":{"description":"List of classification outputs with their probabilities.","type":"array","items":{"$ref":"#/components/schemas/ConditionsClassificationDto"}}},"required":["type"]},"LinkedFileDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the linked file","title":"Id","example":"abc123"},"fileUrl":{"type":"string","description":"Presigned URL for downloading the associated file","title":"Fileurl","example":"https://aws-s3-bucket-url.com/file-download-url"},"tag":{"type":"string","description":"Descriptive label for the file","title":"Tag","example":"image"}},"required":["id","fileUrl","tag"]},"InfoDto":{"type":"object","properties":{"resultUrl":{"type":"string","example":""},"textUrl":{"type":"string","example":""},"improvedResultUrl":{"type":"string","example":""},"error":{"type":"string","example":""},"message":{"type":"string","example":""},"extraFilesUrls":{"type":"array","items":{"$ref":"#/components/schemas/LinkedFileDto"}}}},"TextElementDto":{"type":"object","properties":{"size":{"type":"number","description":"The size of the text element, possibly a scaling factor.","example":-0.321},"page":{"type":"number","description":"The page number where the text element is located.","example":1},"position":{"description":"The position of the text element as an array of four floating-point numbers.","example":[0.03025,0.94299,0.03529,0.9323],"type":"array","items":{"type":"number"}},"word":{"type":"string","description":"The word or text element itself.","example":"V.01"},"transformed_position":{"description":"The transformed position of the text element as an array of four floating-point numbers.","example":[0.03025,0.94299,0.03529,0.9323],"type":"array","items":{"type":"number"}}},"required":["size","page","position","word","transformed_position"]},"PageDto":{"type":"object","properties":{"rotation":{"type":"number","description":"The rotation of the page in degrees.","example":0},"locale":{"type":"string","description":"The locale of the page, typically a language code.","example":"en-US"},"text":{"type":"string","description":"The text content of the page.","example":"Sample page text"}},"required":["rotation","locale","text"]},"TextContentInfoDto":{"type":"object","properties":{"page_count":{"type":"number","description":"The number of pages in the document.","example":5},"barcodes":{"description":"Information about barcodes found in the document.","example":[],"type":"array","items":{"type":"string"}},"pages":{"description":"An array of PageDto objects, each representing a page in the document.","type":"array","items":{"$ref":"#/components/schemas/PageDto"}}},"required":["page_count","barcodes","pages"]},"SpanDto":{"type":"object","properties":{"bbox":{"description":"Bounding box coordinates of the span [left, top, right, bottom]","example":[0.0521,0.43943,0.10252,0.44656],"type":"array","items":{"type":"number"}},"text":{"type":"string","description":"The text content of the span","example":"Produits"},"span_num":{"type":"number","description":"Unique identifier for the span within the document","example":128},"line_num":{"type":"number","description":"Line number the span belongs to","example":0},"block_num":{"type":"number","description":"Block number the span belongs to","example":0}},"required":["bbox","text","span_num","line_num","block_num"]},"TableCellDto":{"type":"object","properties":{"bbox":{"description":"Bounding box coordinates of the cell [left, top, right, bottom]","example":[0.0521,0.43943,0.36303,0.45724],"type":"array","items":{"type":"number"}},"column_nums":{"description":"Column indices this cell belongs to","example":[0],"type":"array","items":{"type":"number"}},"row_nums":{"description":"Row indices this cell belongs to","example":[0],"type":"array","items":{"type":"number"}},"column_header":{"type":"boolean","description":"Indicates if this cell is a column header","example":true},"subcell":{"type":"boolean","description":"Indicates if this cell is a subcell","example":false},"projected_row_header":{"type":"boolean","description":"Indicates if this cell is a projected row header","example":false},"cell_text":{"type":"string","description":"The full text content of the cell","example":"Produits et services consommés"},"spans":{"description":"Array of text spans that make up the cell content","type":"array","items":{"$ref":"#/components/schemas/SpanDto"}},"page":{"type":"number","description":"Page number where the cell appears","example":1}},"required":["bbox","column_nums","row_nums","column_header","subcell","projected_row_header","cell_text","spans","page"]},"ExtractedTableDto":{"type":"object","properties":{"cells":{"description":"An array of TableCellDto objects that make up this table.","type":"array","items":{"$ref":"#/components/schemas/TableCellDto"}},"page":{"type":"number","description":"Page number where this table is located.","example":1}},"required":["cells","page"]},"TextContentDto":{"type":"object","properties":{"content":{"description":"An array of text elements containing details such as size, page, position, word, and transformed position.","type":"array","items":{"$ref":"#/components/schemas/TextElementDto"}},"locale":{"type":"string","description":"The locale of the text content, typically representing the language code.","example":"en-US"},"info":{"description":"Additional information about the text content, such as page count and barcode data.","allOf":[{"$ref":"#/components/schemas/TextContentInfoDto"}]},"extracted_tables":{"description":"An array of tables extracted from the document. Each item has a `cells` array and other table-level metadata.","type":"array","items":{"$ref":"#/components/schemas/ExtractedTableDto"}}},"required":["content","locale","info"]},"ResultDto":{"type":"object","properties":{"status":{"enum":["PROCESSING","SUCCESS","ERROR","CREATED"],"type":"string","description":"The current status of the document processing run.","example":"SUCCESS"},"runId":{"type":"string","description":"The unique identifier for the initiated run.","example":"35a0e772-8056-42eb-b208-9cd66e459988"},"externalReference":{"type":"string","description":"External reference","nullable":true},"info":{"$ref":"#/components/schemas/InfoDto"},"result":{"description":"The result containing the output data.","oneOf":[{"$ref":"#/components/schemas/InvoiceOutputDto"},{"$ref":"#/components/schemas/PayslipOutputDto"},{"$ref":"#/components/schemas/ConditionsOutputDto"}]},"textContent":{"$ref":"#/components/schemas/TextContentDto"}},"required":["status","runId"]},"FeedbackField":{"type":"object","properties":{"name":{"type":"string","example":"totalVatIncl"},"correct":{"type":"boolean","example":false},"correction":{"type":"object","properties":{"exists":{"type":"boolean"},"word":{"type":"string"}},"required":["exists","word"]}},"required":["name","correct"]},"FeedbackDto":{"type":"object","properties":{"fields":{"example":[{"name":"totalVatIncl","correct":false,"correction":{"exists":true,"word":"120.67"}},{"name":"totalVatExcl","correct":true},{"name":"invoiceDate","correct":false,"correction":{"exists":true,"word":"12/20/2020"}}],"type":"array","items":{"$ref":"#/components/schemas/FeedbackField"}}},"required":["fields"]},"FeedbackResponseDto":{"type":"object","properties":{"feedbackId":{"type":"number","description":"The ID of the newly created feedback","example":123}},"required":["feedbackId"]},"ImproveDto":{"type":"object","properties":{"related":{"description":"List of related run IDs (UUIDs) that are associated with the improvement","example":["a1f2c3d4-e5f6-7890-abcd-1234567890ef","f9e8d7c6-b5a4-3210-fedc-0987654321ba"],"type":"array","items":{"type":"string"}}},"required":["related"]},"ImproveResponseDto":{"type":"object","properties":{"status":{"enum":["SUCCESS","FAILED"],"type":"string","description":"Status of the improvement process","example":"SUCCESS"},"improvedResultUrl":{"type":"string","description":"Pre-signed URL to download the improved result, if successful. Empty if failed.","example":"https://aws-s3-bucket-url.com/file-download-url"},"code":{"type":"number","description":"HTTP-like status code for the improvement result.","example":201},"message":{"type":"string","description":"Error or diagnostic message when improvement fails","example":"Only 1 related run has feedback, minimum 2 required"}},"required":["status","improvedResultUrl","code"]},"info":{"type":"object","properties":{"annotationTypes":{"type":"array","items":{"type":"object"}}},"required":["annotationTypes"]},"Algorithm":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"multiflow":{"type":"boolean"},"info":{"$ref":"#/components/schemas/info"}},"required":["id","name","multiflow","info"]},"AlgorithmVersion":{"type":"object","properties":{"id":{"type":"number"},"timeCreated":{"format":"date-time","type":"string"},"algorithm":{"$ref":"#/components/schemas/Algorithm"},"version":{"type":"string"}},"required":["id","timeCreated","algorithm","version"]}},"securitySchemes":{"oauth2-cc":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://dev-portal.dokapi.io/api/oauth2/token","scopes":{}}},"description":"This API uses OAuth2 Client Credentials. Client credentials can be retrieved from the subscription details.<br/><br/>The endpoints to which you have access depend on your subscription. If an endpoint does not appear to be available, it might not be included in your current subscription.","x-receive-token-in":"request-body","x-client-id":"","x-client-secret":""}}},"security":[{"oauth2-cc":[]}]}