Public API
    Public API
    • General
    • Endpoints
      • Upload a document for processing
        POST
      • Retrieve structured data results for a processed document
        GET
      • Provide feedback on document extraction results
        PATCH

    General

    Docpier Intelligent Document Processing API Documentation#

    Overview#

    The Docpier Intelligent Document Processing (IDP) API enables automated document processing, workspace management, and feedback submission for agents and users. It supports various document types (invoices, credit notes, contracts, etc.) with a normalized JSON structure, ensuring compliance with the Swiss Federal Act on Data Protection (nFADP).
    API Base URL (Production): https://idp.docpier.com/api/v1
    Current API Version: 1.0.0
    Last Updated: July 07, 2025

    General Information#

    Environments#

    EnvironmentBase URLDescription
    Productionhttps://idp.docpier.com/api/v1Live environment for production use.
    Sandboxhttps://idp-int.docpier.com/api/v1Integration/testing with mock data and relaxed rate limits.
    Contact support@docpier.com to obtain sandbox credentials.

    Version Management#

    The API uses Semantic Versioning (MAJOR.MINOR.PATCH):
    MAJOR: Breaking changes; requires client updates.
    MINOR: Backward-compatible changes.
    PATCH: Bug fixes, minor improvements.
    Changelog: https://docpier.com/changelog

    Authentication#

    The API uses OAuth 2.0 managed by Docpier’s identity provider.

    Client Credentials Flow (for Agents / Server-to-Server)#

    Token URL: https://auth.docpier.com/oauth/token
    Scopes:
    idp.capture — Read and write worspace data.

    Example (Client Credentials Flow)#

    Request an access token using HTTP POST with:
    grant_type=client_credentials
    client_id=your_client_id
    client_secret=your_client_secret
    scope=idp.capture
    Here’s a full example how to request a client credentials token for Docpier using curl:
    The response will include an access_token that can be used in the Authorization header for subsequent API requests.
    Example usage after token retrieval:
    Authorization: Bearer <access_token>
    Best Practice: Cache tokens, refresh before expiry, store credentials securely.

    Pagination#

    The API provides pagination mechanism for clients to query of large amount of data efficiently.

    Parameters:#

    page — The page number (zero-based). Default: 0.
    size — The number of items per page. Default: 20, Maximum: 100.
    sort — Optional. Sorting criteria in the format: property,(asc|desc).

    Example Request:#

    GET /user/workspaces/ws_abcdef123/documents?page=0&size=10&sort=uploadTime,desc
    Authorization: Bearer <token>

    Example Response:#

    {
      "content": [ ... ],
      "pageable": {
        "pageNumber": 0,
        "pageSize": 10
      },
      "totalElements": 123,
      "totalPages": 13,
      "last": false,
      "first": true,
      "numberOfElements": 10
    }

    Error Handling#

    All errors return standard HTTP status codes with consistent JSON error format.

    Example Error:#

    {
      "code": "INVALID_FILE",
      "message": "The uploaded file is not a valid PDF."
    }

    HTTP Status Codes#

    CodeMeaning
    200OK
    201Created
    202Accepted
    400Bad Request
    401Unauthorized
    403Forbidden
    404Not Found
    413Payload Too Large
    415Unsupported Media Type
    429Too Many Requests
    500Internal Server Error

    Common Error Codes#

    CodeDescription
    INVALID_FILEInvalid file format or corrupted
    INVALID_TOKENInvalid or expired token
    FORBIDDEN_ACCESSInsufficient permissions
    NOT_FOUNDResource not found
    RATE_LIMIT_EXCEEDEDToo many requests
    INVALID_SCHEMAInvalid JSON schema
    PROCESSING_FAILEDProcessing error
    Best Practice: Implement retry logic with exponential backoff for 429 and 500 errors.

    Character Sets#

    Encoding: UTF-8
    Content-Type: application/json (default)
    Uploads: application/pdf, image/jpeg, image/png, image/tiff

    Integration Guidelines#

    1.

    Obtain Credentials#

    Contact support@docpier.com to receive:
    client_id
    client_secret
    workspace_id
    2.

    Test in Sandbox#

    Use https://idp-int.docpier.com/api/v1 to integrate your flow.
    3.

    Implement Workflows#

    Agent Workflow (Server-to-Server)#

    POST /worspaces/{workspace_id}/documents — Upload document
    GET /worspaces/{workspace_id}/documents/{documentId} — Poll processing status
    PATCH /worspaces/{workspace_id}/documents/{documentId}/feedback — Submit feedback

    Rate Limits#

    EnvironmentLimit
    Production100 requests/minute
    Integration20 requests/minute
    Response Header: X-Rate-Limit-Remaining

    nFADP Compliance#

    Each response containing personal data includes an nFADP object.
    Partners are responsible for full compliance with Swiss Federal Act on Data Protection (nFADP) and GDPR.

    Best Practices#

    Authentication: Cache tokens, store credentials securely.
    Error Handling: Log errors with codes/messages.
    Pagination: Handle next_cursor properly.
    Uploads: Validate files client-side before upload.
    Feedback: Provide detailed field corrections to improve model accuracy.
    Monitoring: Actively monitor usage, response times, and error rates.

    Sequence Diagram (Agent Workflow)#


    Domain/Class Diagram: API Data Model#

    This diagram illustrates the core entities and their relationships within the Docpier API data model. Note that the ProcessingResult in the diagram broadly represents the structured JSON output (items in the GET /documents/{documentId} response), which will conform to one of the specific document schemas (Invoice, CreditNote, etc.).

    Key Field Definitions#

    This section explains the possible values for all enum fields across the API data models, providing clarity on the expected and accepted values.

    documentType#

    Used in: CoreDocument
    ValueDescription
    INVOICEThe document is identified as a commercial invoice (Rechnung).
    REMINDERThe document is identified as a payment reminder (Mahnung).
    RECEIPTThe document is identified as a payment receipt (Beeleg).
    ACCOUNT_STATEMENTThe document is identified as a bank account statement (Kontoauszug).
    CREDIT_NOTEThe document is identified as a credit note (Gutschrift).
    SALARY_STATEMENTThe document is identified as a salary statement (Lohnausweis).
    PAY_SLIPThe document is identified as a pay slip (Lohnabrechnung).
    TAX_CERTIFICATEThe document is identified as a tax certificate (Steuerbescheinigung).
    INSURANCE_POLICYThe document is identified as an insurance policy (Versicherungspolice).
    WARRANTY_POLICYThe document is identified as a warranty policy (Garantieschein).
    CONTRACTThe document is identified as a contract (Vertrag).
    CREDITCARD_STATEMENTThe document is identified as a credit card statement (Kreditkartenauszug).
    UNKNOWNThe document type could not be identified or fully structured by Docpier.

    language#

    Used in: CoreDocument
    ValueDescription
    DEGerman (Deutsch)
    FRFrench (Français)
    ITItalian (Italiano)
    ENEnglish

    type#

    For Tax Identifiers (sender.taxIds[].type, recipient.taxIds[].type)
    Used in: sender.taxIds.items, recipient.taxIds.items
    ValueDescription
    UIDSwiss Company Identification Number (UID/EHRA).
    VATValue Added Tax (VAT) Identification Number (e.g., Swiss MWST).
    VAT_EUValue Added Tax (VAT) Identification Number (e.g., EU VAT ID).
    OTHEROther type of tax identification not explicitly listed.

    paymentType#

    Used in: Invoice, Receipt, Reminder
    ValueDescription
    QRPayment expected/made via Swiss QR-Bill.
    DOMESTIC_IBANPayment expected/made via a domestic IBAN bank transfer.
    INTERNATIONAL_IBANPayment expected/made via an international IBAN bank transfer.
    LSVPayment expected/made via Lastschriftverfahren (Direct Debit - Switzerland).
    BDDPayment expected/made via Business Debit Direct (Switzerland).
    CREDIT_CARDPayment expected/made via a credit card.
    DEBIT_CARDPayment expected/made via a debit card.
    CARDPayment expected/made via a generic card (type not specified/detected).
    TWINTPayment expected/made via Twint mobile payment.
    BANK_TRANSFERGeneral bank transfer (when more specific IBAN/LSV/BDD not detected).
    CASHPayment expected/made via cash.

    stateOfInvoice#

    Used in: Receipt, Invoice, Reminder
    ValueDescription
    PAIDThe associated invoice (if any) is fully paid.
    OUTSTANDINGThe associated invoice (if any) still has an outstanding balance.

    Normalized JSON Structure#

    The GET /documents/{documentId} endpoint returns processed documents in a normalized JSON structure. Each extracted field corresponds to a defined schema property and includes a confidence score (a float between 0.0 and 1.0) indicating the accuracy of the extraction for that specific field.
    The top-level response is an array of detected documents, where each document conforms to one of the specific schemas (e.g., Invoice, Credit Note, Account Statement, or UnknownDocument).

    Support#

    📧 Email: support@docpier.com
    📄 Documentation: https://docpier.com/docs
    🔔 Changelog: https://docpier.com/changelog
    🛠 Issue Reporting: Use partner portal or email (include documentId and error codes for faster resolution).
    Modified at 2025-07-11 16:20:13
    Next
    Upload a document for processing
    Built with