Penneo Case File Creation API

The Case File Creation API from Penneo — 1 operation(s) for case file creation.

Operations 1

POST /send/api/v1/casefiles/20251022/create Create a new case file with documents and signers #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/penneo:penneo-case-file-creation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

penneo-case-file-creation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Penneo Case File Case File Creation API
  version: 1.0.0
  description: API for creating and managing Penneo case files. This API allows you to create case files with documents and signers, upload PDF files, and check the status of asynchronous job processing.
servers:
- url: https://sandbox.penneo.com
  description: Sandbox environment for testing and development
- url: https://app.penneo.com
  description: Production environment
tags:
- name: Case File Creation
paths:
  /send/api/v1/casefiles/20251022/create:
    post:
      tags:
      - Case File Creation
      summary: Create a new case file with documents and signers
      operationId: createCaseFile
      description: Creates a new case file in Penneo with the specified documents and signers. This endpoint accepts a multipart/form-data request containing JSON metadata and files.
      parameters:
      - in: header
        name: X-Auth-Token
        required: true
        schema:
          type: string
        description: JWT token for authentication. Obtain a token following the instructions at https://penneo.readme.io/docs/using-oauth#authorization-code-grant. The token must be valid and have the necessary permissions to create case files.
      requestBody:
        required: true
        description: Multipart form data containing the case file configuration (as JSON string in 'data' field) and files to upload.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - data
              - files
              properties:
                data:
                  type: string
                  description: 'JSON string containing the case file configuration. Must be a stringified JSON object with a required ''caseFile'' property (title, signers array, and documents array). Optional caseFile.activateCaseFile (boolean, default true): when false, the case file is created but not activated/sent, and signingLinks in the job result is an empty array. Each signer supports optional channel (''email'' or ''eboks''; default email). e-Boks requires exactly one of cpr (exactly 10 digits) or cvr (8 digits with an optional alphanumeric :suffix); cpr and cvr are mutually exclusive and only valid when channel is eboks. e-Boks must be enabled for the customer; email is unused for e-Boks delivery. Each signer also supports optional secureSigningMethods (array of allowed secure electronic signing methods; allowed values: ''mitid.dk'', ''bankid_se'', ''bankid_no'', ''itsme.be'', ''ftn.fi'', ''sms'', ''eid.belgium.be'', ''passport-reader.eident.dk'', ''ausweisapp.bund.de'', ''qes.personal.mitid.dk'', ''qes.erhverv.mitid.dk'') which overrides case file and customer settings when set. Pass an empty array to disable all secure methods (SES-only when insecure signing is enabled); omit the field to use case file / customer defaults.'
                  example: '{"caseFile":{"title":"Contract Agreement","activateCaseFile":true,"signers":[{"name":"John Doe","email":"john@example.com","role":"signer","secureSigningMethods":["mitid.dk","bankid_no"]}],"documents":[{"title":"Contract Document","name":"contract.pdf"}]}}'
                files:
                  type: array
                  items:
                    type: string
                    format: binary
                  description: Array of PDF files to upload. The number of files must match the number of documents specified in the data field. Files should be uploaded in the same order as documents are specified.
      responses:
        '201':
          description: Case file creation job has been successfully queued. Use the returned job UUID and payloadHash to check the job status via the queue status endpoint.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Job created
                    description: Human-readable message about the job creation
                  status:
                    type: string
                    enum:
                    - handled
                    - error
                    example: handled
                    description: Status of the job creation request
                  jobs:
                    type: array
                    description: Array of created jobs (typically contains one job)
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                          description: Unique identifier for the job that can be used to check status
                        payload:
                          type: object
                          description: The job payload containing case file metadata and tracking information
                          properties:
                            organizationUuid:
                              type: string
                              format: uuid
                              description: UUID of the organization that owns this case file
                            uuid:
                              type: string
                              format: uuid
                              description: UUID of the created case file
                            bundleUuid:
                              type: string
                              format: uuid
                              description: UUID of the bundle containing the case file
                            etlVersionUuid:
                              type: string
                              format: uuid
                              description: UUID of the ETL version used for processing
                            customData:
                              type: object
                              description: Additional metadata and context for the job
                              properties:
                                initialPayload:
                                  type: object
                                  description: The original request payload that was submitted
                                  properties:
                                    caseFile:
                                      type: object
                                      description: The case file data that was submitted
                                penneoApiUser:
                                  type: string
                                  description: Penneo API user identifier
                                endpoint:
                                  type: string
                                  description: The endpoint path that was called
                                jwt:
                                  type: object
                                  description: Decoded JWT token information
                                  properties:
                                    cid:
                                      type: integer
                                      description: Customer ID from JWT
                                    roles:
                                      type: array
                                      items:
                                        type: string
                                      description: User roles from JWT
                                    jti:
                                      type: string
                                      description: JWT token ID
                                    sub:
                                      type: string
                                      description: JWT subject (user ID)
                                    exp:
                                      type: integer
                                      description: JWT expiration timestamp (Unix epoch)
                                    scp:
                                      type: string
                                      description: JWT scope
                                    client_id:
                                      type: string
                                      description: OAuth client ID
                                    iss:
                                      type: string
                                      description: JWT issuer
                                    iat:
                                      type: integer
                                      description: JWT issued at timestamp (Unix epoch)
                        payloadHash:
                          type: string
                          description: SHA-256 hash of the payload, used for verification when checking job status
                        createdAt:
                          type: string
                          format: date-time
                          description: ISO 8601 timestamp when the job was created
        '400':
          description: Bad Request - The request is invalid. This may be due to invalid input data, malformed JSON, missing required fields, invalid JWT token format, or validation errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Bad Request
                  message:
                    type: string
                    example: 'Invalid JWT token: Invalid token format'
                  statusCode:
                    type: integer
                    example: 400
x-provenance:
  method: searched
  source: https://developer.penneo.com/reference
  harvested: '2026-10-27'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.penneo.com/reference/checkjobstatus.md
  - https://developer.penneo.com/reference/createcasefile.md
  merge:
    pages: 2
    deduped: 0
    conflicts_kept_first: 0