{"openapi":"3.1.0","info":{"title":"Pevidytech API","version":"8eec3eeb"},"servers":[{"url":"https://api.pevidy.tech"}],"paths":{"/v1/health":{"get":{"operationId":"getHealth","summary":"Health check","responses":{"200":{"description":"The service is running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/health/ready":{"get":{"operationId":"getReadiness","summary":"Readiness check (database and document service)","description":"Runs `select 1` on the database and calls the health check of the document service, each with a 2 s limit; the answer is reused for 2 s. For monitoring; `/v1/health` stays the cheap liveness check.","responses":{"200":{"description":"The database and the document service answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadinessResponse"}}}},"503":{"description":"The database or the document service does not answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadinessResponse"}}}}}}},"/v1/openapi.json":{"get":{"operationId":"getOpenApiDocument","summary":"OpenAPI document of this API","responses":{"200":{"description":"The OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/usage":{"get":{"operationId":"getUsage","summary":"Usage of the calling account and key mode","description":"Dates are UTC calendar days and `to` is inclusive. The default range is the first day of the current UTC month to today. At most 366 days.","security":[{"bearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"description":"First day (UTC), `YYYY-MM-DD`.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"description":"Last day (UTC, inclusive), `YYYY-MM-DD`.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Usage numbers for the range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/inspect":{"post":{"operationId":"postDocumentsInspect","summary":"Facts about one PDF","description":"Reads one PDF and returns its facts (pages, encryption, text layer, forms, e-invoice, active content). Names and text of the document are never returned. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."}}}}}},"responses":{"200":{"description":"The facts of the PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InspectResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/assemble":{"post":{"operationId":"postDocumentsAssemble","summary":"Join PDFs and images into one PDF","description":"Joins PDF, JPEG and PNG parts in body order into one new PDF, optionally with a cover page, page numbers and bookmarks. Billed as one unit and the pages of the result. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["parts"],"properties":{"parts":{"type":"array","minItems":1,"items":{"type":"string","contentMediaType":"application/octet-stream"},"description":"One or more files (PDF, JPEG, PNG), sent as repeated `parts` fields. The order of the body is the order of the result."},"options":{"type":"string","contentMediaType":"application/json","description":"Optional text field: JSON of `AssembleOptions` (cover page, page numbers, bookmarks, part labels)."}}},"encoding":{"parts":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The assembled PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Decrypted":{"description":"Only when at least one input PDF was encrypted but opens without a password and it was decrypted (the result is not encrypted, the permission flags of the input are gone). Always `true`.","schema":{"type":"string","enum":["true"]}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/generate":{"post":{"operationId":"postDocumentsGenerate","summary":"Turn one HTML document into a PDF","description":"Renders one UTF-8 HTML file (at most 2097152 bytes) to a PDF in an isolated browser: JavaScript is off and nothing is loaded from the network or from files, so the HTML must be self-contained (inline `<style>`). Paper is A4 unless `options.paper` says `LETTER`. At most 100 pages. Billed as one unit and the pages of the result. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"text/html","description":"The HTML document, UTF-8, no NUL byte. The type is checked on the bytes, not from the name; a PDF, JPEG or PNG is refused."},"options":{"type":"string","contentMediaType":"application/json","description":"Optional text field: JSON of `GenerateOptions` (paper, landscape, margin, backgrounds)."}}},"encoding":{"file":{"contentType":"text/html"}}}}},"responses":{"200":{"description":"The generated PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The result cannot be delivered: `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX` (the PDF is larger than allowed). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/convert":{"post":{"operationId":"postDocumentsConvert","summary":"Turn an Office document, RTF, text or Markdown into a PDF","description":"Converts one file to a PDF. The kind is read from the bytes, never from the name: `docx`, `xlsx`, `pptx`, `odt`, `ods`, `odp`, `rtf`, `text`. Word, Excel, PowerPoint and OpenDocument files (`docx`, `xlsx`, `pptx`, `odt`, `ods`, `odp`), RTF and plain text are converted in an isolated LibreOffice without network access; fonts are those of the server image. Text with `format=markdown` is rendered as Markdown in the isolated browser of `generate` (JavaScript off, no outside requests). Refused before any conversion: macros and other code (VBA projects, macro-enabled parts, Excel 4.0 macro sheets and ActiveX controls, found by part name, content type or relationship; ODF `Basic/` or `Scripts/` at any depth; programs inside the file), relationship targets that run code or, except in hyperlinks, read local files, and old binary formats (`.doc`, `.xls`, `.ppt`), PDFs and images (`415 UNSUPPORTED_MEDIA_TYPE`); a ZIP with more than 10000 entries or more than 209715200 declared bytes, or package parts that inflate to more than 2097152 bytes each or 8388608 in total (`422 DOCUMENT_TOO_COMPLEX`); a ZIP or package part that cannot be read (`422 MALFORMED_DOCUMENT`). The file is at most 20 MiB (`413 FILE_TOO_LARGE`). A conversion that fails is `422 MALFORMED_DOCUMENT`, one that takes too long `504 PROCESSING_TIMEOUT`, a full queue `503 SERVICE_UNAVAILABLE`. At most 300 pages in the result. Billed as one unit and the pages of the result. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The document, at most 20 MiB. The kind (docx, xlsx, pptx, odt, ods, odp, rtf, text) is taken from the bytes, not from the name."},"format":{"type":"string","enum":["markdown"],"description":"Optional text field. Only for a `text` file: it is rendered as Markdown. Ignored for every other kind; without it a text file is converted as plain text."},"paper":{"type":"string","enum":["A4","LETTER"],"default":"A4","description":"Optional text field. Paper of Markdown only; ignored otherwise."},"landscape":{"type":"string","enum":["true","false"],"default":"false","description":"Optional text field. Landscape orientation of Markdown only; ignored otherwise."},"pdfa":{"type":"string","enum":["PDF/A-2b","PDF/A-3b"],"description":"Optional text field. Asks the LibreOffice service for PDF/A output. Not for Markdown (`INVALID_REQUEST`). The result is not validated here; use `POST /v1/documents/pdfa/validate`."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The converted PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The file cannot be converted or delivered: `MALFORMED_DOCUMENT` (broken file or failed conversion), `DOCUMENT_TOO_COMPLEX` (too many ZIP entries, too much declared size, or a PDF larger than allowed) or `TOO_MANY_PAGES`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/signatures/validate":{"post":{"operationId":"postDocumentsSignaturesValidate","summary":"Check the digital signatures of a PDF","description":"Checks every signature of one PDF with EU DSS on the **original bytes** (nothing is decrypted or rewritten). Per signature (at most 50): signer, claimed signing time, format level, whether the signed bytes are intact, whether the signature covers the whole file, what changed after signing (`NONE`, `ANNOTATIONS`, `FORM_FILL`, `OTHER`), the certificate chain as it is in the file and time stamps in the file. **Trust is not checked**: there is no trusted list, no OCSP, no CRL and no outgoing connection yet, so `trust` is always `NOT_CHECKED`, never \"valid\", and a certificate chain that does not lead to a known root is not an error. The claimed signing time comes from the signer and is not proven. A PDF without signatures gives an empty list. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The signatures of the PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignaturesValidateResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be checked: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` (more than 300 pages) or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pdfa/validate":{"post":{"operationId":"postDocumentsPdfaValidate","summary":"Check a PDF against PDF/A","description":"Checks one PDF with veraPDF against the part it declares or the requested `part` (1a, 1b, 2a, 2b, 2u, 3a, 3b, 3u, 4, 4e, 4f). A file that declares no part and has no `part` gives `compliant: false`, `declared: null` and `reason: NOT_DECLARED`. One entry per failed rule (at most 200, `truncated` says if there were more) with a stable rule id, the clause, the test number, the rule text of the veraPDF profile and the number of failures; no location and no value of the document is returned. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"part":{"type":"string","enum":["1a","1b","2a","2b","2u","3a","3b","3u","4","4e","4f"],"description":"Optional text field. The PDF/A part to check against; without it the part the file declares."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The result of the PDF/A check.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PdfaValidateResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be checked: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` (more than 300 pages) or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pdfua/validate":{"post":{"operationId":"postDocumentsPdfuaValidate","summary":"Check a PDF against PDF/UA (machine-checkable rules)","description":"Checks one PDF with veraPDF against PDF/UA-1 (default) or PDF/UA-2 (`part`). Only the rules a machine can check are tested; the answer carries a `note` that a human check is still needed, so `compliant: true` is not a statement of accessibility. Same answer shape as the PDF/A check (at most 200 failed rules, no location, no value of the document). Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"part":{"type":"string","enum":["1","2"],"default":"1","description":"Optional text field. The PDF/UA part to check against."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The result of the PDF/UA check.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PdfuaValidateResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be checked: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` (more than 300 pages) or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/accessibility/check":{"post":{"operationId":"postDocumentsAccessibilityCheck","summary":"Check the accessibility of a PDF (European Accessibility Act)","description":"Runs the veraPDF PDF/UA check (PDF/UA-1, or PDF/UA-2 with `part=2`) and 16 own checks (title, language, tags, structure, bookmarks, tab order, alt texts, headings, table headers, lists, links, form tooltips, fonts, scanned pages) and lists 8 checks only a person can make. Every answer holds all 24 checks in a fixed order, each with a stable id, a status (`pass`, `fail`, `warn`, `manual`), counts, 1-based pages (at most 100) and a title and fix text in German and English. The veraPDF failures are grouped by Matterhorn checkpoint (PDF/UA-1) or by clause (PDF/UA-2), at most 200 rules. **Passing is not proof of conformity** with the European Accessibility Act: `summary.conformityProven` is always `false`. Only counts, pages and ids are returned, never text of the document. With `format=pdf` the answer is a readable report PDF (itself tagged, PDF/UA-1), in `lang`. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"part":{"type":"string","enum":["1","2"],"default":"1","description":"Optional text field. The PDF/UA part to check against."},"format":{"type":"string","enum":["json","pdf"],"default":"json","description":"Optional text field. `json` or the report as `pdf`."},"lang":{"type":"string","enum":["de","en"],"default":"de","description":"Optional text field. Language of the report PDF; the JSON always has both languages."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The accessibility check, as JSON (default) or as a report PDF (`format=pdf`).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the checked file (not of the report).","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessibilityCheckResult"}},"application/pdf":{"schema":{"type":"string","format":"binary"},"description":"The report PDF (`format=pdf`), at most 4 MiB."}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be checked: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` (more than 300 pages) or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/forms/inspect":{"post":{"operationId":"postDocumentsFormsInspect","summary":"List the fields of a PDF form","description":"Reads the AcroForm fields of one PDF: fully qualified name, type, read-only and required flags, current value, options, maximum length and the pages and rectangles of the widgets (PDF points, origin top left). A PDF without a form gives an empty list. At most 2000 fields. Names and values of the form are returned to the caller and never logged. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."}}}}}},"responses":{"200":{"description":"The fields of the form.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormInspectResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document or the values cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/FormValuesRejectedProblem"}]}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/forms/fill":{"post":{"operationId":"postDocumentsFormsFill","summary":"Fill the fields of a PDF form","description":"Writes values into the form's own fields and returns the same form, still fillable (no flattening, no object streams). `values` maps a fully qualified field name to a string (text, radio, dropdown), a boolean (check box) or a list of strings (list box). 1 to 500 values of at most 4000 characters. All or nothing: every value is checked first and one refusal lists all bad fields (`FORM_VALUES_REJECTED`, at most 50, sorted by name, never the values). A form with XFA is filled and the XFA is removed (`Pevidytech-Xfa-Removed: true`). A form with a signed signature field is refused (`DOCUMENT_SIGNED`). Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","values"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF form. The type is taken from the bytes, not from the name."},"values":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON object from field name to value, at most 1048576 bytes."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The filled PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Xfa-Removed":{"description":"Only when the form had XFA data and it was removed. Always `true`.","schema":{"type":"string","enum":["true"]}},"Pevidytech-Decrypted":{"description":"Only when the form was encrypted but opens without a password and it was decrypted (the result is not encrypted, the permission flags of the input are gone). Always `true`.","schema":{"type":"string","enum":["true"]}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document or the values cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_TOO_COMPLEX`, `FORM_VALUES_REJECTED` or `DOCUMENT_SIGNED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/FormValuesRejectedProblem"}]}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/ocr":{"post":{"operationId":"postDocumentsOcr","summary":"Make a scanned PDF searchable","description":"Reads the pages of a scanned or mixed PDF with OCR on our own server and returns the same PDF with an invisible text layer (text render mode 3) placed word by word over each page that has no text layer yet; the page picture and all other content stay byte for byte. Pages with real text are left untouched unless `force` is `true`, which adds a layer on top (nothing is removed, the text may then be there twice). `languages`: 1 to 3 Tesseract codes from the list (`deu`, `eng`, `fra`, `ita`, `spa`, `por`, `nld`, `pol`, `ces`, `slk`, `slv`, `hrv`, `hun`, `ron`, `bul`, `ell`, `tur`, `rus`, `ukr`, `swe`, `dan`, `nor`, `fin`, `est`, `lav`, `lit`, `ara`, `chi_sim`), as a list or joined with `+`, default `deu+eng`; `pages`: optional range such as `1-3,5` (1-based); `dpi`: `200` or `300`, default `300`. At most 12 pages are read per request at 300 dpi and 15 at 200 dpi; more is `DOCUMENT_TOO_COMPLEX` (send a `pages` range). A page where no word is found is left as it is. A signed PDF is refused (`DOCUMENT_SIGNED`), an encrypted one too (`ENCRYPTED_DOCUMENT`). The result is the whole PDF or an error. Recognised text is never logged. Billed as one unit per page read, at least one, and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"languages":{"type":"string","default":"deu+eng","description":"1 to 3 different codes joined with `+`, each one of: deu, eng, fra, ita, spa, por, nld, pol, ces, slk, slv, hrv, hun, ron, bul, ell, tur, rus, ukr, swe, dan, nor, fin, est, lav, lit, ara, chi_sim. `ara` is right-to-left."},"pages":{"type":"string","description":"Pages to read, for example `1-3,5` (1-based, no duplicates). A page above the page count is `INVALID_REQUEST`. Default: all pages."},"dpi":{"type":"string","enum":["200","300"],"default":"300","description":"Resolution the pages are read at."},"force":{"type":"string","enum":["true","false"],"default":"false","description":"Also read pages that already have text and add a layer on top."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The same PDF with the new text layers.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Ocr-Pages":{"description":"Number of pages that got text. `0` is possible.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/compress":{"post":{"operationId":"postDocumentsCompress","summary":"Make a PDF smaller","description":"Shrinks one PDF with the query parameter `profile`: `lossless` (no change to images), `balanced` (default; images above 150 dpi are recompressed as JPEG) or `strong` (images above 110 dpi, lower quality). Images above 25000000 pixels are skipped, the rest of the file is still compressed. When the result is not smaller, the input comes back unchanged with `Pevidytech-Compressed: false` (not an error). Signed (`DOCUMENT_SIGNED`) and encrypted (`ENCRYPTED_DOCUMENT`) PDFs are refused: every profile changes the bytes. Billed as the pages of the PDF and one unit per started 10 MiB of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"profile","in":"query","required":false,"description":"How strongly images are recompressed.","schema":{"type":"string","enum":["lossless","balanced","strong"],"default":"balanced"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The compressed PDF, or the unchanged input (`Pevidytech-Compressed: false`).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Size-Before":{"description":"Size of the input, in bytes.","schema":{"type":"integer"}},"Pevidytech-Size-After":{"description":"Size of the result, in bytes. Never larger than the input.","schema":{"type":"integer"}},"Pevidytech-Images-Recompressed":{"description":"Number of images that were recompressed.","schema":{"type":"integer"}},"Pevidytech-Compressed":{"description":"`false` when the result was not smaller and the input is returned unchanged; `true` otherwise.","schema":{"type":"string","enum":["true","false"]}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be compressed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/to-office":{"post":{"operationId":"postDocumentsToOffice","summary":"Turn a PDF into an editable Office file","description":"Turns one PDF into a DOCX, XLSX or PPTX with the required query parameter `format` (no default). The file is built from the parse result (text layer, OCR for scans, ruled tables) by our own writers; no LibreOffice import is used. The goal is editable text, not a pixel copy. `docx`: flowing text with heading styles, real lists, tables with merged cells, page breaks between pages and pictures of image regions. `xlsx`: one sheet per table (`P<page>-T<n>`) with numbers and dates as numbers and dates, text as text, the first row bold; no formula is ever written; text outside tables is not exported. `pptx`: one slide per page with the page picture and invisible, searchable text boxes (the text is not directly editable on the slide). `Pevidytech-Quality-Warnings` lists the known losses as codes from a fixed list, or `none`. A PDF that opens without a password is read (`Pevidytech-Decrypted: true`); one that does not is refused (`ENCRYPTED_DOCUMENT`). Output above 52428800 bytes is `DOCUMENT_TOO_COMPLEX`. Billed as the pages of the PDF and one unit per page. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"format","in":"query","required":true,"description":"The Office format of the result.","schema":{"type":"string","enum":["docx","xlsx","pptx"]}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The Office file in the requested format.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the PDF.","schema":{"type":"integer"}},"Pevidytech-Quality-Warnings":{"description":"Known losses: codes from the fixed list (`columns-merged`, `fonts-default`, `text-truncated`, `images-skipped`, `no-tables`, `text-not-exported`, `numbers-ambiguous`, `page-size-mixed`, `pptx-text-invisible`, `pptx-page-picture-missing`, `ocr-source`, `tables-lost`, `empty-pages`) joined with `,`, sorted, without duplicates; or `none`.","schema":{"type":"string"}},"Pevidytech-Decrypted":{"description":"`true` when the PDF was encrypted and opened without a password.","schema":{"type":"string","enum":["true"]}}},"content":{"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"schema":{"type":"string","format":"binary"}},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","format":"binary"}},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be converted: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/docx/fill":{"post":{"operationId":"postDocumentsDocxFill","summary":"Fill a DOCX template with data","description":"Fills a DOCX template with a JSON object. Tags: `{{name}}`, `{{a.b}}`, `{{#each items}} … {{/each}}`, `{{#if flag}} … {{else}} … {{/if}}` and the filters `date`, `number`, `upper`, `lower`; nothing else is recognised. Values are always inserted as text, never as markup, and are never searched for tags. With the query parameter `output` the answer is the filled DOCX (`docx`, default) or the PDF made from it by the convert service (`pdf`). A broken template is `422 TEMPLATE_INVALID` with the part, the paragraph and the tag from the template, never a data value. Limits: template 10 MiB, data 1 MiB, 10000 `each` iterations. Billed as 1 unit for `docx` and 2 units for `pdf` (pages of the PDF; 0 for `docx`). Details: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"output","in":"query","required":false,"description":"The result: the filled DOCX or the PDF made from it.","schema":{"type":"string","enum":["docx","pdf"],"default":"docx"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["template","data"],"properties":{"template":{"type":"string","contentMediaType":"application/octet-stream","description":"The DOCX template, at most 10 MiB. The type is taken from the bytes, not from the name. Files with macros are refused."},"data":{"type":"string","contentMediaType":"application/json","maxLength":1048576,"description":"A JSON object, at most 1 MiB and 32 levels deep."}}},"encoding":{"template":{"contentType":"application/octet-stream"},"data":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"The filled DOCX (`output=docx`) or the PDF made from it (`output=pdf`).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the PDF. Only with `output=pdf`.","schema":{"type":"integer"}},"Pevidytech-Iterations":{"description":"Number of `each` iterations, nested ones included.","schema":{"type":"integer"}}},"content":{"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The template cannot be filled: `TEMPLATE_INVALID` (with the `template` member: `part`, `paragraph`, `tag`), `MALFORMED_DOCUMENT`, `DOCUMENT_TOO_COMPLEX` or `TOO_MANY_PAGES`. The `code` names the reason. Never a data value.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/TemplateInvalidProblem"}]}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/watermark":{"post":{"operationId":"postDocumentsPagesWatermark","summary":"Put a text or image watermark on pages","description":"Draws a text or an image (the second part `image`, JPEG or PNG) on the chosen pages with opacity, rotation, position and size, or as a repeated pattern (`tile`). The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesWatermarkOptions`. It is checked before the file is read."},"image":{"type":"string","contentMediaType":"application/octet-stream","description":"The image for `kind: image`, JPEG or PNG (by magic bytes), at most 40 000 000 pixels (`IMAGE_TOO_LARGE`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"},"image":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/stamp":{"post":{"operationId":"postDocumentsPagesStamp","summary":"Put a text stamp on pages","description":"Draws a text stamp (`text` or a `preset` such as `ENTWURF`), optionally with the date of the call (UTC), in a colour and with a border. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesStampOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/numbers":{"post":{"operationId":"postDocumentsPagesNumbers","summary":"Add page numbers","description":"Draws page numbers from a template with `{n}` and `{total}` at one of nine positions. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesNumbersOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/labels":{"post":{"operationId":"postDocumentsPagesLabels","summary":"Set the page labels of a PDF","description":"Writes `/PageLabels` (decimal, roman, letters, prefix, ranges). Nothing is drawn; a reader shows the label in its page box. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesLabelsOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/bates":{"post":{"operationId":"postDocumentsPagesBates","summary":"Add Bates numbers","description":"Draws Bates numbers (prefix, zero-padded number, suffix), one running number over all pages of the request. A number that needs more digits than `digits` is `INVALID_REQUEST`. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesBatesOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/flatten":{"post":{"operationId":"postDocumentsPagesFlatten","summary":"Burn form fields and annotations into the pages","description":"Burns form fields and annotations into the page content and removes them. Links stay; hidden annotations and pop-ups are dropped. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesFlattenOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/duplicate":{"post":{"operationId":"postDocumentsPagesDuplicate","summary":"Copy pages","description":"Copies the chosen pages `copies` times, after each page or at the end. A result above the page limit is `TOO_MANY_PAGES`. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesDuplicateOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/insert-blank":{"post":{"operationId":"postDocumentsPagesInsertBlank","summary":"Insert blank pages","description":"Inserts blank pages after the given page numbers (0 is before the first page); each has the size of a neighbour page. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesInsertBlankOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/rotate":{"post":{"operationId":"postDocumentsPagesRotate","summary":"Rotate pages","description":"Adds the angle to the rotation of the chosen pages. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesRotateOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/delete":{"post":{"operationId":"postDocumentsPagesDelete","summary":"Delete pages","description":"Removes the chosen pages. Deleting all pages is `INVALID_REQUEST`. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesDeleteOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/reorder":{"post":{"operationId":"postDocumentsPagesReorder","summary":"Reorder or select pages","description":"Gives the pages the order of `order`. A full list reorders; a shorter list keeps and orders only the listed pages and drops the rest. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesReorderOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pages/linearize":{"post":{"operationId":"postDocumentsPagesLinearize","summary":"Linearize a PDF for fast web view","description":"Rewrites the PDF with `qpdf --linearize` so a reader can show the first page before the whole file has loaded. The pages are not changed; no options. A PDF that is already linearized is rewritten the same way. The result is the changed PDF. Signed PDFs are refused (`DOCUMENT_SIGNED`), encrypted ones too (`ENCRYPTED_DOCUMENT`); a result above 300 pages is `TOO_MANY_PAGES`. Billed as the pages of the input and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `PagesLinearizeOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The changed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pages-Changed":{"description":"Number of pages the tool touched (drawn on, deleted, rotated, flattened).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/barcodes/stamp":{"post":{"operationId":"postDocumentsBarcodesStamp","summary":"Draw barcodes and QR codes on PDF pages","description":"Draws 1 to 50 codes (`qr`, `datamatrix`, `code128`, `ean13`, `pdf417`) on the chosen pages as vector rectangles (no image, no font for the bars). `rect` is a fraction of the page as shown (after `/Rotate`, inside the CropBox), origin top left; the code is centred in it and scaled to fit, and the quiet zone is inside the rectangle. `color` is `black` or `#rrggbb` with a contrast of at least 4.5 against white; a module smaller than 0.3 point is `INVALID_REQUEST`. Payload limits: QR 2000 bytes, DataMatrix 1500, PDF417 1000, Code 128 80 ASCII characters, EAN-13 12 digits (check digit calculated) or 13 (check digit verified). Quiet zone defaults in modules: qr 4, datamatrix 1, code128 10, ean13 10, pdf417 2. A signed PDF is refused (`DOCUMENT_SIGNED`; a document signature that is not a form field is not found), an encrypted one too (`ENCRYPTED_DOCUMENT`). Payloads are never logged. Billed as one unit per request and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `BarcodeStampOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The PDF with the codes drawn.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the PDF.","schema":{"type":"integer"}},"Pevidytech-Codes":{"description":"Number of codes drawn (stamp) or found (read).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/barcodes/read":{"post":{"operationId":"postDocumentsBarcodesRead","summary":"Find and read barcodes and QR codes in a PDF","description":"Renders the pages (`pages`, default all; `dpi` 200 default or 300) and answers every code found: `page`, `format` (`qr`, `datamatrix`, `code128`, `ean13`, `pdf417`, `ean8`, `upca`, `code39`, `itf`), `text` (or `textBase64` when the bytes are not UTF-8), `rect` (fractions of the page as shown) and `confidence` where the reader gives one (not comparable between formats). Codes are sorted by page, top to bottom, left to right; duplicates are returned once. At most 12 pages are read per request at 300 dpi and 15 at 200 dpi; more is `DOCUMENT_TOO_COMPLEX`. A damaged code that error correction cannot read is not returned. Swiss QR bill and GiroCode payloads also get `parsed` when `parse` is true. The payload is returned to the caller and never logged. An encrypted PDF is refused (`ENCRYPTED_DOCUMENT`); a signed one is read. Billed as one unit per page read, at least one, and the pages rendered. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `BarcodeReadOptions`. It is checked before the file is read."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The codes found.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the PDF.","schema":{"type":"integer"}},"Pevidytech-Codes":{"description":"Number of codes drawn (stamp) or found (read).","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BarcodeReadResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/barcodes/image":{"post":{"operationId":"postBarcodesImage","summary":"Make one barcode or QR code as an image","description":"Answers one code as SVG (one path, `viewBox` in modules, no script, no external reference, no payload text) or PNG (`scale` pixels per module, 1 to 32, default 4; at most 4000000 pixels, more is `INVALID_REQUEST`). No PDF is needed. Payload limits: QR 2000 bytes, DataMatrix 1500, PDF417 1000, Code 128 80 ASCII characters, EAN-13 12 digits (check digit calculated) or 13 (check digit verified). Quiet zone defaults in modules: qr 4, datamatrix 1, code128 10, ean13 10, pdf417 2. Payloads are never logged. Billed as one unit per request. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"format","in":"query","required":false,"description":"The image type.","schema":{"type":"string","enum":["svg","png"],"default":"svg"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BarcodeImageRequest"}}}},"responses":{"200":{"description":"The image.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Barcode-Modules":{"description":"Size of the code in modules: `<width>x<height>`, decimal integers.","schema":{"type":"string"}}},"content":{"image/svg+xml":{"schema":{"type":"string"}},"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/email-to-pdf":{"post":{"operationId":"postDocumentsEmailToPdf","summary":"Turn an e-mail (EML or MSG) into a PDF with its attachments","description":"Turns one e-mail file (EML, or Outlook MSG; the kind is read from the bytes, at most 26214400 bytes) into one PDF: a header block (from, to, cc, date, subject), the body, then the attachments. With `attachments=append` (default) PDFs are appended, images become pages, Office files are converted, and everything else (and anything that cannot be appended, with the reason) is listed by name and size; `list` writes the list only, `none` the body only. Nothing is loaded from the network: remote images, links, scripts and styles of the message are never fetched. A nested e-mail, a calendar item and an OLE object are listed, not unpacked. At most 50 attachments and 300 pages. Billed as one unit for the message plus one per Office conversion and the units of the image pages. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The e-mail, EML or MSG. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Optional text field: JSON of `EmailToPdfOptions` (`attachments`: `append`, `list`, `none`, default `append`; `paper`; `landscape`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The e-mail cannot be read or the result cannot be delivered: `MALFORMED_DOCUMENT`, `DOCUMENT_TOO_COMPLEX` or `TOO_MANY_PAGES`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/render-office":{"post":{"operationId":"postDocumentsRenderOffice","summary":"Turn pages of an Office document into images","description":"Converts one Office, RTF or text file to a PDF as `convert` does (same kind detection and macro refusal), then renders pages to images as `render` does. One page gives the image, several pages give a ZIP. Query `format` is `png` (default) or `jpeg` (`webp` and `tiff` are `INVALID_REQUEST`), `dpi` 72 to 300, `pages` at most 20 per request. The query is checked before the file is read. A document of more than 300 pages is `TOO_MANY_PAGES`, before anything is rendered. Billed as the conversion unit plus one unit per rendered page. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["png","jpeg"],"default":"png"}},{"name":"dpi","in":"query","required":false,"schema":{"type":"integer","minimum":72,"maximum":300,"default":150}},{"name":"pages","in":"query","required":false,"description":"Pages to render, for example `1-3,5` (1-based, no duplicates). A page above the page count is `INVALID_REQUEST`. Default: `1`.","schema":{"type":"string","default":"1"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The Office, RTF or text file, at most 20 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"One image, or a ZIP of images for several pages.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the converted PDF.","schema":{"type":"integer"}},"Pevidytech-Rendered-Pages":{"description":"Number of images that were made.","schema":{"type":"integer"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be converted or rendered: `MALFORMED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/render-html":{"post":{"operationId":"postDocumentsRenderHtml","summary":"Turn pages of an HTML document into images","description":"Converts one HTML file to a PDF as `generate` does (isolated browser, JavaScript off, nothing loaded from the network), then renders pages to images as `render` does. One page gives the image, several pages give a ZIP. Query `format` is `png` (default) or `jpeg` (`webp` and `tiff` are `INVALID_REQUEST`), `dpi` 72 to 300, `pages` at most 20 per request. The query is checked before the file is read. A document of more than 300 pages is `TOO_MANY_PAGES`, before anything is rendered. Billed as the conversion unit plus one unit per rendered page. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["png","jpeg"],"default":"png"}},{"name":"dpi","in":"query","required":false,"schema":{"type":"integer","minimum":72,"maximum":300,"default":150}},{"name":"pages","in":"query","required":false,"description":"Pages to render, for example `1-3,5` (1-based, no duplicates). A page above the page count is `INVALID_REQUEST`. Default: `1`.","schema":{"type":"string","default":"1"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"text/html","description":"The HTML document, UTF-8, no NUL byte. The type is checked on the bytes, not from the name."}}},"encoding":{"file":{"contentType":"text/html"}}}}},"responses":{"200":{"description":"One image, or a ZIP of images for several pages.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the converted PDF.","schema":{"type":"integer"}},"Pevidytech-Rendered-Pages":{"description":"Number of images that were made.","schema":{"type":"integer"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be converted or rendered: `MALFORMED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/images-to-pdf":{"post":{"operationId":"postDocumentsImagesToPdf","summary":"Turn images into one PDF","description":"Turns 1 to 100 images into one PDF, in the order of the `files` parts, one page per image (a TIFF page is an image), at most 300 pages. Accepted, by the bytes: JPEG, PNG, WebP, BMP and TIFF (baseline, strips; compression none, LZW, Deflate, PackBits). HEIC, CCITT, tiled, BigTIFF, JPEG-in-TIFF and CMYK TIFF are refused (`UNSUPPORTED_MEDIA_TYPE`). An image above 40000000 pixels is `IMAGE_TOO_LARGE`. Billed as one unit per started 10 images and the pages of the result. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["files"],"properties":{"files":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","contentMediaType":"application/octet-stream"},"description":"The images, one part per image. The type is taken from the bytes."},"paper":{"type":"string","enum":["A4","LETTER"],"default":"A4","description":"Optional text field. Paper of the pages."}}},"encoding":{"files":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"An image cannot be processed: `MALFORMED_DOCUMENT`, `IMAGE_TOO_LARGE`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/render":{"post":{"operationId":"postDocumentsRender","summary":"Turn pages of a PDF into images","description":"Renders pages of one PDF to images on a white background. One page gives the image, several pages give a ZIP (`page-0001.<ext>`, named by the page number). At most 20 pages per request and 50331648 bytes of result (`DOCUMENT_TOO_COMPLEX`). A very large page is rendered smaller than `dpi` says (not an error). Encrypted PDFs are refused. Billed as one unit per rendered page. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["png","jpeg","webp","tiff"],"default":"png"}},{"name":"dpi","in":"query","required":false,"schema":{"type":"integer","minimum":72,"maximum":300,"default":150}},{"name":"pages","in":"query","required":false,"description":"Pages to render, for example `1-3,5` (1-based, no duplicates). A page above the page count is `INVALID_REQUEST`. Default: `1`.","schema":{"type":"string","default":"1"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"One image, or a ZIP of images for several pages.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the PDF.","schema":{"type":"integer"}},"Pevidytech-Rendered-Pages":{"description":"Number of images that were made.","schema":{"type":"integer"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}},"image/tiff":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be rendered: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/url-to-pdf":{"post":{"operationId":"postDocumentsUrlToPdf","summary":"Turn a web page into a PDF","description":"Renders one web page to a PDF in an isolated browser. Off by default: until the operator lists host names, every call is `403 URL_NOT_ALLOWED`. Only `https` on the default port, no user info, no IP address, and a host name that is on the list and resolves to public addresses only. At most 100 pages. Billed as one unit and the pages of the result. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlToPdfRequest"}}}},"responses":{"200":{"description":"The PDF of the page.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"`URL_NOT_ALLOWED`: the URL is not allowed (the default); or `FORBIDDEN`: the key is limited to other operations. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The page cannot be rendered or delivered: `MALFORMED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/pdfa":{"post":{"operationId":"postDocumentsPdfa","summary":"Make a PDF archivable (PDF/A)","description":"Converts one PDF to PDF/A with the query parameter `part`: `2b` (default), `2u` or `3b`. What cannot be converted is refused, never faked: `422 PDFA_NOT_POSSIBLE` with `reasons` (a code and, where it belongs to one page, the page; never a name or text of the document; at most 100). Signed and encrypted PDFs are refused with the reasons `signed` and `encrypted`. **Converted is not validated:** with `verify=true` (default `false`, it costs time) the result is also checked with veraPDF; if veraPDF does not accept it, the answer is `500 INTERNAL` and no file is sent, otherwise `Pevidytech-Pdfa-Verified: true`. With `ua=basic` and `lang` (BCP 47) the document language, the title and `DisplayDocTitle` are set, and `MarkInfo` only when the file already has a structure tree; the file is never claimed as PDF/UA (`Pevidytech-Ua: not-tagged` says it has no tags). Billed as the pages of the PDF and one unit per started 10 pages, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"part","in":"query","required":false,"description":"The PDF/A part to make.","schema":{"type":"string","enum":["2b","2u","3b"],"default":"2b"}},{"name":"verify","in":"query","required":false,"description":"Check the result with veraPDF before it is sent. Costs time. If veraPDF does not accept the file, the answer is `500 INTERNAL` and no file.","schema":{"type":"boolean","default":false}},{"name":"ua","in":"query","required":false,"description":"PDF/UA basics: language, title, `DisplayDocTitle`, and `MarkInfo` when a structure tree exists. Needs `lang`.","schema":{"type":"string","enum":["basic"]}},{"name":"lang","in":"query","required":false,"description":"Language of the document, a BCP 47 tag (letters and digits in subtags separated by `-`, 2 to 35 characters). Only with `ua=basic`, where it is required.","schema":{"type":"string","minLength":2,"maxLength":35}},{"name":"title","in":"query","required":false,"description":"Title of the document, 1 to 200 characters. Only with `ua=basic`; without it the title of the file is used.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The PDF/A file.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Pdfa-Part":{"description":"The part that was made.","schema":{"type":"string","enum":["2b","2u","3b"]}},"Pevidytech-Pdfa-Verified":{"description":"Only sent when veraPDF accepted the file (`verify=true`). Always `true`.","schema":{"type":"string","enum":["true"]}},"Pevidytech-Ua":{"description":"Only sent with `ua=basic`: `basic` when the file has a structure tree, `not-tagged` when not. Neither is a claim of PDF/UA.","schema":{"type":"string","enum":["basic","not-tagged"]}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be made PDF/A or processed: `PDFA_NOT_POSSIBLE` (with `reasons`), `MALFORMED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/build":{"post":{"operationId":"postBuild","summary":"Run several document actions in one call","description":"Chains the actions of `instructions` in order and answers with the result of the last step; the result of one step is the input of the next and no intermediate file is stored or returned. The parts are `instructions` (**first**, JSON, at most 262144 bytes) and `file1` … `fileN` (at most 10, together at most 33554432 bytes; the type is taken from the bytes). `parts` become one PDF in the order given (a PDF or image as `file`, with an optional page list `pages` such as `1-3,5`; `html` and `office` are converted first). `actions` (at most 10) are steps of the allowlist: `compress`, `ocr`, `redact`, `protect`, `unlock`, `forms.fill`, each with the options of its single route; `protect` only last, `unlock` only first. `output` is `pdf`, `image` (`format` png or jpeg, `dpi` 72, 150, 300) or `json` (the `parse` result). The operation switch and the key scope of `documents.build` and of every used step apply; one step operation switched off is `OPERATION_DISABLED` for the whole build before any step runs. The first failing step stops the build: the error answer has the code of the single route plus `step` (the zero-based index of the action, `-1` for the input stage, the number of actions for the output stage) and `operation`; nothing from the document. Billed as the sum of the steps on the declared quantities (uploaded bytes and pages after page selection), one usage row per step with one build id; a failed build bills nothing. A build with `protect` or `unlock` is not idempotent. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["instructions","file1"],"properties":{"instructions":{"type":"string","contentMediaType":"application/json","maxLength":262144,"description":"JSON of `BuildInstructions`. Must be the first part of the request."},"file1":{"type":"string","contentMediaType":"application/octet-stream","description":"The first file; `file2` … `file10` follow the same rules."}},"patternProperties":{"^file([2-9]|10)$":{"type":"string","contentMediaType":"application/octet-stream"}}},"encoding":{"instructions":{"contentType":"application/json"},"file1":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The result of the last step: a PDF, an image (PNG or JPEG) or the `parse` result as JSON.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Build-Id":{"description":"ID of the build (`bld_…`), the same in every usage row of it.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Units":{"description":"Units billed for the whole build (the sum of its steps).","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/ParseResult"}}}},"400":{"description":"The request or the `instructions` are malformed (not the first part, an unknown `type` or key, a limit broken, a page list out of range). The answer names the wrong path of `instructions` only, never a value.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"A step failed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `WRONG_PASSWORD`, `NOT_ENCRYPTED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`: the code of the single route, with `step` and `operation`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}}}}}},"/v1/build/estimate":{"post":{"operationId":"postBuildEstimate","summary":"Price a build before it runs","description":"Takes the same `instructions` and only the size and page count of each file (no files) and answers the units per step and their sum. It costs no unit, writes no usage row, takes no quota and no concurrency slot, reads no file and runs no step. The sum equals the units billed by `POST /v1/build` for files of those sizes and page counts. A switched-off step operation is answered with `OPERATION_DISABLED`, as the build would.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildEstimateRequest"}}}},"responses":{"200":{"description":"The units per step and the sum.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildEstimateResponse"}}}},"400":{"description":"The request or the `instructions` are malformed (not the first part, an unknown `type` or key, a limit broken, a page list out of range). The answer names the wrong path of `instructions` only, never a value.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}}},"422":{"description":"A step failed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `WRONG_PASSWORD`, `NOT_ENCRYPTED`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX`: the code of the single route, with `step` and `operation`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/BuildProblem"}]}}}}}}},"/v1/documents/protect":{"post":{"operationId":"postDocumentsProtect","summary":"Put a password on a PDF","description":"Encrypts one PDF with AES-256 (revision 6); RC4 and AES-128 are never written. The `options` part holds `userPassword` (optional: without it the file opens for everyone and only the permissions apply), `ownerPassword` (required, must differ from the user password) and `permissions` (`print` none, low or full; `modify`, `copy`, `annotate`, `fillForms`, `assemble`; `accessibility` default true). Passwords are 1 to 128 UTF-8 bytes, without NUL, CR or LF. A PDF with a signed signature field (`DOCUMENT_SIGNED`) and a PDF that already needs a password (`ENCRYPTED_DOCUMENT`, use unlock first) are refused. Passwords are never stored or logged, and never in an error answer. The route is not idempotent: an `Idempotency-Key` header is ignored, a retry runs and is billed again. Billed as the pages of the PDF and one unit. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 32 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","maxLength":4096,"description":"Required text field: JSON of `ProtectOptions` (`userPassword`, `ownerPassword`, `permissions`). Secret.","x-secret":true}}},"encoding":{"file":{"contentType":"application/octet-stream"},"options":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"The encrypted PDF (AES-256).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Cache-Control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed or the options part is invalid. The answer never names a value of the options.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/unlock":{"post":{"operationId":"postDocumentsUnlock","summary":"Take the password off a PDF","description":"Decrypts one PDF with its user or owner password and returns it without encryption and without the permission restrictions. A file that opens without a password is unlocked whatever password is sent. A wrong password is `WRONG_PASSWORD`, a PDF that is not encrypted `NOT_ENCRYPTED`. The password is never stored or logged, and never in an error answer. The route is not idempotent: an `Idempotency-Key` header is ignored, a retry runs and is billed again. Billed as the pages of the PDF and one unit. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","options"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 32 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","maxLength":4096,"description":"Required text field: JSON of `UnlockOptions` (`password`). Secret.","x-secret":true}}},"encoding":{"file":{"contentType":"application/octet-stream"},"options":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"The decrypted PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Cache-Control":{"description":"Always `no-store`.","schema":{"type":"string"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed or the options part is invalid. The answer never names a value of the options.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `WRONG_PASSWORD`, `NOT_ENCRYPTED`, `MALFORMED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/annotations/export":{"post":{"operationId":"postDocumentsAnnotationsExport","summary":"Read the annotations of a PDF","description":"Reads every supported annotation of one PDF (15 types) and returns it as JSON `pevidytech.annotations/1` (default) or as XFDF 3.0 (`format=xfdf`). Page points, origin top left of the displayed page, pages from 1. Annotation types that are not supported are listed with subtype, count and reason (`unsupported`; for XFDF in the header `Pevidytech-Annotations-Unsupported-Types`), never dropped silently; widgets and popups are listed under `ignored`. Works on a signed PDF (nothing is changed). Billed as the pages of the PDF and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"format","in":"query","required":false,"description":"The format of the answer.","schema":{"type":"string","enum":["json","xfdf"],"default":"json"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The annotations as JSON or XFDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the input.","schema":{"type":"integer"}},"Pevidytech-Annotations":{"description":"Number of annotations in the answer.","schema":{"type":"integer"}},"Pevidytech-Annotations-Unsupported":{"description":"Number of annotations in unsupported types.","schema":{"type":"integer"}},"Pevidytech-Annotations-Unsupported-Types":{"description":"The unsupported types as `Subtype=count` pairs, comma separated, at most 50 pairs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationsDocument"}},"application/vnd.adobe.xfdf":{"schema":{"type":"string"}}}},"400":{"description":"The request is malformed, a query or option is invalid, or the annotations are invalid: an unknown field, another `schema`, a link that is not `https`, a reply to a missing parent or across pages, a point outside the page, text outside WinAnsi in `free-text` or `stamp`, more than 5000 annotations. Checked before the file is read.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/annotations/import":{"post":{"operationId":"postDocumentsAnnotationsImport","summary":"Write annotations into a PDF","description":"Writes the annotations of the part `annotations` (JSON `pevidytech.annotations/1` as `application/json`, or XFDF as `application/vnd.adobe.xfdf`, `application/xml`, `text/xml`; the format is taken from the content type of the part only) into the PDF as real annotations with appearance streams. `mode` `add` (default) keeps everything; `replace` first removes the annotations of the supported types and keeps all others and all widgets. The part is at most 1 MiB (`413 FILE_TOO_LARGE`), at most 5000 annotations. A signed PDF (`DOCUMENT_SIGNED`) is refused. Billed as the pages of the PDF and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","annotations"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"annotations":{"type":"string","contentMediaType":"application/json","maxLength":1048576,"description":"The annotations: JSON `AnnotationsDocument` or XFDF, by the content type of the part."},"options":{"type":"string","contentMediaType":"application/json","description":"Optional text field: JSON of `AnnotationImportOptions` (`mode`: `add` or `replace`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"},"annotations":{"contentType":"application/json, application/vnd.adobe.xfdf, application/xml, text/xml"},"options":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"The PDF with the annotations written.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the input.","schema":{"type":"integer"}},"Pevidytech-Annotations":{"description":"Number of annotations written.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed, a query or option is invalid, or the annotations are invalid: an unknown field, another `schema`, a link that is not `https`, a reply to a missing parent or across pages, a point outside the page, text outside WinAnsi in `free-text` or `stamp`, more than 5000 annotations. Checked before the file is read.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/annotations/flatten":{"post":{"operationId":"postDocumentsAnnotationsFlatten","summary":"Burn the annotations into the pages","description":"Draws the annotations (all with an appearance, or the listed `types`) into the page content and removes them. Links stay, hidden annotations and popups are dropped, widgets stay unless `forms` is `true`. An annotation without an appearance stays and is counted in `Pevidytech-Annotations-Skipped`. A signed PDF (`DOCUMENT_SIGNED`) is refused. Billed as the pages of the PDF and one unit per started 10 pages of the input, at least 1. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"options":{"type":"string","contentMediaType":"application/json","description":"Optional text field: JSON of `AnnotationFlattenOptions` (`types`, `forms`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"},"options":{"contentType":"application/json"}}}}},"responses":{"200":{"description":"The PDF with the annotations burnt in.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the input.","schema":{"type":"integer"}},"Pevidytech-Annotations-Flattened":{"description":"Number of annotations drawn into the pages and removed.","schema":{"type":"integer"}},"Pevidytech-Annotations-Skipped":{"description":"Number of annotations left in place because they have no appearance.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed, a query or option is invalid, or the annotations are invalid: an unknown field, another `schema`, a link that is not `https`, a reply to a missing parent or across pages, a point outside the page, text outside WinAnsi in `free-text` or `stamp`, more than 5000 annotations. Checked before the file is read.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/sign/pades":{"post":{"operationId":"postDocumentsSignPades","summary":"Sign a PDF with your own certificate (PAdES)","description":"Signs one PDF with the **private key and certificate you send in this request** (a PKCS#12 file, `keystore`, and its `password` as a part of its own). The signature is a PAdES signature (EU DSS, SHA-256) at level `B-B` (default, works offline), `B-T` (with an RFC 3161 time stamp) or `B-LT` (with revocation data), invisible or visible (`visible=true` with `page` and `rect`, a text block with the signer name, the date, the reason and the location) or in an existing empty signature field (`field`). The signature is an incremental update: the original bytes stay and earlier signatures stay valid. The key is kept in memory for this request only, wiped after it and never stored or logged. Keys are RSA with at least 2048 bits or ECDSA on P-256, P-384 or P-521. The result is checked again before it is returned. It is a technical signature with your certificate, **not** a qualified electronic signature, and trust is not checked. `B-T` and `B-LT` answer `LEVEL_NOT_AVAILABLE` unless the deployment allows the network they need; nothing is ever downgraded silently. **The `Idempotency-Key` header is not used on this route**: the request holds a private key, so nothing of it is stored. A retry is a new request, a new signature and a new usage record. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","keystore","password"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, at most 50 MiB. The type is taken from the bytes, not from the name."},"keystore":{"type":"string","contentMediaType":"application/octet-stream","description":"The PKCS#12 file (.p12, .pfx) with exactly one private key and its certificate chain, at most 65536 bytes. It is parsed, not checked by name or type. Use a dedicated signing certificate."},"password":{"type":"string","format":"password","writeOnly":true,"maxLength":256,"description":"The password of the PKCS#12 file, a text part of its own (never a query value or a header), at most 256 bytes in UTF-8.","example":"example-only"},"level":{"type":"string","enum":["B-B","B-T","B-LT"],"default":"B-B","description":"Optional text part. `B-T` needs a time-stamp server and `B-LT` also online revocation data on the server; otherwise `LEVEL_NOT_AVAILABLE`."},"visible":{"type":"string","enum":["true","false"],"default":"false","description":"Optional text part. `true` draws a text block; it needs `rect` (with `page`) or `field`."},"page":{"type":"integer","minimum":1,"maximum":300,"default":1,"description":"Optional text part, 1-based. Only with `visible=true` and without `field`."},"rect":{"type":"string","description":"Optional text part: JSON `{\"x\":0.1,\"y\":0.8,\"width\":0.3,\"height\":0.1}` in fractions (0 to 1) of the page as displayed, origin top left. Only with `visible=true` and without `field`.","example":"{\"x\":0.1,\"y\":0.8,\"width\":0.3,\"height\":0.1}"},"field":{"type":"string","maxLength":256,"description":"Optional text part. The name of an existing, empty signature field to sign."},"reason":{"type":"string","maxLength":200,"description":"Optional text part. Written to the signature (`Reason`)."},"location":{"type":"string","maxLength":200,"description":"Optional text part. Written to the signature (`Location`)."},"contact":{"type":"string","maxLength":200,"description":"Optional text part. Written to the signature (`ContactInfo`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"},"keystore":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The signed PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the file.","schema":{"type":"integer"}},"Pevidytech-Signature-Level":{"description":"The level that was made: `B-B`, `B-T` or `B-LT`.","schema":{"type":"string","enum":["B-B","B-T","B-LT"]}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The file cannot be signed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_TOO_COMPLEX`, `LEVEL_NOT_AVAILABLE`, `WRONG_PASSWORD`, `INVALID_KEYSTORE`, `CERTIFICATE_NOT_VALID`, `FIELD_NOT_FOUND` or `FIELD_ALREADY_SIGNED`. The `code` names the reason; nothing is returned and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/parse":{"post":{"operationId":"postDocumentsParse","summary":"Read the text of a PDF or an image","description":"Reads the text of one PDF, JPEG or PNG on our own server: per page the size as shown and the text, and the text as elements (`HEADING`, `LIST`, `PARAGRAPH`, `TABLE`) in reading order, each with its position (PDF points, origin top left of the page as shown) and the position of every line. The text of an element is found in the text of its page. Digital pages are read from their text layer (`source: TEXT`); pages without one (scans) and images are read with OCR, German and English (`source: OCR`, with `confidence` 0–1 on elements and lines); a page with nothing to read is `source: NONE` with an empty text, not an error. Ruled tables on digital pages come back as one `TABLE` element with `cells`. At most 15 pages are read with OCR per request; more is `DOCUMENT_TOO_COMPLEX`. An encrypted PDF that opens without a password is decrypted first (`Pevidytech-Decrypted: true`). With the query parameter `output` the same elements are answered as `markdown` (`text/markdown`) or `html` (`text/html`, with `X-Content-Type-Options: nosniff` and a restrictive `Content-Security-Policy`); `json` is the default. Text is returned to the caller and never logged. Billed as one unit and the pages of the document (1 for an image). Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"output","in":"query","required":false,"description":"Answer format: `json` (the elements, default), `markdown` (CommonMark with GFM tables) or `html` (one self-contained HTML5 document), both rendered from the elements.","schema":{"type":"string","enum":["json","markdown","html"],"default":"json"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF, JPEG or PNG. The type is taken from the bytes, not from the name."}}}}}},"responses":{"200":{"description":"The pages and elements of the document (`json`), or the text rendered from them (`markdown`, `html`).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Decrypted":{"description":"Only when the PDF was encrypted but opens without a password and it was decrypted before reading. Always `true`.","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseResult"}},"text/markdown; charset=utf-8":{"schema":{"type":"string"}},"text/html; charset=utf-8":{"schema":{"type":"string"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `IMAGE_TOO_LARGE` or `DOCUMENT_TOO_COMPLEX` (too many text items, too much text, or more than 15 pages to read with OCR). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/invoice":{"post":{"operationId":"postDocumentsInvoice","summary":"Read the e-invoice data a PDF carries","description":"Reads the e-invoice XML (ZUGFeRD, Factur-X, XRechnung; UN/CEFACT CII, UBL Invoice and UBL CreditNote) that one PDF carries as an attachment, on our own server, and answers it as one model by EN 16931 BT number: amounts as exact decimal strings, dates as ISO `YYYY-MM-DD`, `null` where the XML has no value. `places` tells where the main values stand in the visible text of the PDF (page, position and text of the line, in the space of `parse`; `inText: false` when a value is not printed). Pages without a text layer are not read with OCR and have no places. A PDF without invoice XML, or with XML that cannot be used, is not an error: the answer is `200` with `found: false` and a `problem` (`NO_INVOICE_XML`, `XML_TOO_LARGE`, `XML_UNREADABLE` or `XML_UNSUPPORTED`). The XML is read without DTD or entities. An encrypted PDF that opens without a password is decrypted first (`Pevidytech-Decrypted: true`). Invoice data is returned to the caller and never logged. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."}}}}}},"responses":{"200":{"description":"The invoice model and the places of its values, or `found: false`.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Decrypted":{"description":"Only when the PDF was encrypted but opens without a password and it was decrypted before reading. Always `true`.","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX` (too many text items or too much text). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/einvoice/create":{"post":{"operationId":"postDocumentsEinvoiceCreate","summary":"Write an XRechnung 3.0 e-invoice from JSON","description":"Writes one XRechnung 3.0 XML (UN/CEFACT CII or UBL; UBL `CreditNote` for type code 381) from the invoice data of `invoice` (`EinvoiceInput`, by EN 16931 BT number; amounts as exact decimal strings, dates as ISO `YYYY-MM-DD`), on our own server. Nothing is calculated: amounts are written as given. Before writing, the core rules run on the input (required fields, sums in exact decimals, tax per rate, XRechnung rules); one broken rule of severity `ERROR` refuses with `422 EINVOICE_RULES_FAILED` and the findings (at most 200; rule, severity, BT and a short message, never a value). **This is a core check, not the official KoSIT validation.** The JSON body is at most 51200 bytes. The XML is returned as an attachment named `xrechnung.xml`. Invoice data is never logged. Billed as one unit and no pages. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["syntax","invoice"],"properties":{"syntax":{"type":"string","enum":["CII","UBL"],"description":"The XML syntax to write."},"invoice":{"$ref":"#/components/schemas/EinvoiceInput"}}}}}},"responses":{"200":{"description":"The XRechnung XML (UTF-8, with an XML declaration).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Content-Disposition":{"description":"Always `attachment; filename=\"xrechnung.xml\"`.","schema":{"type":"string"}}},"content":{"application/xml":{"schema":{"type":"string"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"The JSON body is larger than 51200 bytes: `PAYLOAD_TOO_LARGE`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The input breaks one or more rules: `EINVOICE_RULES_FAILED` with `findings`.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/EinvoiceRulesFailedProblem"}]}}}},"429":{"description":"The account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). This route takes no concurrency slot, so it never answers `TOO_MANY_REQUESTS`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/einvoice/generate":{"post":{"operationId":"postDocumentsEinvoiceGenerate","summary":"Make an invoice from JSON: XRechnung XML, readable PDF or ZUGFeRD","description":"Turns one invoice (`invoice`, the `EinvoiceInput` of `einvoice/create`) into the format chosen by `output`: `xrechnung-cii` and `xrechnung-ubl` (the XRechnung 3.0 XML of `einvoice/create`, unchanged), `pdf` (a readable invoice PDF in one fixed layout, German or English by `language`, made on our own server with Liberation Sans) or `zugferd` (a hybrid invoice: the readable PDF as PDF/A-3b with the CII XML embedded as `factur-x.xml`, the same bytes as `xrechnung-cii`; only for the guideline ids (BT-24) of EN 16931 and XRechnung 3.0). The optional `logo` (PNG or JPEG, at most 524288 bytes and 4000000 pixels; a JPEG with an EXIF orientation other than 1 is refused) is only for `pdf` and `zugferd`. Before anything is made, the core rules run on the invoice; one broken rule of severity `ERROR` refuses with `422 EINVOICE_RULES_FAILED` and the findings (at most 200; rule, severity, BT and a short message, never a value) for every output. **This is a core check, not the official KoSIT validation.** A character that Liberation Sans lacks refuses `pdf` and `zugferd` with `400 INVALID_REQUEST`. The PDF has at most 100 pages. The `invoice` field is at most 51200 bytes of JSON. Invoice data and the logo are never logged. Billed as one unit and the pages of a PDF answer (none for XML). Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["output","invoice"],"properties":{"output":{"type":"string","enum":["xrechnung-cii","xrechnung-ubl","zugferd","pdf"],"description":"The format to make. Required text field."},"language":{"type":"string","enum":["de","en"],"default":"de","description":"Optional text field. The language of the readable PDF."},"invoice":{"type":"string","contentMediaType":"application/json","description":"Required text field: the JSON of `EinvoiceInput`, at most 51200 bytes."},"logo":{"type":"string","contentMediaType":"application/octet-stream","description":"Optional file: a PNG or JPEG logo for `pdf` and `zugferd`, at most 524288 bytes. The type is taken from the bytes, not from the name."}}},"encoding":{"logo":{"contentType":"image/png, image/jpeg"}}}}},"responses":{"200":{"description":"The XRechnung XML (`xrechnung-cii`, `xrechnung-ubl`; UTF-8, with an XML declaration) or the PDF (`pdf`, `zugferd`).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Content-Disposition":{"description":"`attachment; filename=\"xrechnung.xml\"` for XML; `attachment; filename=\"rechnung.pdf\"` (`invoice.pdf` for `en`) for a PDF.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of a PDF answer; not sent for XML.","schema":{"type":"integer"}}},"content":{"application/xml":{"schema":{"type":"string"}},"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The invoice or the logo cannot be processed: `EINVOICE_RULES_FAILED` with `findings`, `MALFORMED_DOCUMENT` (broken logo), `IMAGE_TOO_LARGE` (too many pixels) or `DOCUMENT_TOO_COMPLEX` (more pages than allowed). The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/EinvoiceRulesFailedProblem"}]}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/einvoice/check":{"post":{"operationId":"postDocumentsEinvoiceCheck","summary":"Check an e-invoice (XML file or PDF) against the core rules","description":"Reads the e-invoice of one XML file, or of one PDF that carries it as an attachment (ZUGFeRD, Factur-X, XRechnung; CII, UBL Invoice and UBL CreditNote), on our own server, and checks it against the core rules (required fields, sums in exact decimals, tax per rate, XRechnung rules). The answer lists the `findings` (rule, severity `ERROR` or `WARNING`, BT, a short message, never a value); `passed` is `true` when an invoice was found and no finding is an `ERROR`. **This is a core check, not the official KoSIT validation.** No invoice found, or one that cannot be used, is not an error: the answer is `200` with `found: false`, a `problem` (`NO_INVOICE_XML`, `XML_TOO_LARGE`, `XML_UNREADABLE` or `XML_UNSUPPORTED`) and `passed: false`. The XML is read without DTD or entities. An encrypted PDF that opens without a password is decrypted first. Invoice data is never logged. Billed as one unit and the pages of a PDF (none for an XML file). Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The XML file or the PDF. The type is taken from the bytes, not from the name."}}}}}},"responses":{"200":{"description":"The result of the check, or `found: false`.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EinvoiceCheckResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/redact/find":{"post":{"operationId":"postDocumentsRedactFind","summary":"Find text to redact (review step, nothing is changed)","description":"Finds text in one PDF and answers where it is, so a person can review it before `redact/apply`. The `request` part holds `texts` (exact strings, at most 50 of 200 characters, `textsIgnoreCase`), `patterns` (a safe subset of regular expressions, at most 20 of 256 characters, `patternsIgnoreCase`) and `presets` (`iban`, `tax-id`, `vat-id`, `birth-date`, `address`, `email`, `phone`, `id-card`); at least one entry is required. Patterns have no backreferences, lookaround, inline flags, lazy quantifiers or anchors and cannot match the empty string; a refused pattern is `400 INVALID_REQUEST` and names only its index. Text and patterns match inside one line, never across lines, columns or pages. Each finding has `id`, `type`, `page` (1-based), `rects` (one per line, fractions of the page as displayed, origin top left), `confidence` and `length`; **the answer never contains the matched text**. The detectors help and do not guarantee. Text drawn as paths and text in images (no OCR) is not found. Nothing is changed in the file and nothing is stored on the server; the `rects` are sent back as `regions` to `redact/apply`. A matcher that needs more than its fixed budget, or more than 5000 findings, is `DOCUMENT_TOO_COMPLEX` (never partial findings). Texts, patterns and findings are never logged. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","request"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."},"request":{"type":"string","contentMediaType":"application/json","description":"Text field: the JSON of `RedactFindRequest`, at most 262144 bytes."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The findings (an empty list for a PDF without a text layer).","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the PDF.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedactFindResponse"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX` (too many findings or the pattern budget used up). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/redact/apply":{"post":{"operationId":"postDocumentsRedactApply","summary":"Redact regions of a PDF","description":"Removes the content under the `regions` (1 to 2000; `page` 1-based, `x`, `y`, `width`, `height` in fractions of the page as displayed, inside the page) and paints black boxes. `mode` `text` (default) removes the glyphs and image parts under the boxes and keeps all other text selectable; pages it cannot handle safely are rasterized. `raster` rasterizes every page that has a region. `metadata` `true` (default) removes `/Info` and XMP; `false` keeps them; JavaScript, attachments, thumbnails and `/ActualText` and `/Alt` are removed in both cases. The result is checked (the content under the boxes is gone from the file, also from decoded streams) before it is sent; a failed check is `500 INTERNAL` and never a file. A signed PDF is refused (`DOCUMENT_SIGNED`); a region on a page that does not exist is `400 INVALID_REQUEST`. Nothing is stored on the server. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","request"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."},"request":{"type":"string","contentMediaType":"application/json","description":"Text field: the JSON of `RedactApplyRequest` (modes: `text`, `raster`), at most 262144 bytes."}}},"encoding":{"file":{"contentType":"application/octet-stream"}}}}},"responses":{"200":{"description":"The redacted PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Pages":{"description":"Number of pages of the result.","schema":{"type":"integer"}},"Pevidytech-Removed-Glyphs":{"description":"Number of glyphs removed from the text. A decimal integer.","schema":{"type":"integer"}},"Pevidytech-Images-Painted":{"description":"Number of images painted over where a region touched them. A decimal integer.","schema":{"type":"integer"}},"Pevidytech-Pages-Rasterized":{"description":"Number of pages that were rasterized. A decimal integer.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Authentication is required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"403":{"description":"The key is limited to other operations than this one (the key scope set in the developer console): `FORBIDDEN`. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `DOCUMENT_SIGNED`, `TOO_MANY_PAGES` or `DOCUMENT_TOO_COMPLEX`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"This account already has as many document requests running as it may (default 1): `TOO_MANY_REQUESTS` with `Retry-After`. Or the account has quota enforcement on and the included units of the plan for this operation group are used up this month: `QUOTA_EXCEEDED` with `Retry-After` until the start of the next month (UTC). The `code` names the reason. Nothing is run and nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable, not configured or busy (then `Retry-After: 5`): `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long: a service limit or the time budget of the request (55 s by default, shared by all steps): `PROCESSING_TIMEOUT`. Nothing is billed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes":{"post":{"operationId":"postSigningEnvelopes","summary":"Create a signing envelope","description":"Creates an envelope from one PDF and 1 to 20 signers. Each signer has a name, an opaque e-mail reference (never checked, used, returned or logged), an order (signers with the same order sign in any sequence, a higher order waits for all lower ones) and 1 to 10 places (`{ page, rect }`, PDF points, origin top left of the page as shown). The answer has one signing token per signer: 256 bit, **shown once**, stored only as an HMAC-SHA-256. We send no e-mail and no SMS; the caller delivers the links. The envelope is valid 14 days by default, at most 90. The PDF is at most 25 MiB. The answer has a `legal` object: this is a **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature. Billed as one unit and the pages of the PDF. Limits: see `docs/03-api.md`.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","envelope"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."},"envelope":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `CreateEnvelopeRequest` (`signers`, optional `expiresInDays`, optional `recordIp`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"},"envelope":{"contentType":"application/json"}}}}},"responses":{"201":{"description":"The envelope and the tokens.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvelopeResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document or the signature cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_SIGNED` or `IMAGE_TOO_LARGE`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes/{id}":{"get":{"operationId":"getSigningEnvelope","summary":"Status of an envelope","description":"Status `sent` with `signed` of `total`, `completed`, `declined`, `expired` or `cancelled`. An envelope past its expiry is `expired` when read. Never document content, tokens or e-mail references. Only for the account and key mode that created the envelope; another one gets `404`.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the envelope (`env_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The status.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvelopeStatusResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes/{id}/sign":{"post":{"operationId":"postSigningEnvelopeSign","summary":"Sign with a signer token","description":"`Authorization: Bearer <signer token>`; the API key is not accepted. Places the signature on every place of that signer and saves a new version of the PDF (a fresh document, not an incremental update). A signer signs once (`SIGNER_ALREADY_SIGNED`); a signer whose order is not yet reached is refused (`SIGNER_NOT_YET_DUE`). The answer has a `legal` object: this is a **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature.","security":[{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the envelope (`env_…`).","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Either a PNG (base64, at most 4 096 pixels a side and 4 000 000 pixels) or a typed name of 1 to 100 characters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignRequest"}}}},"responses":{"200":{"description":"The new version.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The envelope is not active (`ENVELOPE_NOT_ACTIVE`), the signer has signed (`SIGNER_ALREADY_SIGNED`) or an earlier order has not signed (`SIGNER_NOT_YET_DUE`). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document or the signature cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_SIGNED` or `IMAGE_TOO_LARGE`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes/{id}/decline":{"post":{"operationId":"postSigningEnvelopeDecline","summary":"Decline with a signer token","description":"The signer declines; the envelope ends as `declined`. The optional reason (at most 500 characters) is kept in the audit only as its SHA-256. The answer has a `legal` object: this is a **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature.","security":[{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the envelope (`env_…`).","schema":{"type":"string"}}],"requestBody":{"required":false,"description":"The optional reason.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeclineRequest"}}}},"responses":{"200":{"description":"The envelope is declined.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndEnvelopeResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The envelope is not active (`ENVELOPE_NOT_ACTIVE`) or the signer has signed (`SIGNER_ALREADY_SIGNED`). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes/{id}/cancel":{"post":{"operationId":"postSigningEnvelopeCancel","summary":"Cancel an envelope","description":"The caller cancels; the envelope ends as `cancelled`. The answer has a `legal` object: this is a **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the envelope (`env_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope is cancelled.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndEnvelopeResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The envelope is not active (`ENVELOPE_NOT_ACTIVE`). The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes/{id}/document":{"get":{"operationId":"getSigningEnvelopeDocument","summary":"The current PDF of an envelope","description":"With the API key of the account that created the envelope, or with a signer token (which records a `viewed` event). The current version, or the final PDF with the audit page once the envelope is completed. The versions are deleted 30 days after completion or expiry.","security":[{"bearerAuth":[]},{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the envelope (`env_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The current PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Document-Sha256":{"description":"SHA-256 of the PDF, lower-case hex.","schema":{"type":"string"}},"Pevidytech-Version":{"description":"Version number of the PDF.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/signing/envelopes/{id}/audit":{"get":{"operationId":"getSigningEnvelopeAudit","summary":"The audit trail of an envelope","description":"Every event with UTC time, signer index, SHA-256 of the document before and after, and the hash chain (`hash` = SHA-256 of the previous hash and the canonical JSON of the event). `chainValid` is the result of recomputing the chain. The audit never contains names, e-mail references, tokens, reasons, typed text or signature images. IP data only as a keyed hash and only when the envelope was created with `recordIp: true`. On completion one audit page is appended to the PDF. The events stay after the versions are deleted.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the envelope (`env_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The audit trail.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/definitions":{"post":{"operationId":"postWorkflowDefinitions","summary":"Store a workflow definition","description":"Stores a definition (`pevidytech.workflow/1`, JSON, strict, no code) under a key of the account and key mode, or the next version of an existing key; a stored version never changes. The answer has `key` and `version` and, at the first version of a key with a webhook, the **webhook secret** (32 random bytes, hex, **shown once**). The definition is at most 256 KiB, 50 steps and 20 roles. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The key and the definition.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefineWorkflowRequest"}}}},"responses":{"201":{"description":"The key, the version and the secret.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefineWorkflowResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The definition does not pass the check: `WORKFLOW_INVALID` with a list of `problems` (path and fixed message, at most 50), or the document or the signature cannot be processed (`MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_SIGNED`, `IMAGE_TOO_LARGE`, `FORM_VALUES_REJECTED`). The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/WorkflowInvalidProblem"}]}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"getWorkflowDefinitions","summary":"List the workflow definitions","description":"The keys of the account and key mode with the latest version, paged with `limit` (1 to 100, default 50) and `offset`.","security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"The keys.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowDefinitionList"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/definitions/{key}":{"get":{"operationId":"getWorkflowDefinition","summary":"A workflow definition","description":"The latest version, or the version in `?version=n` (`DEFINITION_VERSION_NOT_FOUND` when it does not exist). Never the webhook secret. Another account or key mode gets `404`.","security":[{"bearerAuth":[]}],"parameters":[{"name":"key","in":"path","required":true,"description":"Key of the definition (`[a-z0-9-]`, 1 to 64 characters).","schema":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"}},{"name":"version","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"The definition.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowDefinitionResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances":{"post":{"operationId":"postWorkflowInstances","summary":"Start a workflow instance","description":"Starts an instance of a stored definition for one PDF (at most 25 MiB) and the participants: 1 to 10 people per role, 50 in total, each with an opaque reference `ref` and an opaque e-mail reference `email` (never checked, used, returned or logged). Every role used by a step needs a person; extra roles are refused. The answer has one token per person: 256 bit, **shown once**, stored only as an HMAC-SHA-256. Pevidytech sends no e-mail and no SMS; the caller delivers the links. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so. Billed as one unit and the pages of the PDF.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":false,"required":["file","instance"],"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The PDF. The type is taken from the bytes, not from the name."},"instance":{"type":"string","contentMediaType":"application/json","description":"Text field: JSON of `StartWorkflowRequest` (`key`, optional `version`, `participants`, optional `expiresInDays`, optional `recordIp`)."}}},"encoding":{"file":{"contentType":"application/octet-stream"},"instance":{"contentType":"application/json"}}}}},"responses":{"201":{"description":"The instance and the tokens.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartWorkflowResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The Idempotency-Key was used for a different request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The definition does not pass the check: `WORKFLOW_INVALID` with a list of `problems` (path and fixed message, at most 50), or the document or the signature cannot be processed (`MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_SIGNED`, `IMAGE_TOO_LARGE`, `FORM_VALUES_REJECTED`). The `code` names the reason.","content":{"application/problem+json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Problem"},{"$ref":"#/components/schemas/WorkflowInvalidProblem"}]}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}":{"get":{"operationId":"getWorkflowInstance","summary":"Status of a workflow instance","description":"Status and step states with `startedAt`, `dueAt`, `endedAt` and the `ref` that acted, and `webhookFailures`. An instance past its expiry is `expired` when read. Never document content, tokens, comments or e-mail references. Another account or key mode gets `404`.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The status.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowStatusResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/steps/{stepId}/fill":{"post":{"operationId":"postWorkflowStepFill","summary":"Fill a form step","description":"`Authorization: Bearer <participant token>`; the API key is not accepted. Writes the values of the fields named in the step (text up to 20 000 characters in total; a signed or unknown field is refused) and saves a new version of the PDF. A person with a token can act on every step of their role; for a role with several people the first valid action ends the step. A token of another role or another step, a wrong token and an unknown instance all give `NOT_FOUND`. At most 30 calls per token and minute. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so.","security":[{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}},{"name":"stepId","in":"path","required":true,"description":"ID of the step in the definition.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}}],"requestBody":{"required":true,"description":"The values by field name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FillStepRequest"}}}},"responses":{"200":{"description":"The step after `fill`.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The instance has ended, or the step is not active. The `code` names the reason: `INSTANCE_NOT_ACTIVE`, `STEP_NOT_ACTIVE` or, for a repeated Idempotency-Key, `IDEMPOTENCY_KEY_REUSED`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document or the signature cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_SIGNED` or `IMAGE_TOO_LARGE`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/steps/{stepId}/approve":{"post":{"operationId":"postWorkflowStepApprove","summary":"Approve a step","description":"`Authorization: Bearer <participant token>`; the API key is not accepted. Approves with an optional comment of at most 500 characters; the audit keeps only its SHA-256. A person with a token can act on every step of their role; for a role with several people the first valid action ends the step. A token of another role or another step, a wrong token and an unknown instance all give `NOT_FOUND`. At most 30 calls per token and minute. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so.","security":[{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}},{"name":"stepId","in":"path","required":true,"description":"ID of the step in the definition.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}}],"requestBody":{"required":false,"description":"The optional comment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideStepRequest"}}}},"responses":{"200":{"description":"The step after `approve`.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The instance has ended, or the step is not active. The `code` names the reason: `INSTANCE_NOT_ACTIVE`, `STEP_NOT_ACTIVE` or, for a repeated Idempotency-Key, `IDEMPOTENCY_KEY_REUSED`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/steps/{stepId}/reject":{"post":{"operationId":"postWorkflowStepReject","summary":"Reject a step","description":"`Authorization: Bearer <participant token>`; the API key is not accepted. Rejects with an optional comment; the instance ends as `rejected` unless the step has `onReject: \"continue\"`. A person with a token can act on every step of their role; for a role with several people the first valid action ends the step. A token of another role or another step, a wrong token and an unknown instance all give `NOT_FOUND`. At most 30 calls per token and minute. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so.","security":[{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}},{"name":"stepId","in":"path","required":true,"description":"ID of the step in the definition.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}}],"requestBody":{"required":false,"description":"The optional comment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideStepRequest"}}}},"responses":{"200":{"description":"The step after `reject`.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The instance has ended, or the step is not active. The `code` names the reason: `INSTANCE_NOT_ACTIVE`, `STEP_NOT_ACTIVE` or, for a repeated Idempotency-Key, `IDEMPOTENCY_KEY_REUSED`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/steps/{stepId}/sign":{"post":{"operationId":"postWorkflowStepSign","summary":"Sign a step","description":"`Authorization: Bearer <participant token>`; the API key is not accepted. Places the signature on the places of the step and saves a new version of the PDF (the AP-37 simple signature). A person with a token can act on every step of their role; for a role with several people the first valid action ends the step. A token of another role or another step, a wrong token and an unknown instance all give `NOT_FOUND`. At most 30 calls per token and minute. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so.","security":[{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}},{"name":"stepId","in":"path","required":true,"description":"ID of the step in the definition.","schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}}],"requestBody":{"required":true,"description":"Either a PNG (base64) or a typed name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignRequest"}}}},"responses":{"200":{"description":"The step after `sign`.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The instance has ended, or the step is not active. The `code` names the reason: `INSTANCE_NOT_ACTIVE`, `STEP_NOT_ACTIVE` or, for a repeated Idempotency-Key, `IDEMPOTENCY_KEY_REUSED`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"A file exceeds the size limit.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The document or the signature cannot be processed: `MALFORMED_DOCUMENT`, `ENCRYPTED_DOCUMENT`, `TOO_MANY_PAGES`, `DOCUMENT_SIGNED` or `IMAGE_TOO_LARGE`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/document":{"get":{"operationId":"getWorkflowInstanceDocument","summary":"The current PDF of an instance","description":"With the API key of the account that started the instance, or with a participant token (only while that person has an open step). The current version, or the final PDF once the instance is completed. The versions are deleted 30 days after the end.","security":[{"bearerAuth":[]},{"signerToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The current PDF.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}},"Pevidytech-Document-Sha256":{"description":"SHA-256 of the PDF, lower-case hex.","schema":{"type":"string"}},"Pevidytech-Version":{"description":"Version number of the PDF.","schema":{"type":"integer"}}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The credential is missing. A key that is not accepted on this route, a wrong token and an unknown envelope all give `NOT_FOUND`, never a hint which one it was.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"More than 30 calls with one signer token in a minute: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/audit":{"get":{"operationId":"getWorkflowInstanceAudit","summary":"The audit trail of an instance","description":"Every event with UTC time, step id, participant `ref`, SHA-256 of the document before and after, and the hash chain (`hash` = SHA-256 of the previous hash and the canonical JSON of the event). `chainValid` is the result of recomputing the chain. Comments and form values appear only as SHA-256. IP data only as a keyed hash and only when the instance was started with `recordIp: true`. The events stay after the versions are deleted.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The audit trail.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowAuditResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/workflows/instances/{id}/cancel":{"post":{"operationId":"postWorkflowInstanceCancel","summary":"Cancel an instance","description":"The caller cancels; the instance ends as `cancelled` and open steps become `cancelled`. A `sign` step is the **simple electronic signature** (eIDAS Article 3(10)), **not** an advanced (Article 26) and **not** a qualified (Article 3(12)) signature; answers for definitions with a `sign` step carry a `legal` object that says so.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the workflow instance (`wfi_…`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The instance is cancelled.","headers":{"Pevidytech-Operation-Id":{"description":"ID of the usage record of this call (`op_…`). Replays send the stored one.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndInstanceResult"}}}},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"The API key is missing or not valid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"description":"Always `Bearer`.","schema":{"type":"string"}}}},"404":{"description":"The requested resource does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The instance has already ended (`INSTANCE_NOT_ACTIVE`). The `code` names the reason: `INSTANCE_NOT_ACTIVE`, `STEP_NOT_ACTIVE` or, for a repeated Idempotency-Key, `IDEMPOTENCY_KEY_REUSED`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too many requests are running at once: `TOO_MANY_REQUESTS` with `Retry-After`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The service is temporarily unavailable or not configured: `SERVICE_UNAVAILABLE`; or the operation is switched off: `OPERATION_DISABLED`. The `code` names the reason.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"}}},"504":{"description":"Processing took too long.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/count":{"post":{"operationId":"postCount","summary":"Cookie-free count of a page view or tool use (website beacon)","description":"Public, no key. Only a daily total per event, path and tool is stored: no IP address, user agent, referrer or time finer than the day. Requests with `DNT: 1` or `Sec-GPC: 1` answer `204` and store nothing. At most 1 024 bytes. `path` is a path of the website (`/` or up to three lower-case slug segments, at most 120 characters) and `tool` one of the tool ids of the website; anything else gives `400`. A day keeps at most a fixed number of rows; later new paths of that day are added to one row with the path `/_other/`.","requestBody":{"required":true,"content":{"text/plain":{"schema":{"type":"string","description":"A JSON string of `CountEvent` (as `navigator.sendBeacon` sends it)."}}}},"responses":{"204":{"description":"Counted, or ignored because of `DNT` or `Sec-GPC`."},"400":{"description":"The request is malformed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"The request body is too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"415":{"description":"The content type is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique per account and key mode, 1 to 255 visible ASCII characters. The same key with the same request returns the stored response for 24 hours; the same key with another request gets `409`.","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7E]+$"}}},"headers":{"Idempotent-Replayed":{"description":"Always `true`: the response is the stored one of an earlier request.","schema":{"type":"string","enum":["true"]}},"Retry-After":{"description":"Seconds to wait before the same request is sent again.","schema":{"type":"integer"}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Secret API key: `Authorization: Bearer pt_sk_live_…` or `pt_sk_test_…`."},"signerToken":{"type":"http","scheme":"bearer","description":"Signing token of one signer of one envelope (256 bit, URL-safe base64, shown once when the envelope is created): `Authorization: Bearer <token>`."}},"schemas":{"Problem":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string","enum":["INVALID_REQUEST","UNAUTHENTICATED","IDEMPOTENCY_KEY_REQUIRED","FORBIDDEN","NOT_FOUND","IDEMPOTENCY_KEY_REUSED","IDEMPOTENCY_REQUEST_IN_PROGRESS","PAYLOAD_TOO_LARGE","FILE_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","TOO_MANY_REQUESTS","QUOTA_EXCEEDED","URL_NOT_ALLOWED","TOO_MANY_PAGES","ENCRYPTED_DOCUMENT","WRONG_PASSWORD","NOT_ENCRYPTED","MALFORMED_DOCUMENT","IMAGE_TOO_LARGE","DOCUMENT_TOO_COMPLEX","FORM_VALUES_REJECTED","TEMPLATE_INVALID","EINVOICE_RULES_FAILED","DOCUMENT_SIGNED","LEVEL_NOT_AVAILABLE","CERTIFICATE_NOT_VALID","INVALID_KEYSTORE","FIELD_NOT_FOUND","FIELD_ALREADY_SIGNED","PDFA_NOT_POSSIBLE","ENVELOPE_NOT_ACTIVE","SIGNER_ALREADY_SIGNED","SIGNER_NOT_YET_DUE","WORKFLOW_INVALID","STEP_NOT_ACTIVE","INSTANCE_NOT_ACTIVE","DEFINITION_VERSION_NOT_FOUND","INTERNAL","SERVICE_UNAVAILABLE","OPERATION_DISABLED","PROCESSING_TIMEOUT"]},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"},"reasons":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/PdfaReason"}}},"required":["type","code","title","status","requestId"],"additionalProperties":false},"PdfaReason":{"type":"object","properties":{"code":{"type":"string","enum":["font-symbolic","font-not-embedded","font-not-embedded-cid","font-no-glyph","font-encoding","font-direct","no-unicode","annotation-no-ap","attachment","external-stream","postscript-xobject","ref-xobject","opi","transfer-function","page-box","default-cmyk-unplaced","lzw-unreadable","unreadable-content","signed","encrypted"]},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code"],"additionalProperties":false},"HealthResponse":{"type":"object","properties":{"status":{"type":"string","const":"ok"},"version":{"type":"string"}},"required":["status","version"],"additionalProperties":false},"ReadinessResponse":{"type":"object","properties":{"status":{"type":"string","enum":["ok","down"]},"version":{"type":"string"},"database":{"type":"string","enum":["ok","down"]},"pdfOps":{"type":"string","enum":["ok","down","not_configured"]}},"required":["status","version","database","pdfOps"],"additionalProperties":false},"UsageResponse":{"type":"object","properties":{"accountId":{"type":"string"},"mode":{"type":"string","enum":["live","test"]},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"totals":{"type":"object","properties":{"calls":{"type":"integer","minimum":0,"maximum":9007199254740991},"succeeded":{"type":"integer","minimum":0,"maximum":9007199254740991},"failed":{"type":"integer","minimum":0,"maximum":9007199254740991},"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"units":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["calls","succeeded","failed","pages","units"],"additionalProperties":false},"operations":{"type":"array","items":{"type":"object","properties":{"operation":{"type":"string"},"calls":{"type":"integer","minimum":0,"maximum":9007199254740991},"succeeded":{"type":"integer","minimum":0,"maximum":9007199254740991},"failed":{"type":"integer","minimum":0,"maximum":9007199254740991},"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"units":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["operation","calls","succeeded","failed","pages","units"],"additionalProperties":false}}},"required":["accountId","mode","from","to","totals","operations"],"additionalProperties":false},"CountEvent":{"type":"object","properties":{"event":{"type":"string","enum":["page_view","tool_used"]},"path":{"type":"string","maxLength":120,"pattern":"^\\/(?:[a-z0-9][a-z0-9-]{0,63}(?:\\/[a-z0-9][a-z0-9-]{0,63}){0,2}\\/?)?$"},"tool":{"type":"string","enum":["pdf-zusammenfuegen","bilder-in-pdf","pdf-unterschreiben","kontoauszug-schwaerzen","personalausweis-kopie-schwaerzen","xrechnung-oeffnen","widerspruchsfrist-berechnen","iban-pruefen","pdf-ansehen","pdf-seitenzahlen","pdf-wasserzeichen","pdf-metadaten-entfernen","pdf-deckblatt","pdf-in-bild-umwandeln","pdf-vergleichen","brief-erstellen","pdf-kommentieren","pdf-persoenliche-daten-schwaerzen","vorlagen","dokument-scannen"]}},"required":["event","path"],"additionalProperties":false},"InspectResult":{"type":"object","properties":{"pdfVersion":{"type":["string","null"]},"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"encrypted":{"type":"boolean"},"textLayer":{"type":"boolean"},"formFields":{"type":"integer","minimum":0,"maximum":9007199254740991},"xfa":{"type":"boolean"},"embeddedFiles":{"type":"integer","minimum":0,"maximum":9007199254740991},"zugferd":{"type":"boolean"},"javaScript":{"type":"boolean"},"openAction":{"type":"boolean"},"launchAction":{"type":"boolean"}},"required":["pdfVersion","pages","encrypted","textLayer","formFields","xfa","embeddedFiles","zugferd","javaScript","openAction","launchAction"],"additionalProperties":false},"FormInspectResult":{"type":"object","properties":{"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"fields":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["text","checkbox","radio","dropdown","listbox","signature","button"]},"readOnly":{"type":"boolean"},"required":{"type":"boolean"},"value":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},{"type":"null"}]},"options":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"maxLength":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"multiline":{"type":"boolean"},"multiSelect":{"type":"boolean"},"widgets":{"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"rect":{"type":"object","properties":{"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["left","top","width","height"],"additionalProperties":false}},"required":["page","rect"],"additionalProperties":false}}},"required":["name","type","readOnly","required","value","options","maxLength","multiline","multiSelect","widgets"],"additionalProperties":false}},"xfa":{"type":"boolean"},"signed":{"type":"boolean"},"needAppearances":{"type":"boolean"}},"required":["pages","fields","xfa","signed","needAppearances"],"additionalProperties":false},"ParseResult":{"type":"object","properties":{"text":{"type":"string"},"pages":{"maxItems":300,"type":"array","items":{"type":"object","properties":{"pageNumber":{"type":"integer","minimum":1,"maximum":9007199254740991},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0},"text":{"type":"string"},"textLayer":{"type":"boolean"},"source":{"type":"string","enum":["TEXT","OCR","NONE"]}},"required":["pageNumber","width","height","text","textLayer","source"],"additionalProperties":false}},"elements":{"type":"array","items":{"type":"object","properties":{"order":{"type":"integer","minimum":0,"maximum":9007199254740991},"type":{"type":"string","enum":["HEADING","LIST","PARAGRAPH","TABLE"]},"text":{"type":"string"},"pageNumber":{"type":"integer","minimum":1,"maximum":9007199254740991},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0},"y":{"type":"number","minimum":0},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"lines":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0},"y":{"type":"number","minimum":0},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["text","position"],"additionalProperties":false}},"confidence":{"type":"number","minimum":0,"maximum":1},"cells":{"type":"array","items":{"type":"object","properties":{"row":{"type":"integer","minimum":0,"maximum":9007199254740991},"column":{"type":"integer","minimum":0,"maximum":9007199254740991},"rowSpan":{"type":"integer","minimum":2,"maximum":9007199254740991},"columnSpan":{"type":"integer","minimum":2,"maximum":9007199254740991},"text":{"type":"string"},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0},"y":{"type":"number","minimum":0},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["x","y","width","height"],"additionalProperties":false}},"required":["row","column","text","position"],"additionalProperties":false}}},"required":["order","type","text","pageNumber","position","lines"],"additionalProperties":false}}},"required":["text","pages","elements"],"additionalProperties":false},"InvoiceResult":{"type":"object","properties":{"found":{"type":"boolean"},"problem":{"anyOf":[{"type":"string","enum":["NO_INVOICE_XML","XML_TOO_LARGE","XML_UNREADABLE","XML_UNSUPPORTED"]},{"type":"null"}]},"attachment":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["name","bytes"],"additionalProperties":false},{"type":"null"}]},"invoice":{"anyOf":[{"type":"object","properties":{"syntax":{"type":"string","enum":["CII","UBL_INVOICE","UBL_CREDIT_NOTE"]},"specification":{"type":["string","null"]},"number":{"type":["string","null"]},"typeCode":{"type":["string","null"]},"issueDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"currency":{"type":["string","null"]},"buyerReference":{"type":["string","null"]},"orderReference":{"type":["string","null"]},"notes":{"type":"array","items":{"type":"string"}},"seller":{"type":"object","properties":{"name":{"type":["string","null"]},"vatId":{"type":["string","null"]},"address":{"type":"object","properties":{"line1":{"type":["string","null"]},"line2":{"type":["string","null"]},"postcode":{"type":["string","null"]},"city":{"type":["string","null"]},"countryCode":{"type":["string","null"]}},"required":["line1","line2","postcode","city","countryCode"],"additionalProperties":false},"email":{"type":["string","null"]}},"required":["name","vatId","address","email"],"additionalProperties":false},"buyer":{"type":"object","properties":{"name":{"type":["string","null"]},"vatId":{"type":["string","null"]},"address":{"type":"object","properties":{"line1":{"type":["string","null"]},"line2":{"type":["string","null"]},"postcode":{"type":["string","null"]},"city":{"type":["string","null"]},"countryCode":{"type":["string","null"]}},"required":["line1","line2","postcode","city","countryCode"],"additionalProperties":false},"email":{"type":["string","null"]}},"required":["name","vatId","address","email"],"additionalProperties":false},"payment":{"type":"object","properties":{"meansCode":{"type":["string","null"]},"iban":{"type":["string","null"]},"bic":{"type":["string","null"]},"accountName":{"type":["string","null"]},"reference":{"type":["string","null"]},"terms":{"type":["string","null"]}},"required":["meansCode","iban","bic","accountName","reference","terms"],"additionalProperties":false},"totals":{"type":"object","properties":{"lineNet":{"type":["string","null"]},"net":{"type":["string","null"]},"tax":{"type":["string","null"]},"gross":{"type":["string","null"]},"prepaid":{"type":["string","null"]},"due":{"type":["string","null"]}},"required":["lineNet","net","tax","gross","prepaid","due"],"additionalProperties":false},"taxes":{"type":"array","items":{"type":"object","properties":{"category":{"type":["string","null"]},"rate":{"type":["string","null"]},"base":{"type":["string","null"]},"amount":{"type":["string","null"]}},"required":["category","rate","base","amount"],"additionalProperties":false}},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"quantity":{"type":["string","null"]},"unit":{"type":["string","null"]},"unitPrice":{"type":["string","null"]},"net":{"type":["string","null"]}},"required":["id","name","quantity","unit","unitPrice","net"],"additionalProperties":false}},"linesTruncated":{"type":"boolean"}},"required":["syntax","specification","number","typeCode","issueDate","dueDate","currency","buyerReference","orderReference","notes","seller","buyer","payment","totals","taxes","lines","linesTruncated"],"additionalProperties":false},{"type":"null"}]},"places":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"value":{"type":"string"},"inText":{"type":"boolean"},"places":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"pageNumber":{"type":"integer","minimum":1,"maximum":9007199254740991},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0},"y":{"type":"number","minimum":0},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"text":{"type":"string"}},"required":["pageNumber","position","text"],"additionalProperties":false}}},"required":["path","value","inText","places"],"additionalProperties":false}},"pages":{"maxItems":300,"type":"array","items":{"type":"object","properties":{"pageNumber":{"type":"integer","minimum":1,"maximum":9007199254740991},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0},"textLayer":{"type":"boolean"}},"required":["pageNumber","width","height","textLayer"],"additionalProperties":false}}},"required":["found","problem","attachment","invoice","places","pages"],"additionalProperties":false},"FormValuesRejectedProblem":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string","const":"FORM_VALUES_REJECTED"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"},"reasons":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/PdfaReason"}},"fields":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":1000},"reason":{"type":"string","enum":["UNKNOWN_FIELD","READ_ONLY","NOT_FILLABLE","WRONG_TYPE","NOT_AN_OPTION","TOO_LONG","LINE_BREAK","UNSUPPORTED_CHARACTER"]}},"required":["name","reason"],"additionalProperties":false}}},"required":["type","code","title","status","requestId","fields"],"additionalProperties":false},"TemplateInvalidProblem":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string","const":"TEMPLATE_INVALID"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"},"reasons":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/PdfaReason"}},"template":{"type":"object","properties":{"part":{"type":"string","maxLength":200},"paragraph":{"type":"integer","minimum":1,"maximum":9007199254740991},"tag":{"type":"string","maxLength":80}},"required":["part","paragraph","tag"],"additionalProperties":false}},"required":["type","code","title","status","requestId","template"],"additionalProperties":false},"EinvoiceCheckResult":{"type":"object","properties":{"found":{"type":"boolean"},"problem":{"anyOf":[{"type":"string","enum":["NO_INVOICE_XML","XML_TOO_LARGE","XML_UNREADABLE","XML_UNSUPPORTED"]},{"type":"null"}]},"syntax":{"anyOf":[{"type":"string","enum":["CII","UBL_INVOICE","UBL_CREDIT_NOTE"]},{"type":"null"}]},"passed":{"type":"boolean"},"findings":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","minLength":1,"maxLength":100},"severity":{"type":"string","enum":["ERROR","WARNING"]},"bt":{"type":"string","minLength":1,"maxLength":100},"message":{"type":"string","minLength":1,"maxLength":1000}},"required":["rule","severity","bt","message"],"additionalProperties":false}}},"required":["found","problem","syntax","passed","findings"],"additionalProperties":false},"EinvoiceRulesFailedProblem":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string","const":"EINVOICE_RULES_FAILED"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"},"reasons":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/PdfaReason"}},"findings":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","minLength":1,"maxLength":100},"severity":{"type":"string","enum":["ERROR","WARNING"]},"bt":{"type":"string","minLength":1,"maxLength":100},"message":{"type":"string","minLength":1,"maxLength":1000}},"required":["rule","severity","bt","message"],"additionalProperties":false}}},"required":["type","code","title","status","requestId","findings"],"additionalProperties":false},"SignaturesValidateResult":{"type":"object","properties":{"signatures":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":200},"field":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"signedBy":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"claimedSigningTime":{"type":["string","null"]},"format":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"intact":{"type":"boolean"},"coversWholeDocument":{"type":"boolean"},"modifiedAfterSigning":{"type":"string","enum":["NONE","ANNOTATIONS","FORM_FILL","OTHER"]},"chain":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"subject":{"type":"string","maxLength":2000},"issuer":{"type":"string","maxLength":2000},"notBefore":{"type":["string","null"]},"notAfter":{"type":["string","null"]},"selfSigned":{"type":"boolean"}},"required":["subject","issuer","notBefore","notAfter","selfSigned"],"additionalProperties":false}},"timestamps":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"productionTime":{"type":["string","null"]},"intact":{"type":"boolean"}},"required":["type","productionTime","intact"],"additionalProperties":false}},"trust":{"type":"string","const":"NOT_CHECKED"},"indication":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"subIndication":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["id","field","signedBy","claimedSigningTime","format","intact","coversWholeDocument","modifiedAfterSigning","chain","timestamps","trust","indication","subIndication"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["signatures","truncated"],"additionalProperties":false},"PdfaValidateResult":{"type":"object","properties":{"compliant":{"type":"boolean"},"part":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"declared":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"reason":{"type":"string","const":"NOT_DECLARED"},"failedRules":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","maxLength":100},"clause":{"type":"string","maxLength":100},"test":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":{"type":"string","maxLength":2000},"failures":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["rule","clause","test","description","failures"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["compliant","part","declared","failedRules","truncated"],"additionalProperties":false},"PdfuaValidateResult":{"type":"object","properties":{"compliant":{"type":"boolean"},"part":{"type":"string","enum":["ua1","ua2"]},"declared":{"type":"null"},"failedRules":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","maxLength":100},"clause":{"type":"string","maxLength":100},"test":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":{"type":"string","maxLength":2000},"failures":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["rule","clause","test","description","failures"],"additionalProperties":false}},"truncated":{"type":"boolean"},"note":{"type":"string","const":"Machine-checkable rules only; a human check is still needed."}},"required":["compliant","part","declared","failedRules","truncated","note"],"additionalProperties":false},"AccessibilityCheckResult":{"type":"object","properties":{"part":{"type":"string","enum":["ua1","ua2"]},"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"summary":{"type":"object","properties":{"checks":{"type":"object","properties":{"pass":{"type":"integer","minimum":0,"maximum":9007199254740991},"fail":{"type":"integer","minimum":0,"maximum":9007199254740991},"warn":{"type":"integer","minimum":0,"maximum":9007199254740991},"manual":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["pass","fail","warn","manual"],"additionalProperties":false},"verapdf":{"type":"object","properties":{"compliant":{"type":"boolean"},"failedRules":{"type":"integer","minimum":0,"maximum":9007199254740991},"failures":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["compliant","failedRules","failures"],"additionalProperties":false},"manualChecks":{"maxItems":8,"type":"array","items":{"type":"string","enum":["manual.reading-order","manual.contrast","manual.alt-quality","manual.language-parts","manual.heading-meaning","manual.table-meaning","manual.link-purpose","manual.sensory"]}},"conformityProven":{"type":"boolean","const":false},"statement":{"type":"object","properties":{"de":{"type":"string","const":"Eine bestandene Prüfung ist kein Nachweis der Konformität mit dem European Accessibility Act (Richtlinie (EU) 2019/882) oder EN 301 549. Nur ein Mensch kann die als „manuell“ markierten Punkte prüfen."},"en":{"type":"string","const":"A passed check is not proof of conformity with the European Accessibility Act (Directive (EU) 2019/882) or EN 301 549. Only a person can check the points marked manual."}},"required":["de","en"],"additionalProperties":false}},"required":["checks","verapdf","manualChecks","conformityProven","statement"],"additionalProperties":false},"checks":{"minItems":24,"maxItems":24,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["doc.title","doc.language","doc.tagged","doc.structure","doc.bookmarks","page.tab-order","figure.alt","heading.exist","heading.levels","table.header","list.structure","link.contents","form.tooltip","font.embedded","font.unicode","page.image-only","manual.reading-order","manual.contrast","manual.alt-quality","manual.language-parts","manual.heading-meaning","manual.table-meaning","manual.link-purpose","manual.sensory"]},"status":{"type":"string","enum":["pass","fail","warn","manual"]},"checked":{"type":"integer","minimum":0,"maximum":9007199254740991},"count":{"type":"integer","minimum":0,"maximum":9007199254740991},"pages":{"maxItems":100,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"pagesTruncated":{"type":"boolean"},"types":{"maxItems":20,"type":"array","items":{"type":"string","enum":["Document","DocumentFragment","Part","Art","Sect","Div","BlockQuote","Caption","TOC","TOCI","Index","NonStruct","Private","Aside","Title","FENote","Sub","P","H","H1","H2","H3","H4","H5","H6","L","LI","Lbl","LBody","Table","TR","TH","TD","THead","TBody","TFoot","Span","Em","Strong","Quote","Note","Reference","BibEntry","Code","Link","Annot","Ruby","RB","RT","RP","Warichu","WT","WP","Figure","Formula","Form","Artifact","Custom"]}},"title":{"type":"object","properties":{"de":{"type":"string","minLength":1,"maxLength":1000},"en":{"type":"string","minLength":1,"maxLength":1000}},"required":["de","en"],"additionalProperties":false},"fix":{"type":"object","properties":{"de":{"type":"string","minLength":1,"maxLength":1000},"en":{"type":"string","minLength":1,"maxLength":1000}},"required":["de","en"],"additionalProperties":false}},"required":["id","status","checked","count","pages","pagesTruncated","title","fix"],"additionalProperties":false}},"categories":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"checkpoint":{"type":"string","minLength":1,"maxLength":40},"title":{"type":"object","properties":{"de":{"type":"string","minLength":1,"maxLength":1000},"en":{"type":"string","minLength":1,"maxLength":1000}},"required":["de","en"],"additionalProperties":false},"failures":{"type":"integer","minimum":0,"maximum":9007199254740991},"failedRules":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"rule":{"type":"string","maxLength":100},"clause":{"type":"string","maxLength":100},"test":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":{"type":"string","maxLength":2000},"failures":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["rule","clause","test","description","failures"],"additionalProperties":false}}},"required":["checkpoint","title","failures","failedRules"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["part","pages","summary","checks","categories","truncated"],"additionalProperties":false},"RedactFindResponse":{"type":"object","properties":{"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"findings":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":16},"type":{"type":"string","enum":["iban","tax-id","vat-id","birth-date","address","email","phone","id-card","text","pattern"]},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"rects":{"minItems":1,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0,"maximum":1},"height":{"type":"number","minimum":0,"maximum":1}},"required":["x","y","width","height"],"additionalProperties":false}},"confidence":{"type":"number","minimum":0,"maximum":1},"length":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","type","page","rects","confidence","length"],"additionalProperties":false}}},"required":["pages","findings"],"additionalProperties":false},"CreateEnvelopeResult":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["sent","completed","declined","expired","cancelled"]},"expiresAt":{"type":"string"},"signers":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"name":{"type":"string"},"order":{"type":"integer","minimum":1,"maximum":9007199254740991},"token":{"type":"string"}},"required":["index","name","order","token"],"additionalProperties":false}},"legal":{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false}},"required":["id","status","expiresAt","signers","legal"],"additionalProperties":false},"EnvelopeStatusResult":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["sent","completed","declined","expired","cancelled"]},"signed":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"createdAt":{"type":"string"},"expiresAt":{"type":"string"},"completedAt":{"type":["string","null"]},"finalSha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"signers":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"name":{"type":"string"},"order":{"type":"integer","minimum":1,"maximum":9007199254740991},"state":{"type":"string","enum":["pending","signed","declined"]},"signedAt":{"type":["string","null"]}},"required":["index","name","order","state","signedAt"],"additionalProperties":false}}},"required":["id","status","signed","total","version","createdAt","expiresAt","completedAt","finalSha256","signers"],"additionalProperties":false},"SignRequest":{"type":"object","properties":{"signature":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"image"},"png":{"type":"string","minLength":1,"maxLength":2796204}},"required":["type","png"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"typed"},"text":{"type":"string","minLength":1,"maxLength":100}},"required":["type","text"],"additionalProperties":false}]}},"required":["signature"],"additionalProperties":false},"SignResult":{"type":"object","properties":{"status":{"type":"string","enum":["sent","completed","declined","expired","cancelled"]},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"legal":{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false}},"required":["status","version","sha256","legal"],"additionalProperties":false},"DeclineRequest":{"type":"object","properties":{"reason":{"type":"string","maxLength":500}},"additionalProperties":false},"EndEnvelopeResult":{"type":"object","properties":{"status":{"type":"string","enum":["sent","completed","declined","expired","cancelled"]},"legal":{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false}},"required":["status","legal"],"additionalProperties":false},"AuditResult":{"type":"object","properties":{"envelopeId":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"integer","minimum":1,"maximum":9007199254740991},"kind":{"type":"string","enum":["created","viewed","signed","declined","cancelled","completed","expired"]},"at":{"type":"string"},"signerIndex":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"sha256Before":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sha256After":{"type":"string","pattern":"^[0-9a-f]{64}$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":["string","number","boolean","null"]}},"ipHash":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"previousHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["seq","kind","at","signerIndex","sha256Before","sha256After","data","ipHash","previousHash","hash"],"additionalProperties":false}},"chainValid":{"type":"boolean"},"finalSha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]}},"required":["envelopeId","events","chainValid","finalSha256"],"additionalProperties":false},"DefineWorkflowResult":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"webhookSecret":{"type":"string"}},"required":["key","version"],"additionalProperties":false},"WorkflowDefinitionList":{"type":"object","properties":{"definitions":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"latestVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"name":{"type":"string"},"createdAt":{"type":"string"}},"required":["key","latestVersion","name","createdAt"],"additionalProperties":false}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":9007199254740991},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["definitions","total","limit","offset"],"additionalProperties":false},"StartWorkflowResult":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","completed","rejected","cancelled","expired"]},"definition":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["key","version"],"additionalProperties":false},"expiresAt":{"type":"string"},"participants":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"ref":{"type":"string"},"token":{"type":"string"}},"required":["role","ref","token"],"additionalProperties":false}},"legal":{"anyOf":[{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false},{"type":"null"}]}},"required":["id","status","definition","expiresAt","participants","legal"],"additionalProperties":false},"WorkflowStatusResult":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","completed","rejected","cancelled","expired"]},"definition":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["key","version"],"additionalProperties":false},"createdAt":{"type":"string"},"expiresAt":{"type":"string"},"endedAt":{"type":["string","null"]},"cancelReason":{"anyOf":[{"type":"string","enum":["customer","escalation","step_failed"]},{"type":"null"}]},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"finalSha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"webhookFailures":{"type":"integer","minimum":0,"maximum":9007199254740991},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"type":{"type":"string","enum":["form","approve","sign","build","notify"]},"role":{"anyOf":[{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},{"type":"null"}]},"state":{"type":"string","enum":["waiting","active","done","skipped","rejected","cancelled"]},"startedAt":{"type":["string","null"]},"dueAt":{"type":["string","null"]},"endedAt":{"type":["string","null"]},"ref":{"type":["string","null"]}},"required":["id","type","role","state","startedAt","dueAt","endedAt","ref"],"additionalProperties":false}},"legal":{"anyOf":[{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false},{"type":"null"}]}},"required":["id","status","definition","createdAt","expiresAt","endedAt","cancelReason","version","finalSha256","webhookFailures","steps","legal"],"additionalProperties":false},"FillStepRequest":{"type":"object","properties":{"values":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":200},"additionalProperties":{"type":["string","boolean"]}}},"required":["values"],"additionalProperties":false},"DecideStepRequest":{"type":"object","properties":{"comment":{"type":"string","maxLength":500}},"additionalProperties":false},"StepResult":{"type":"object","properties":{"status":{"type":"string","enum":["running","completed","rejected","cancelled","expired"]},"stepId":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"state":{"type":"string","enum":["waiting","active","done","skipped","rejected","cancelled"]},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"legal":{"anyOf":[{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false},{"type":"null"}]}},"required":["status","stepId","state","version","sha256","legal"],"additionalProperties":false},"EndInstanceResult":{"type":"object","properties":{"status":{"type":"string","enum":["running","completed","rejected","cancelled","expired"]},"legal":{"anyOf":[{"type":"object","properties":{"level":{"type":"string","const":"SIMPLE"},"basis":{"type":"string","const":"eIDAS Article 3(10)"},"note":{"type":"string","const":"This is a simple electronic signature (eIDAS Article 3(10)). It is not an advanced electronic signature (Article 26) and not a qualified electronic signature (Article 3(12)). The identity of a signer is not checked beyond the possession of the signing token."}},"required":["level","basis","note"],"additionalProperties":false},{"type":"null"}]}},"required":["status","legal"],"additionalProperties":false},"WorkflowAuditResult":{"type":"object","properties":{"instanceId":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"integer","minimum":1,"maximum":9007199254740991},"kind":{"type":"string","enum":["created","step.started","step.filled","step.approved","step.rejected","step.signed","step.built","step.notified","step.skipped","step.reminded","step.escalated","viewed","cancelled","completed","rejected","expired"]},"at":{"type":"string"},"stepId":{"anyOf":[{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},{"type":"null"}]},"participantRef":{"type":["string","null"]},"sha256Before":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sha256After":{"type":"string","pattern":"^[0-9a-f]{64}$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":["string","number","boolean","null"]}},"ipHash":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"previousHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"hash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["seq","kind","at","stepId","participantRef","sha256Before","sha256After","data","ipHash","previousHash","hash"],"additionalProperties":false}},"chainValid":{"type":"boolean"},"finalSha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]}},"required":["instanceId","events","chainValid","finalSha256"],"additionalProperties":false},"WorkflowInvalidProblem":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string","const":"WORKFLOW_INVALID"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"},"reasons":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/PdfaReason"}},"problems":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","maxLength":200},"message":{"type":"string","maxLength":200}},"required":["path","message"],"additionalProperties":false}}},"required":["type","code","title","status","requestId","problems"],"additionalProperties":false},"BuildEstimateResponse":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-1,"maximum":9007199254740991},"type":{"type":"string","enum":["input","compress","ocr","redact","protect","unlock","forms.fill","output"]},"operation":{"type":"string","enum":["documents.inspect","documents.assemble","documents.generate","documents.convert","documents.forms.inspect","documents.forms.fill","documents.parse","documents.invoice","documents.einvoice.create","documents.einvoice.check","documents.einvoice.generate","documents.signatures.validate","documents.pdfa.validate","documents.pdfua.validate","documents.accessibility.check","documents.redact.find","documents.redact.apply","documents.ocr","documents.compress","documents.to-office","documents.docx.fill","documents.pages.watermark","documents.pages.stamp","documents.pages.numbers","documents.pages.labels","documents.pages.bates","documents.pages.flatten","documents.pages.duplicate","documents.pages.insert-blank","documents.pages.rotate","documents.pages.delete","documents.pages.reorder","documents.pages.linearize","documents.imagesToPdf","documents.render","documents.urlToPdf","documents.emailToPdf","documents.renderOffice","documents.renderHtml","documents.sign.pades","documents.pdfa","documents.protect","documents.unlock","documents.annotations.export","documents.annotations.import","documents.annotations.flatten","documents.build","documents.barcodes.stamp","documents.barcodes.read","barcodes.image","signing.create","signing.get","signing.sign","signing.decline","signing.cancel","signing.document","signing.audit","workflows.define","workflows.definitions","workflows.start","workflows.get","workflows.fill","workflows.approve","workflows.reject","workflows.sign","workflows.document","workflows.audit","workflows.cancel"]},"units":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["index","type","operation","units"],"additionalProperties":false}},"units":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["steps","units"],"additionalProperties":false},"BarcodeReadResult":{"type":"object","properties":{"pages":{"type":"integer","minimum":0,"maximum":9007199254740991},"codes":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"format":{"type":"string","enum":["qr","datamatrix","code128","ean13","pdf417","ean8","upca","code39","itf"]},"text":{"type":"string"},"textBase64":{"type":"string"},"rect":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","width","height"],"additionalProperties":false},"confidence":{"type":"number","minimum":0,"maximum":1},"parsed":{"type":"object","properties":{"kind":{"type":"string","enum":["swiss-qr-bill","giro-code"]},"fields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["kind","fields"],"additionalProperties":false},"truncated":{"type":"boolean"}},"required":["page","format","rect"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["pages","codes"],"additionalProperties":false},"BuildProblem":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string","enum":["INVALID_REQUEST","UNAUTHENTICATED","IDEMPOTENCY_KEY_REQUIRED","FORBIDDEN","NOT_FOUND","IDEMPOTENCY_KEY_REUSED","IDEMPOTENCY_REQUEST_IN_PROGRESS","PAYLOAD_TOO_LARGE","FILE_TOO_LARGE","UNSUPPORTED_MEDIA_TYPE","TOO_MANY_REQUESTS","QUOTA_EXCEEDED","URL_NOT_ALLOWED","TOO_MANY_PAGES","ENCRYPTED_DOCUMENT","WRONG_PASSWORD","NOT_ENCRYPTED","MALFORMED_DOCUMENT","IMAGE_TOO_LARGE","DOCUMENT_TOO_COMPLEX","FORM_VALUES_REJECTED","TEMPLATE_INVALID","EINVOICE_RULES_FAILED","DOCUMENT_SIGNED","LEVEL_NOT_AVAILABLE","CERTIFICATE_NOT_VALID","INVALID_KEYSTORE","FIELD_NOT_FOUND","FIELD_ALREADY_SIGNED","PDFA_NOT_POSSIBLE","ENVELOPE_NOT_ACTIVE","SIGNER_ALREADY_SIGNED","SIGNER_NOT_YET_DUE","WORKFLOW_INVALID","STEP_NOT_ACTIVE","INSTANCE_NOT_ACTIVE","DEFINITION_VERSION_NOT_FOUND","INTERNAL","SERVICE_UNAVAILABLE","OPERATION_DISABLED","PROCESSING_TIMEOUT"]},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"},"reasons":{"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/PdfaReason"}},"step":{"type":"integer","minimum":-1,"maximum":9007199254740991},"operation":{"type":"string","enum":["documents.inspect","documents.assemble","documents.generate","documents.convert","documents.forms.inspect","documents.forms.fill","documents.parse","documents.invoice","documents.einvoice.create","documents.einvoice.check","documents.einvoice.generate","documents.signatures.validate","documents.pdfa.validate","documents.pdfua.validate","documents.accessibility.check","documents.redact.find","documents.redact.apply","documents.ocr","documents.compress","documents.to-office","documents.docx.fill","documents.pages.watermark","documents.pages.stamp","documents.pages.numbers","documents.pages.labels","documents.pages.bates","documents.pages.flatten","documents.pages.duplicate","documents.pages.insert-blank","documents.pages.rotate","documents.pages.delete","documents.pages.reorder","documents.pages.linearize","documents.imagesToPdf","documents.render","documents.urlToPdf","documents.emailToPdf","documents.renderOffice","documents.renderHtml","documents.sign.pades","documents.pdfa","documents.protect","documents.unlock","documents.annotations.export","documents.annotations.import","documents.annotations.flatten","documents.build","documents.barcodes.stamp","documents.barcodes.read","barcodes.image","signing.create","signing.get","signing.sign","signing.decline","signing.cancel","signing.document","signing.audit","workflows.define","workflows.definitions","workflows.start","workflows.get","workflows.fill","workflows.approve","workflows.reject","workflows.sign","workflows.document","workflows.audit","workflows.cancel"]}},"required":["type","code","title","status","requestId","step","operation"],"additionalProperties":false},"AssembleOptions":{"type":"object","properties":{"coverPage":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200}},"required":["title"],"additionalProperties":false},"pageNumbers":{"default":false,"type":"boolean"},"bookmarks":{"default":false,"type":"boolean"},"partLabels":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"additionalProperties":false},"UrlToPdfRequest":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048},"options":{"type":"object","properties":{"paper":{"default":"A4","type":"string","enum":["A4","LETTER"]},"landscape":{"default":false,"type":"boolean"},"marginMm":{"default":10,"type":"number","minimum":0,"maximum":50},"printBackground":{"default":true,"type":"boolean"}},"additionalProperties":false}},"required":["url"],"additionalProperties":false},"GenerateOptions":{"type":"object","properties":{"paper":{"default":"A4","type":"string","enum":["A4","LETTER"]},"landscape":{"default":false,"type":"boolean"},"marginMm":{"default":10,"type":"number","minimum":0,"maximum":50},"printBackground":{"default":true,"type":"boolean"}},"additionalProperties":false},"EmailToPdfOptions":{"type":"object","properties":{"attachments":{"default":"append","type":"string","enum":["append","list","none"]},"paper":{"default":"A4","type":"string","enum":["A4","LETTER"]},"landscape":{"default":false,"type":"boolean"}},"additionalProperties":false},"EinvoiceInput":{"type":"object","properties":{"specification":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"number":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"typeCode":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"issueDate":{"default":null,"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"dueDate":{"default":null,"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"currency":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"buyerReference":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"orderReference":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"notes":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","maxLength":1000}},"seller":{"type":"object","properties":{"name":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"vatId":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"address":{"default":{},"type":"object","properties":{"line1":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"line2":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"postcode":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"city":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"countryCode":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"additionalProperties":false},"electronicAddress":{"default":null,"anyOf":[{"type":"object","properties":{"scheme":{"type":"string","minLength":1,"maxLength":1000},"value":{"type":"string","minLength":1,"maxLength":1000}},"required":["scheme","value"],"additionalProperties":false},{"type":"null"}]},"contact":{"default":{},"type":"object","properties":{"name":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"phone":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"email":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"additionalProperties":false}},"additionalProperties":false},"buyer":{"type":"object","properties":{"name":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"vatId":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"address":{"default":{},"type":"object","properties":{"line1":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"line2":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"postcode":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"city":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"countryCode":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"additionalProperties":false},"electronicAddress":{"default":null,"anyOf":[{"type":"object","properties":{"scheme":{"type":"string","minLength":1,"maxLength":1000},"value":{"type":"string","minLength":1,"maxLength":1000}},"required":["scheme","value"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"payment":{"default":{},"type":"object","properties":{"meansCode":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"iban":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"bic":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"accountName":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"reference":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"terms":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"additionalProperties":false},"totals":{"default":{},"type":"object","properties":{"lineNet":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"net":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"tax":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"gross":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"prepaid":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"due":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]}},"additionalProperties":false},"taxes":{"default":[],"maxItems":1000,"type":"array","items":{"type":"object","properties":{"category":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"rate":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"base":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"amount":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"exemptionReason":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"additionalProperties":false}},"lines":{"default":[],"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"name":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"quantity":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"unit":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"unitPrice":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"net":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"taxCategory":{"default":null,"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"taxRate":{"default":null,"anyOf":[{"type":"string","maxLength":1000,"pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]}},"additionalProperties":false}}},"required":["seller","buyer"],"additionalProperties":false},"RedactFindRequest":{"type":"object","properties":{"texts":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"textsIgnoreCase":{"type":"boolean"},"patterns":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":256}},"patternsIgnoreCase":{"type":"boolean"},"presets":{"maxItems":8,"type":"array","items":{"type":"string","enum":["iban","tax-id","vat-id","birth-date","address","email","phone","id-card"]}}},"additionalProperties":false},"RedactApplyRequest":{"type":"object","properties":{"regions":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["page","x","y","width","height"],"additionalProperties":false}},"mode":{"default":"text","type":"string","enum":["text","raster"]},"metadata":{"default":true,"type":"boolean"}},"required":["regions"],"additionalProperties":false},"CreateEnvelopeRequest":{"type":"object","properties":{"signers":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","minLength":1,"maxLength":320},"order":{"type":"integer","minimum":1,"maximum":9007199254740991},"places":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"rect":{"type":"object","properties":{"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["left","top","width","height"],"additionalProperties":false}},"required":["page","rect"],"additionalProperties":false}}},"required":["name","email","order","places"],"additionalProperties":false}},"expiresInDays":{"default":14,"type":"integer","minimum":1,"maximum":90},"recordIp":{"default":false,"type":"boolean"}},"required":["signers"],"additionalProperties":false},"WorkflowDefinition":{"type":"object","properties":{"schema":{"type":"string","const":"pevidytech.workflow/1"},"name":{"type":"string","minLength":1,"maxLength":200},"roles":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"steps":{"minItems":1,"maxItems":50,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"form"},"fields":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["id","role","type","fields"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"approve"},"onReject":{"type":"string","enum":["end","continue"]}},"required":["id","role","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"sign"},"places":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"rect":{"type":"object","properties":{"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["left","top","width","height"],"additionalProperties":false}},"required":["page","rect"],"additionalProperties":false}}},"required":["id","role","type","places"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"type":{"type":"string","const":"build"},"instructions":{"type":"object","properties":{"parts":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"file":{"type":"string","pattern":"^file([1-9]|10)$"},"pages":{"type":"string","maxLength":200}},"required":["file"],"additionalProperties":false},{"type":"object","properties":{"html":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["html"],"additionalProperties":false},{"type":"object","properties":{"office":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["office"],"additionalProperties":false}]}},"actions":{"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"compress"},"profile":{"default":"balanced","type":"string","enum":["lossless","balanced","strong"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"languages":{"anyOf":[{"type":"string","maxLength":64},{"maxItems":3,"type":"array","items":{"type":"string","maxLength":16}}]},"pages":{"type":"string"},"dpi":{"default":300,"anyOf":[{"type":"number","const":200},{"type":"number","const":300}]},"force":{"default":false,"type":"boolean"},"type":{"type":"string","const":"ocr"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"regions":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["page","x","y","width","height"],"additionalProperties":false}},"mode":{"default":"text","type":"string","enum":["text","raster"]},"metadata":{"default":true,"type":"boolean"},"type":{"type":"string","const":"redact"}},"required":["regions","type"],"additionalProperties":false},{"type":"object","properties":{"userPassword":{"type":"string","format":"password","writeOnly":true},"ownerPassword":{"type":"string","format":"password","writeOnly":true},"permissions":{"type":"object","properties":{"print":{"type":"string","enum":["none","low","full"]},"modify":{"type":"boolean"},"copy":{"type":"boolean"},"annotate":{"type":"boolean"},"fillForms":{"type":"boolean"},"assemble":{"type":"boolean"},"accessibility":{"default":true,"type":"boolean"}},"required":["print","modify","copy","annotate","fillForms","assemble"],"additionalProperties":false},"type":{"type":"string","const":"protect"}},"required":["ownerPassword","permissions","type"],"additionalProperties":false},{"type":"object","properties":{"password":{"type":"string","format":"password","writeOnly":true},"type":{"type":"string","const":"unlock"}},"required":["password","type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"forms.fill"},"values":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":1000},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}},"required":["type","values"],"additionalProperties":false}]}},"output":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"pdf"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"format":{"type":"string","enum":["png","jpeg"]},"dpi":{"anyOf":[{"type":"number","const":72},{"type":"number","const":150},{"type":"number","const":300}]}},"required":["type","format","dpi"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"json"}},"required":["type"],"additionalProperties":false}]}},"required":["parts","actions","output"],"additionalProperties":false}},"required":["id","type","instructions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"type":{"type":"string","const":"notify"},"event":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"data":{"maxItems":10,"type":"array","items":{"type":"string","enum":["status","documentSha256","versions"]}}},"required":["id","type","event"],"additionalProperties":false}]}},"webhook":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}},"required":["schema","name","roles","steps"],"additionalProperties":false},"DefineWorkflowRequest":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"definition":{"type":"object","properties":{"schema":{"type":"string","const":"pevidytech.workflow/1"},"name":{"type":"string","minLength":1,"maxLength":200},"roles":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"steps":{"minItems":1,"maxItems":50,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"form"},"fields":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["id","role","type","fields"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"approve"},"onReject":{"type":"string","enum":["end","continue"]}},"required":["id","role","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"sign"},"places":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"rect":{"type":"object","properties":{"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["left","top","width","height"],"additionalProperties":false}},"required":["page","rect"],"additionalProperties":false}}},"required":["id","role","type","places"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"type":{"type":"string","const":"build"},"instructions":{"type":"object","properties":{"parts":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"file":{"type":"string","pattern":"^file([1-9]|10)$"},"pages":{"type":"string","maxLength":200}},"required":["file"],"additionalProperties":false},{"type":"object","properties":{"html":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["html"],"additionalProperties":false},{"type":"object","properties":{"office":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["office"],"additionalProperties":false}]}},"actions":{"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"compress"},"profile":{"default":"balanced","type":"string","enum":["lossless","balanced","strong"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"languages":{"anyOf":[{"type":"string","maxLength":64},{"maxItems":3,"type":"array","items":{"type":"string","maxLength":16}}]},"pages":{"type":"string"},"dpi":{"default":300,"anyOf":[{"type":"number","const":200},{"type":"number","const":300}]},"force":{"default":false,"type":"boolean"},"type":{"type":"string","const":"ocr"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"regions":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["page","x","y","width","height"],"additionalProperties":false}},"mode":{"default":"text","type":"string","enum":["text","raster"]},"metadata":{"default":true,"type":"boolean"},"type":{"type":"string","const":"redact"}},"required":["regions","type"],"additionalProperties":false},{"type":"object","properties":{"userPassword":{"type":"string","format":"password","writeOnly":true},"ownerPassword":{"type":"string","format":"password","writeOnly":true},"permissions":{"type":"object","properties":{"print":{"type":"string","enum":["none","low","full"]},"modify":{"type":"boolean"},"copy":{"type":"boolean"},"annotate":{"type":"boolean"},"fillForms":{"type":"boolean"},"assemble":{"type":"boolean"},"accessibility":{"default":true,"type":"boolean"}},"required":["print","modify","copy","annotate","fillForms","assemble"],"additionalProperties":false},"type":{"type":"string","const":"protect"}},"required":["ownerPassword","permissions","type"],"additionalProperties":false},{"type":"object","properties":{"password":{"type":"string","format":"password","writeOnly":true},"type":{"type":"string","const":"unlock"}},"required":["password","type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"forms.fill"},"values":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":1000},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}},"required":["type","values"],"additionalProperties":false}]}},"output":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"pdf"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"format":{"type":"string","enum":["png","jpeg"]},"dpi":{"anyOf":[{"type":"number","const":72},{"type":"number","const":150},{"type":"number","const":300}]}},"required":["type","format","dpi"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"json"}},"required":["type"],"additionalProperties":false}]}},"required":["parts","actions","output"],"additionalProperties":false}},"required":["id","type","instructions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"type":{"type":"string","const":"notify"},"event":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"data":{"maxItems":10,"type":"array","items":{"type":"string","enum":["status","documentSha256","versions"]}}},"required":["id","type","event"],"additionalProperties":false}]}},"webhook":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}},"required":["schema","name","roles","steps"],"additionalProperties":false}},"required":["key","definition"],"additionalProperties":false},"WorkflowDefinitionResult":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"latestVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"createdAt":{"type":"string"},"definition":{"type":"object","properties":{"schema":{"type":"string","const":"pevidytech.workflow/1"},"name":{"type":"string","minLength":1,"maxLength":200},"roles":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"steps":{"minItems":1,"maxItems":50,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"form"},"fields":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["id","role","type","fields"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"approve"},"onReject":{"type":"string","enum":["end","continue"]}},"required":["id","role","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"role":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"due":{"type":"object","properties":{"hours":{"type":"integer","minimum":1,"maximum":8760}},"required":["hours"],"additionalProperties":false},"escalation":{"type":"object","properties":{"remindAfterHours":{"type":"integer","minimum":1,"maximum":8760},"then":{"type":"string","enum":["reassign","cancel"]},"reassignTo":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"afterHours":{"type":"integer","minimum":1,"maximum":8760}},"required":["then","afterHours"],"additionalProperties":false},"type":{"type":"string","const":"sign"},"places":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"rect":{"type":"object","properties":{"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number","minimum":0},"height":{"type":"number","minimum":0}},"required":["left","top","width","height"],"additionalProperties":false}},"required":["page","rect"],"additionalProperties":false}}},"required":["id","role","type","places"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"type":{"type":"string","const":"build"},"instructions":{"type":"object","properties":{"parts":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"file":{"type":"string","pattern":"^file([1-9]|10)$"},"pages":{"type":"string","maxLength":200}},"required":["file"],"additionalProperties":false},{"type":"object","properties":{"html":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["html"],"additionalProperties":false},{"type":"object","properties":{"office":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["office"],"additionalProperties":false}]}},"actions":{"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"compress"},"profile":{"default":"balanced","type":"string","enum":["lossless","balanced","strong"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"languages":{"anyOf":[{"type":"string","maxLength":64},{"maxItems":3,"type":"array","items":{"type":"string","maxLength":16}}]},"pages":{"type":"string"},"dpi":{"default":300,"anyOf":[{"type":"number","const":200},{"type":"number","const":300}]},"force":{"default":false,"type":"boolean"},"type":{"type":"string","const":"ocr"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"regions":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["page","x","y","width","height"],"additionalProperties":false}},"mode":{"default":"text","type":"string","enum":["text","raster"]},"metadata":{"default":true,"type":"boolean"},"type":{"type":"string","const":"redact"}},"required":["regions","type"],"additionalProperties":false},{"type":"object","properties":{"userPassword":{"type":"string","format":"password","writeOnly":true},"ownerPassword":{"type":"string","format":"password","writeOnly":true},"permissions":{"type":"object","properties":{"print":{"type":"string","enum":["none","low","full"]},"modify":{"type":"boolean"},"copy":{"type":"boolean"},"annotate":{"type":"boolean"},"fillForms":{"type":"boolean"},"assemble":{"type":"boolean"},"accessibility":{"default":true,"type":"boolean"}},"required":["print","modify","copy","annotate","fillForms","assemble"],"additionalProperties":false},"type":{"type":"string","const":"protect"}},"required":["ownerPassword","permissions","type"],"additionalProperties":false},{"type":"object","properties":{"password":{"type":"string","format":"password","writeOnly":true},"type":{"type":"string","const":"unlock"}},"required":["password","type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"forms.fill"},"values":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":1000},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}},"required":["type","values"],"additionalProperties":false}]}},"output":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"pdf"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"format":{"type":"string","enum":["png","jpeg"]},"dpi":{"anyOf":[{"type":"number","const":72},{"type":"number","const":150},{"type":"number","const":300}]}},"required":["type","format","dpi"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"json"}},"required":["type"],"additionalProperties":false}]}},"required":["parts","actions","output"],"additionalProperties":false}},"required":["id","type","instructions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"after":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},"group":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"when":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false},{"anyOf":[{"type":"object","properties":{"all":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"maxLength":200},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte","in","empty","notEmpty"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]},{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}]}},"required":["field","op"],"additionalProperties":false}}},"required":["any"],"additionalProperties":false}]}]}}},"required":["any"],"additionalProperties":false}]}]},"type":{"type":"string","const":"notify"},"event":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"data":{"maxItems":10,"type":"array","items":{"type":"string","enum":["status","documentSha256","versions"]}}},"required":["id","type","event"],"additionalProperties":false}]}},"webhook":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}},"required":["schema","name","roles","steps"],"additionalProperties":false}},"required":["key","version","latestVersion","createdAt","definition"],"additionalProperties":false},"StartWorkflowRequest":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9-]{1,64}$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"participants":{"type":"object","propertyNames":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"},"additionalProperties":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"ref":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","minLength":1,"maxLength":320}},"required":["ref","email"],"additionalProperties":false}}},"expiresInDays":{"type":"integer","minimum":1,"maximum":90},"recordIp":{"type":"boolean"}},"required":["key","participants"],"additionalProperties":false},"BuildInstructions":{"type":"object","properties":{"parts":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"file":{"type":"string","pattern":"^file([1-9]|10)$"},"pages":{"type":"string","maxLength":200}},"required":["file"],"additionalProperties":false},{"type":"object","properties":{"html":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["html"],"additionalProperties":false},{"type":"object","properties":{"office":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["office"],"additionalProperties":false}]}},"actions":{"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"compress"},"profile":{"default":"balanced","type":"string","enum":["lossless","balanced","strong"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"languages":{"anyOf":[{"type":"string","maxLength":64},{"maxItems":3,"type":"array","items":{"type":"string","maxLength":16}}]},"pages":{"type":"string"},"dpi":{"default":300,"anyOf":[{"type":"number","const":200},{"type":"number","const":300}]},"force":{"default":false,"type":"boolean"},"type":{"type":"string","const":"ocr"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"regions":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["page","x","y","width","height"],"additionalProperties":false}},"mode":{"default":"text","type":"string","enum":["text","raster"]},"metadata":{"default":true,"type":"boolean"},"type":{"type":"string","const":"redact"}},"required":["regions","type"],"additionalProperties":false},{"type":"object","properties":{"userPassword":{"type":"string","format":"password","writeOnly":true},"ownerPassword":{"type":"string","format":"password","writeOnly":true},"permissions":{"type":"object","properties":{"print":{"type":"string","enum":["none","low","full"]},"modify":{"type":"boolean"},"copy":{"type":"boolean"},"annotate":{"type":"boolean"},"fillForms":{"type":"boolean"},"assemble":{"type":"boolean"},"accessibility":{"default":true,"type":"boolean"}},"required":["print","modify","copy","annotate","fillForms","assemble"],"additionalProperties":false},"type":{"type":"string","const":"protect"}},"required":["ownerPassword","permissions","type"],"additionalProperties":false},{"type":"object","properties":{"password":{"type":"string","format":"password","writeOnly":true},"type":{"type":"string","const":"unlock"}},"required":["password","type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"forms.fill"},"values":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":1000},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}},"required":["type","values"],"additionalProperties":false}]}},"output":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"pdf"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"format":{"type":"string","enum":["png","jpeg"]},"dpi":{"anyOf":[{"type":"number","const":72},{"type":"number","const":150},{"type":"number","const":300}]}},"required":["type","format","dpi"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"json"}},"required":["type"],"additionalProperties":false}]}},"required":["parts","actions","output"],"additionalProperties":false},"BuildEstimateRequest":{"type":"object","properties":{"instructions":{"type":"object","properties":{"parts":{"minItems":1,"maxItems":10,"type":"array","items":{"anyOf":[{"type":"object","properties":{"file":{"type":"string","pattern":"^file([1-9]|10)$"},"pages":{"type":"string","maxLength":200}},"required":["file"],"additionalProperties":false},{"type":"object","properties":{"html":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["html"],"additionalProperties":false},{"type":"object","properties":{"office":{"type":"string","pattern":"^file([1-9]|10)$"}},"required":["office"],"additionalProperties":false}]}},"actions":{"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"compress"},"profile":{"default":"balanced","type":"string","enum":["lossless","balanced","strong"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"languages":{"anyOf":[{"type":"string","maxLength":64},{"maxItems":3,"type":"array","items":{"type":"string","maxLength":16}}]},"pages":{"type":"string"},"dpi":{"default":300,"anyOf":[{"type":"number","const":200},{"type":"number","const":300}]},"force":{"default":false,"type":"boolean"},"type":{"type":"string","const":"ocr"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"regions":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["page","x","y","width","height"],"additionalProperties":false}},"mode":{"default":"text","type":"string","enum":["text","raster"]},"metadata":{"default":true,"type":"boolean"},"type":{"type":"string","const":"redact"}},"required":["regions","type"],"additionalProperties":false},{"type":"object","properties":{"userPassword":{"type":"string","format":"password","writeOnly":true},"ownerPassword":{"type":"string","format":"password","writeOnly":true},"permissions":{"type":"object","properties":{"print":{"type":"string","enum":["none","low","full"]},"modify":{"type":"boolean"},"copy":{"type":"boolean"},"annotate":{"type":"boolean"},"fillForms":{"type":"boolean"},"assemble":{"type":"boolean"},"accessibility":{"default":true,"type":"boolean"}},"required":["print","modify","copy","annotate","fillForms","assemble"],"additionalProperties":false},"type":{"type":"string","const":"protect"}},"required":["ownerPassword","permissions","type"],"additionalProperties":false},{"type":"object","properties":{"password":{"type":"string","format":"password","writeOnly":true},"type":{"type":"string","const":"unlock"}},"required":["password","type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"forms.fill"},"values":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":1000},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}},"required":["type","values"],"additionalProperties":false}]}},"output":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"pdf"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"format":{"type":"string","enum":["png","jpeg"]},"dpi":{"anyOf":[{"type":"number","const":72},{"type":"number","const":150},{"type":"number","const":300}]}},"required":["type","format","dpi"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"json"}},"required":["type"],"additionalProperties":false}]}},"required":["parts","actions","output"],"additionalProperties":false},"files":{"type":"object","propertyNames":{"type":"string","pattern":"^file([1-9]|10)$"},"additionalProperties":{"type":"object","properties":{"bytes":{"type":"integer","minimum":0,"maximum":52428800},"pages":{"type":"integer","minimum":1,"maximum":300}},"required":["bytes","pages"],"additionalProperties":false}}},"required":["instructions","files"],"additionalProperties":false},"PagesWatermarkOptions":{"type":"object","properties":{"kind":{"type":"string","enum":["text","image"]},"text":{"type":"string","minLength":1,"maxLength":200},"opacity":{"default":0.25,"type":"number","minimum":0.05,"maximum":1},"rotation":{"type":"number","minimum":-180,"maximum":180},"position":{"default":"center","type":"string","enum":["top-left","top-center","top-right","middle-left","center","middle-right","bottom-left","bottom-center","bottom-right","tile"]},"size":{"default":0.5,"type":"number","minimum":0.05,"maximum":1},"pages":{"type":"string"}},"required":["kind"],"additionalProperties":false},"PagesStampOptions":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":200},"preset":{"type":"string","enum":["ENTWURF","KOPIE","VERTRAULICH","ORIGINAL","BEZAHLT","DRAFT","COPY","CONFIDENTIAL"]},"date":{"default":"none","type":"string","enum":["none","iso","de"]},"position":{"default":"top-right","type":"string","enum":["top-left","top-center","top-right","middle-left","center","middle-right","bottom-left","bottom-center","bottom-right"]},"color":{"default":"red","type":"string","enum":["red","blue","black","gray"]},"border":{"default":true,"type":"boolean"},"pages":{"type":"string"}},"additionalProperties":false},"PagesNumbersOptions":{"type":"object","properties":{"format":{"default":"{n}","type":"string","minLength":1,"maxLength":60},"position":{"default":"bottom-center","type":"string","enum":["top-left","top-center","top-right","middle-left","center","middle-right","bottom-left","bottom-center","bottom-right"]},"start":{"default":1,"type":"integer","minimum":1,"maximum":999999},"skipFirst":{"default":false,"type":"boolean"},"fontSize":{"default":10,"type":"number","minimum":6,"maximum":48},"pages":{"type":"string"}},"additionalProperties":false},"PagesLabelsOptions":{"type":"object","properties":{"ranges":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"from":{"type":"integer","minimum":1,"maximum":300},"style":{"type":"string","enum":["decimal","roman-lower","roman-upper","letters-lower","letters-upper","none"]},"prefix":{"type":"string","maxLength":20},"start":{"default":1,"type":"integer","minimum":1,"maximum":999999}},"required":["from","style"],"additionalProperties":false}}},"required":["ranges"],"additionalProperties":false},"PagesBatesOptions":{"type":"object","properties":{"prefix":{"default":"","type":"string","maxLength":20},"suffix":{"default":"","type":"string","maxLength":20},"start":{"default":1,"type":"integer","minimum":0,"maximum":999999999},"digits":{"default":6,"type":"integer","minimum":1,"maximum":12},"position":{"default":"bottom-right","type":"string","enum":["top-left","top-center","top-right","middle-left","center","middle-right","bottom-left","bottom-center","bottom-right"]},"fontSize":{"default":9,"type":"number","minimum":6,"maximum":24}},"additionalProperties":false},"PagesFlattenOptions":{"type":"object","properties":{"fields":{"default":true,"type":"boolean"},"annotations":{"default":true,"type":"boolean"},"pages":{"type":"string"}},"additionalProperties":false},"PagesDuplicateOptions":{"type":"object","properties":{"pages":{"type":"string"},"copies":{"default":1,"type":"integer","minimum":1,"maximum":20},"placement":{"default":"after-each","type":"string","enum":["after-each","at-end"]}},"required":["pages"],"additionalProperties":false},"PagesInsertBlankOptions":{"type":"object","properties":{"after":{"maxItems":300,"type":"array","items":{"type":"integer","minimum":0,"maximum":300}},"count":{"default":1,"type":"integer","minimum":1,"maximum":20},"sizeFrom":{"default":"previous","type":"string","enum":["previous","next"]}},"required":["after"],"additionalProperties":false},"PagesRotateOptions":{"type":"object","properties":{"angle":{"anyOf":[{"type":"number","const":90},{"type":"number","const":180},{"type":"number","const":270},{"type":"number","const":-90}]},"pages":{"type":"string"}},"required":["angle"],"additionalProperties":false},"PagesDeleteOptions":{"type":"object","properties":{"pages":{"type":"string"}},"required":["pages"],"additionalProperties":false},"PagesReorderOptions":{"type":"object","properties":{"order":{"minItems":1,"maxItems":300,"type":"array","items":{"type":"integer","minimum":1,"maximum":300}}},"required":["order"],"additionalProperties":false},"PagesLinearizeOptions":{"type":"object","properties":{},"additionalProperties":false},"BarcodeStampOptions":{"type":"object","properties":{"codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"format":{"type":"string","enum":["qr","datamatrix","code128","ean13","pdf417"]},"text":{"type":"string","maxLength":8000},"encoding":{"default":"utf8","type":"string","enum":["utf8","base64"]},"quietZone":{"type":"integer","minimum":0,"maximum":20},"errorCorrection":{"type":"string","enum":["L","M","Q","H"]},"color":{"default":"black","anyOf":[{"type":"string","const":"black"},{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}]},"page":{"type":"integer","minimum":1,"maximum":999999},"rect":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","width","height"],"additionalProperties":false},"label":{"default":false,"type":"boolean"}},"required":["format","text","page","rect"],"additionalProperties":false}}},"required":["codes"],"additionalProperties":false},"BarcodeReadOptions":{"type":"object","properties":{"pages":{"type":"string"},"dpi":{"default":200,"anyOf":[{"type":"number","const":200},{"type":"number","const":300}]},"formats":{"minItems":1,"maxItems":9,"type":"array","items":{"type":"string","enum":["qr","datamatrix","code128","ean13","pdf417","ean8","upca","code39","itf"]}},"parse":{"default":true,"type":"boolean"}},"additionalProperties":false},"BarcodeImageRequest":{"type":"object","properties":{"format":{"type":"string","enum":["qr","datamatrix","code128","ean13","pdf417"]},"text":{"type":"string","maxLength":8000},"encoding":{"default":"utf8","type":"string","enum":["utf8","base64"]},"quietZone":{"type":"integer","minimum":0,"maximum":20},"errorCorrection":{"type":"string","enum":["L","M","Q","H"]},"color":{"default":"black","anyOf":[{"type":"string","const":"black"},{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}]},"scale":{"default":4,"type":"integer","minimum":1,"maximum":32}},"required":["format","text"],"additionalProperties":false},"ProtectOptions":{"type":"object","properties":{"userPassword":{"type":"string","format":"password","writeOnly":true},"ownerPassword":{"type":"string","format":"password","writeOnly":true},"permissions":{"type":"object","properties":{"print":{"type":"string","enum":["none","low","full"]},"modify":{"type":"boolean"},"copy":{"type":"boolean"},"annotate":{"type":"boolean"},"fillForms":{"type":"boolean"},"assemble":{"type":"boolean"},"accessibility":{"default":true,"type":"boolean"}},"required":["print","modify","copy","annotate","fillForms","assemble"],"additionalProperties":false}},"required":["ownerPassword","permissions"],"additionalProperties":false},"UnlockOptions":{"type":"object","properties":{"password":{"type":"string","format":"password","writeOnly":true}},"required":["password"],"additionalProperties":false},"AnnotationsDocument":{"type":"object","properties":{"schema":{"type":"string","const":"pevidytech.annotations/1"},"annotations":{"maxItems":5000,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"highlight"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"quads":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":8,"maxItems":8}}},"required":["type","id","page","quads"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"underline"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"quads":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":8,"maxItems":8}}},"required":["type","id","page","quads"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"strikeout"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"quads":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":8,"maxItems":8}}},"required":["type","id","page","quads"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"squiggly"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"quads":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"items":false,"minItems":8,"maxItems":8}}},"required":["type","id","page","quads"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"note"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"rect":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"icon":{"type":"string","enum":["comment","note","key","help","paragraph"]}},"required":["type","id","page","rect"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"free-text"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","minLength":1,"maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"rect":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"fontSize":{"type":"number","minimum":6,"maximum":72}},"required":["type","id","page","contents","rect"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ink"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"strokes":{"minItems":1,"maxItems":50,"type":"array","items":{"minItems":2,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}}}},"required":["type","id","page","strokes"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"line"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"points":{"type":"array","prefixItems":[{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}],"items":false,"minItems":2,"maxItems":2}},"required":["type","id","page","points"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"arrow"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"points":{"type":"array","prefixItems":[{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}],"items":false,"minItems":2,"maxItems":2}},"required":["type","id","page","points"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"rectangle"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"rect":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"fill":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["type","id","page","rect"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ellipse"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"rect":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"fill":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["type","id","page","rect"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"polygon"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"points":{"minItems":3,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}},"fill":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["type","id","page","points"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"polyline"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"width":{"type":"number","minimum":0.25,"maximum":50},"points":{"minItems":2,"maxItems":2000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}}},"required":["type","id","page","points"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"stamp"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"rect":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"image":{"type":"string","maxLength":262144,"pattern":"^data:image\\/png;base64,[A-Za-z0-9+/]+={0,2}$"},"text":{"type":"string","minLength":1,"maxLength":40}},"required":["type","id","page","rect","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"link"},"id":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"opacity":{"type":"number","minimum":0,"maximum":1},"author":{"type":"string","maxLength":80},"authorId":{"type":"string","maxLength":128},"subject":{"type":"string","maxLength":200},"contents":{"type":"string","maxLength":2000},"created":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"modified":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,3})?Z$"},"inReplyTo":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"},"rect":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["x","y","width","height"],"additionalProperties":false},"uri":{"type":"string"}},"required":["type","id","page","rect","uri"],"additionalProperties":false}]}},"unsupported":{"type":"array","items":{"type":"object","properties":{"subtype":{"type":"string","pattern":"^[A-Za-z0-9]{1,40}$"},"count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"reason":{"type":"string","enum":["type","damaged","action","image"]}},"required":["subtype","count","reason"],"additionalProperties":false}},"ignored":{"type":"array","items":{"type":"object","properties":{"subtype":{"type":"string","pattern":"^[A-Za-z0-9]{1,40}$"},"count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["subtype","count"],"additionalProperties":false}}},"required":["schema","annotations"],"additionalProperties":false},"AnnotationImportOptions":{"type":"object","properties":{"mode":{"default":"add","type":"string","enum":["add","replace"]}},"additionalProperties":false},"AnnotationFlattenOptions":{"type":"object","properties":{"types":{"minItems":1,"maxItems":15,"type":"array","items":{"type":"string","enum":["highlight","underline","strikeout","squiggly","note","free-text","ink","line","arrow","rectangle","ellipse","polygon","polyline","stamp","link"]}},"forms":{"default":false,"type":"boolean"}},"additionalProperties":false}}}}