> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sajn.se/llms.txt
> Use this file to discover all available pages before exploring further.

# Create document fields

> Adds fields to a document. Send the fields in `fields`, even when you create one.

**Field Types:**
- `TEXT` - Rich text content section (Tiptap editor format)
- `HTML` - Raw HTML content with custom styling (API-only, sanitized for security)
- `FORM` - Form with input fields for signers
- `PDF` - PDF file section
- `PRODUCT_TABLE` - Product/service table with pricing
- `TABLE` - Simple table with custom rows and columns
- `SPACER`, `PAGE_BREAK`, `DURATION` - Layout and duration blocks

**Field Position:** Determines the order fields appear in the document (0-based index).

**Field Metadata:** Each field type has specific metadata requirements. See schema documentation for details.

**Placing fields on a PDF:** a `PDF` field renders an uploaded PDF (`fieldMeta.value` is the storage `key` returned by the files endpoint). Add boxes on its pages with `fieldMeta.placedFields`. Each entry has a unique `id`, `page` (0-based), `rect` (`x`, `y`, `width`, `height` in PDF points, origin at the bottom-left corner of the page), and a `kind`. The server fills `pageWidth`, `pageHeight`, and `pageRotation` from the PDF page when you omit them. If you send `pageWidth` and `pageHeight`, `rect` is measured on a page of that size and scaled to the real page. The box kinds are the following:
- `INPUT` with `inputType` `SIGNATURE` or `INITIALS` and a `partyId`: a mark the party draws at signing, sealed into the PDF at that position.
- `INPUT` with `inputType` `TEXT`, `DATE`, `CHECKBOX` or `SELECT` and a `partyId`: a value the party fills in before signing. Set `required` to block signing until it is filled.
- `STATIC` with `content` (HTML): fixed text stamped at that position.

Set `key` on an `INPUT` box to fill it in by that key through `PATCH /api/v1/documents/{id}/field-values`. A key can contain lowercase letters, digits, hyphens, and underscores.

The following example creates a PDF field with a signature box:

```json
{
  "fields": [
    {
      "type": "PDF",
      "position": 0,
      "fieldMeta": {
        "type": "PDF",
        "value": "f/org_123/abc123def/contract.pdf",
        "placedFields": [
          {
            "id": "sig-1",
            "kind": "INPUT",
            "inputType": "SIGNATURE",
            "page": 2,
            "rect": { "x": 72, "y": 96, "width": 200, "height": 48 },
            "pageWidth": 595.28,
            "pageHeight": 841.89,
            "partyId": "PARTY_ID",
            "required": true
          }
        ]
      }
    }
  ]
}
```

The request fails with an HTTP `400 Bad Request` status code, and writes nothing, when a box has a `page` the PDF doesn't have, doesn't fit on its page, names a `partyId` that isn't a party on the document, or is a `SIGNATURE` or `INITIALS` box without a party with the `SIGNER` role. The `issues` array in the response lists every problem with its path, such as `fields.0.fieldMeta.placedFields.2.rect`.

The response lists the created fields in request order, each in the same shape as `GET /api/v1/documents/{id}/fields/{fieldId}`. To add, move, or remove single boxes later, use `PATCH /api/v1/documents/{id}/fields/{fieldId}/placed-fields`.

**Product tables:** a `PRODUCT_TABLE` field's `price` values are decimal amounts in the table's `currency`, such as `1499.5`, not minor units. `vat` is a rate in percent, such as `25`.

**HTML Field Security:** HTML fields accept raw HTML but are automatically sanitized server-side to allow only safe formatting tags (p, div, span, headings, lists, tables, images) and basic CSS styling. Links, script tags, and dangerous attributes are stripped. Images support HTTP/HTTPS URLs and data URIs for inline images.



## OpenAPI

````yaml /api/openapi.json post /api/v1/documents/{id}/fields
openapi: 3.1.0
info:
  title: sajn API
  version: 2026-10
  description: >-
    # sajn - API v1


    With the sajn REST API, you can add digital document signing to your own
    applications.


    ## Overview


    sajn is a Swedish digital document signing platform. With the API, you can:

    - Create and manage documents and templates

    - Add the parties who sign, review, or organize a document

    - Send documents for signing by email or SMS

    - Track document status and signatures

    - Manage contacts and companies

    - Organize documents with tags and custom fields

    - Verify identities with sajn ID, through BankID and other eIDs


    ## Authentication


    Every endpoint (except the health check) requires a bearer token in the
    Authorization header:


    ```

    Authorization: Bearer YOUR_TOKEN

    ```


    Two kinds of token are accepted:


    - **Personal API key** (`sajn_sk_...`) — generated from your workspace
    developer settings. Acts as the issuing user; can reach any endpoint the
    user's workspace role permits.

    - **OAuth 2.0 access token** — issued via the authorization-code flow (PKCE
    for public clients) to a connected application. Bound to one workspace and
    limited to the **scopes** the user granted at consent — effective access is
    *workspace role ∩ granted scopes*.


    Each operation lists the OAuth scopes it requires in its security section.
    The scopes are coarse and resource-oriented (e.g. `documents:read`,
    `documents:write`, `documents:delete`, `contacts:read`). Personal API keys
    are not scope-limited; OAuth tokens are.


    ## Rate Limiting


    Limits apply per organization and scale with the plan:


    | Plan | Per minute | Per day |

    |---|---|---|

    | Basic | 60 | 2 000 |

    | Solo | 120 | 10 000 |

    | Team | 600 | 100 000 |

    | Enterprise | 2 000 | 2 000 000 |

    | Sandbox | 60 | 2 000 |


    Every response carries `X-RateLimit-Limit`, `X-RateLimit-Remaining` and
    `X-RateLimit-Reset` for the minute window, and `X-RateLimit-Daily-Limit`,
    `X-RateLimit-Daily-Remaining` and `X-RateLimit-Daily-Reset` for the daily
    quota. A `429` response includes `Retry-After` in seconds.


    ## Query parameters


    Query parameters are plain strings, such as
    `?externalId=12345&archived=false`:

    - Booleans are `true` or `false`.

    - Dates are ISO 8601 dates (`2026-10-01`) or date-times
    (`2026-10-01T08:00:00Z`). A date-time without an offset is UTC.

    - Filters that take several values accept a comma-separated list
    (`status=PENDING,COMPLETED`) or a repeated parameter
    (`status=PENDING&status=COMPLETED`).


    An unknown query parameter returns `400`, so a misspelled filter never
    silently returns everything.


    ## Pagination


    Every list returns `{ data, hasMore, nextCursor }`. To walk a list, pass
    `nextCursor` as `cursor` on the next request, keep the other parameters
    unchanged, and stop when `hasMore` is `false`. `limit` sets the page size,
    from 1 to 100, with a default of 25. To get the number of items that match
    the filters, pass `include=total`, and the response adds `total`.


    Lists sort newest first. To sort another way, pass `orderBy` and
    `orderDirection` where the list takes them. A list bounded by its parent,
    such as a document's parties, returns every item in one response, with
    `hasMore` set to `false` and `nextCursor` set to `null`.


    On the documents list, the cursor is keyset-based: it stays correct while
    documents are created and updated between requests. To mirror documents into
    your own system, sort by `updatedAt` and use the `updatedAfter` filter.


    ## Idempotent requests


    Send an `Idempotency-Key` header (any unique string up to 255 characters,
    for example a UUID) on `POST`, `PATCH` or `DELETE` requests to make retries
    safe. The first request runs normally and its response is stored for 24
    hours, errors included. A retry with the same key and the same method, path
    and body returns the stored response with the header `Idempotent-Replayed:
    true`. Reusing a key with a different request returns `400
    IDEMPOTENCY_KEY_REUSED`; retrying while the first request is still running
    returns `409 IDEMPOTENCY_KEY_IN_USE` with `Retry-After`. Responses with a
    `429` or `5xx` status aren't stored, so the retry runs again. Keys are
    scoped to the workspace.


    ## Versioning


    The API is versioned by date (`YYYY-MM`), and this reference documents
    version `2026-10`. To choose the version for a request, send the
    `Sajn-Version` header:


    ```

    Sajn-Version: 2026-10

    ```


    Without the header, a request uses your organization's default version. An
    organization without a default is pinned to the latest version by its first
    request. Every response returns the version that served it in
    `Sajn-Version`. On a deprecated version, responses also carry `Deprecation`
    and `Sunset` headers, and from the sunset date its requests return `400`.
    For details, see https://docs.sajn.se/api-reference/versioning.


    ## Webhooks


    Each webhook endpoint has its own API version, set when you create it, that
    decides the payload shape. Deliveries carry it in the `Sajn-Version` header.


    The delivery body is the event, `{ id, type, createdAt, apiVersion,
    workspaceId, environment, actor, data }`, signed according to [Standard
    Webhooks](https://www.standardwebhooks.com) in the `webhook-id`,
    `webhook-timestamp` and `webhook-signature` headers. Common document events:

    - `document.created` - A document is created.

    - `document.sent` - A document is sent for signing.

    - `document.party.opened` - A party opens the document.

    - `document.party.signed` - A party signs the document.

    - `document.fully_signed` - Every signer has signed, before the document is
    sealed.

    - `document.completed` - The document is sealed and complete.

    - `document.rejected` - A party rejects the document.


    For every event type, see `POST /api/v1/webhooks`.


    ## Error Handling


    Every error response has the same JSON shape:


    ```json

    {
      "code": "NOT_FOUND",
      "message": "Document not found",
      "userMessage": "Dokumentet hittades inte.",
      "requestId": "req_V1StGXR8Z5jdHi6BmyT2",
      "resource": "document"
    }

    ```


    - `code` is always present and comes from the closed list in the following
    table. Branch on it, not on the status or the message.

    - `message` is English text for developers. When the operation has no more
    specific text, it's the meaning of `code` from the following table. Its
    wording can change, so don't parse it.

    - `userMessage` is always present. It's text that is safe to show your
    users, usually in Swedish.

    - `requestId` identifies the request and matches the `Sajn-Request-Id`
    header, which every response carries. Quote it when you contact support. On
    a replayed idempotent response, it identifies the original request.


    A `400 VALIDATION_FAILED` lists every problem in `issues`: `[{ "path":
    "parties.0.email", "code": "INVALID_FORMAT", "message": "Invalid email
    address" }]`. An issue `code` is one of `INVALID_TYPE`, `INVALID_FORMAT`,
    `INVALID_VALUE`, `TOO_SMALL`, `TOO_BIG` or `UNRECOGNIZED_KEY`, and an issue
    that no single input caused has an empty `path`. A `404 NOT_FOUND` names the
    type of the missing resource in `resource`, such as `document` or `party`,
    or `null` when the API can't tell. A `403 INSUFFICIENT_SCOPE` includes
    `requiredScopes` and `grantedScopes`.


    A `401 UNAUTHORIZED` always means the credential itself is missing, invalid,
    expired or revoked. A valid token that isn't allowed to do something gets a
    `403`. A `409 INVALID_STATE` means the resource's state doesn't allow the
    operation; change the state first, then retry. A `503 UPSTREAM_UNAVAILABLE`
    is safe to retry with exponential backoff, and so is a `429` after
    `Retry-After` seconds.


    The API returns the following codes:


    | Code | Status | Meaning |

    |---|---|---|

    | `VALIDATION_FAILED` | 400 | The request failed validation. `issues` lists
    every problem. |

    | `INVALID_JSON` | 400 | The request body isn't valid JSON. |

    | `EXPIRED` | 400 | The link, code or resource has expired. |

    | `IDEMPOTENCY_KEY_REUSED` | 400 | The `Idempotency-Key` was already used
    with a different request. |

    | `INVALID_API_VERSION` | 400 | The `Sajn-Version` header names a version
    that doesn't exist. |

    | `API_VERSION_SUNSET` | 400 | The requested version, or your organization's
    default, is past its sunset date. |

    | `UNAUTHORIZED` | 401 | The API token is missing, invalid, expired or
    revoked. |

    | `PERMISSION_DENIED` | 403 | The token's user isn't allowed to perform the
    operation, for example because their workspace role lacks a permission. |

    | `INSUFFICIENT_SCOPE` | 403 | The OAuth token wasn't granted a scope the
    operation requires. See `requiredScopes` and `grantedScopes`. |

    | `PLAN_REQUIRED` | 403 | The organization's plan doesn't include API access
    or the feature. |

    | `ACCOUNT_INACTIVE` | 403 | The organization, user or membership behind the
    token is deactivated or suspended. |

    | `ACCOUNT_SETUP_REQUIRED` | 403 | The organization must finish its setup,
    such as verifying an accountable person, first. |

    | `LIMIT_EXCEEDED` | 403 | A plan limit was reached, such as the monthly
    number of sent documents. |

    | `APPROVAL_REQUIRED` | 409 | The operation needs an approval first, such as
    sending a document that the workspace requires an approval for. Request one
    with `POST /api/v1/approval-requests`. |

    | `NOT_FOUND` | 404 | The resource doesn't exist, or the token can't access
    it. `resource` names its type, such as `document`, or is `null` when the API
    can't tell. |

    | `ROUTE_NOT_FOUND` | 404 | No endpoint matches the method and path in the
    requested API version. |

    | `INVALID_STATE` | 409 | The resource's current state doesn't allow the
    operation, such as editing a document that was already sent or downloading a
    file that isn't produced yet. |

    | `ALREADY_EXISTS` | 409 | A resource with the same unique value, such as
    `externalId`, already exists. |

    | `IDEMPOTENCY_KEY_IN_USE` | 409 | A request with the same `Idempotency-Key`
    is still running. Retry after `Retry-After` seconds. |

    | `RATE_LIMITED` | 429 | The per-minute rate limit was reached. Retry after
    `Retry-After` seconds. |

    | `DAILY_QUOTA_EXCEEDED` | 429 | The daily request quota was reached. Retry
    after `Retry-After` seconds. |

    | `INTERNAL_ERROR` | 500 | Something went wrong on sajn's side. Quote
    `requestId` when you contact support. |

    | `UPSTREAM_UNAVAILABLE` | 503 | A service the operation depends on, such as
    an eID provider or a connected integration, failed or is unavailable. Retry
    with exponential backoff. |


    ## Support


    For API support, documentation, or questions:

    - Email: dev@sajn.se

    - Documentation: https://docs.sajn.se

    - Status: https://status.sajn.se
  contact:
    name: sajn Support
    email: dev@sajn.se
    url: https://www.sajn.se/support
  license:
    name: Policy
    url: https://www.sajn.se/allmanna-villkor
servers:
  - url: https://app.sajn.se
    description: Production server
security: []
tags:
  - name: Health
    description: API health and version information
  - name: Documents
    description: Create, manage, and send documents for signing
  - name: Templates
    description: Create and manage templates that can be used to spin up new documents
  - name: Parties
    description: Manage document parties (signers and other participants)
  - name: Contacts
    description: Manage contacts and contact information
  - name: Companies
    description: Manage companies and organizations
  - name: Fields
    description: Manage document fields and sections
  - name: Tags
    description: Organize documents with tags
  - name: Custom Fields
    description: Define and manage custom fields for documents
  - name: sajn ID
    description: Identity verification with Swedish BankID
  - name: Files
    description: >-
      Upload and manage files. `POST /api/v1/files` returns a presigned URL that
      you upload the bytes to.
  - name: Folders
    description: Organize documents and templates into hierarchical folders
  - name: Comments
    description: Thread-based discussion on documents
  - name: Reminders
    description: Send and inspect signing reminders on a document
  - name: Helpers
    description: 'Reference data: languages, countries, currencies, timezones'
  - name: Organization
    description: Authenticated organization metadata and branding
  - name: Webhook Deliveries
    description: Inspect and retry past webhook deliveries
  - name: Delegations
    description: Read-only access to signer delegation events on a document
  - name: Blocks
    description: Reusable library blocks for templates
paths:
  /api/v1/documents/{id}/fields:
    post:
      summary: Create document fields
      description: >-
        Adds fields to a document. Send the fields in `fields`, even when you
        create one.


        **Field Types:**

        - `TEXT` - Rich text content section (Tiptap editor format)

        - `HTML` - Raw HTML content with custom styling (API-only, sanitized for
        security)

        - `FORM` - Form with input fields for signers

        - `PDF` - PDF file section

        - `PRODUCT_TABLE` - Product/service table with pricing

        - `TABLE` - Simple table with custom rows and columns

        - `SPACER`, `PAGE_BREAK`, `DURATION` - Layout and duration blocks


        **Field Position:** Determines the order fields appear in the document
        (0-based index).


        **Field Metadata:** Each field type has specific metadata requirements.
        See schema documentation for details.


        **Placing fields on a PDF:** a `PDF` field renders an uploaded PDF
        (`fieldMeta.value` is the storage `key` returned by the files endpoint).
        Add boxes on its pages with `fieldMeta.placedFields`. Each entry has a
        unique `id`, `page` (0-based), `rect` (`x`, `y`, `width`, `height` in
        PDF points, origin at the bottom-left corner of the page), and a `kind`.
        The server fills `pageWidth`, `pageHeight`, and `pageRotation` from the
        PDF page when you omit them. If you send `pageWidth` and `pageHeight`,
        `rect` is measured on a page of that size and scaled to the real page.
        The box kinds are the following:

        - `INPUT` with `inputType` `SIGNATURE` or `INITIALS` and a `partyId`: a
        mark the party draws at signing, sealed into the PDF at that position.

        - `INPUT` with `inputType` `TEXT`, `DATE`, `CHECKBOX` or `SELECT` and a
        `partyId`: a value the party fills in before signing. Set `required` to
        block signing until it is filled.

        - `STATIC` with `content` (HTML): fixed text stamped at that position.


        Set `key` on an `INPUT` box to fill it in by that key through `PATCH
        /api/v1/documents/{id}/field-values`. A key can contain lowercase
        letters, digits, hyphens, and underscores.


        The following example creates a PDF field with a signature box:


        ```json

        {
          "fields": [
            {
              "type": "PDF",
              "position": 0,
              "fieldMeta": {
                "type": "PDF",
                "value": "f/org_123/abc123def/contract.pdf",
                "placedFields": [
                  {
                    "id": "sig-1",
                    "kind": "INPUT",
                    "inputType": "SIGNATURE",
                    "page": 2,
                    "rect": { "x": 72, "y": 96, "width": 200, "height": 48 },
                    "pageWidth": 595.28,
                    "pageHeight": 841.89,
                    "partyId": "PARTY_ID",
                    "required": true
                  }
                ]
              }
            }
          ]
        }

        ```


        The request fails with an HTTP `400 Bad Request` status code, and writes
        nothing, when a box has a `page` the PDF doesn't have, doesn't fit on
        its page, names a `partyId` that isn't a party on the document, or is a
        `SIGNATURE` or `INITIALS` box without a party with the `SIGNER` role.
        The `issues` array in the response lists every problem with its path,
        such as `fields.0.fieldMeta.placedFields.2.rect`.


        The response lists the created fields in request order, each in the same
        shape as `GET /api/v1/documents/{id}/fields/{fieldId}`. To add, move, or
        remove single boxes later, use `PATCH
        /api/v1/documents/{id}/fields/{fieldId}/placed-fields`.


        **Product tables:** a `PRODUCT_TABLE` field's `price` values are decimal
        amounts in the table's `currency`, such as `1499.5`, not minor units.
        `vat` is a rate in percent, such as `25`.


        **HTML Field Security:** HTML fields accept raw HTML but are
        automatically sanitized server-side to allow only safe formatting tags
        (p, div, span, headings, lists, tables, images) and basic CSS styling.
        Links, script tags, and dangerous attributes are stripped. Images
        support HTTP/HTTPS URLs and data URIs for inline images.
      operationId: createField
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: The document ID.
          example: cm4k2x9p10003abcd1234efgh
        - name: Sajn-Version
          in: header
          required: false
          schema:
            type: string
            enum:
              - 2026-09
              - 2026-10
          description: >-
            API version for this request. Without it, the request uses the
            organization's default version; an organization without a default is
            pinned to the latest version by its first request.
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            maxLength: 255
          description: >-
            Makes retries safe. A retry with the same key and the same request
            replays the stored response for 24 hours (header
            `Idempotent-Replayed: true`); the same key with a different request
            returns 400.
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                fields:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - TEXT
                          - HTML
                          - FORM
                          - PDF
                          - PRODUCT_TABLE
                          - TABLE
                          - SPACER
                          - PAGE_BREAK
                          - DURATION
                      position:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        description: 0-based order of the field among the content blocks
                      fieldMeta:
                        oneOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - TEXT
                              content:
                                type: string
                              locked:
                                type: boolean
                              sectionStyle:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    enum:
                                      - NONE
                                      - MUTED
                                      - TINT
                                      - ACCENT
                                      - DARK
                                  padding:
                                    type: string
                                    enum:
                                      - NONE
                                      - SM
                                      - MD
                                      - LG
                                  bleed:
                                    type: boolean
                                  border:
                                    type: boolean
                              visibilityRule:
                                type: object
                                properties:
                                  customFieldId:
                                    type: string
                                    minLength: 1
                                  equals:
                                    type: string
                                  mode:
                                    type: string
                                    enum:
                                      - SHOW_WHEN
                                      - HIDE_WHEN
                                required:
                                  - customFieldId
                                  - equals
                                  - mode
                              hidden:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - HTML
                              content:
                                type: string
                              locked:
                                type: boolean
                              sectionStyle:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    enum:
                                      - NONE
                                      - MUTED
                                      - TINT
                                      - ACCENT
                                      - DARK
                                  padding:
                                    type: string
                                    enum:
                                      - NONE
                                      - SM
                                      - MD
                                      - LG
                                  bleed:
                                    type: boolean
                                  border:
                                    type: boolean
                              visibilityRule:
                                type: object
                                properties:
                                  customFieldId:
                                    type: string
                                    minLength: 1
                                  equals:
                                    type: string
                                  mode:
                                    type: string
                                    enum:
                                      - SHOW_WHEN
                                      - HIDE_WHEN
                                required:
                                  - customFieldId
                                  - equals
                                  - mode
                              hidden:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - PDF
                              value:
                                type: string
                              numPages:
                                type: number
                              pageIndex:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              instruction:
                                type: string
                              formFields:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - TEXT
                                        - CHECKBOX
                                        - DROPDOWN
                                        - RADIO
                                    page:
                                      type: integer
                                      minimum: 0
                                      maximum: 9007199254740991
                                    rect:
                                      type: object
                                      properties:
                                        x:
                                          type: number
                                        'y':
                                          type: number
                                        width:
                                          type: number
                                        height:
                                          type: number
                                      required:
                                        - x
                                        - 'y'
                                        - width
                                        - height
                                    pageWidth:
                                      type: number
                                      exclusiveMinimum: 0
                                    pageHeight:
                                      type: number
                                      exclusiveMinimum: 0
                                    pageRotation:
                                      anyOf:
                                        - type: number
                                          enum:
                                            - 0
                                        - type: number
                                          enum:
                                            - 90
                                        - type: number
                                          enum:
                                            - 180
                                        - type: number
                                          enum:
                                            - 270
                                    options:
                                      type: array
                                      items:
                                        type: string
                                    required:
                                      type: boolean
                                    readOnly:
                                      type: boolean
                                    multiline:
                                      type: boolean
                                  required:
                                    - name
                                    - type
                                    - page
                                    - rect
                                    - pageWidth
                                    - pageHeight
                              formValues:
                                type: object
                                additionalProperties:
                                  anyOf:
                                    - type: string
                                    - type: boolean
                              placedFields:
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                        page:
                                          type: integer
                                          minimum: 0
                                          maximum: 9007199254740991
                                        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
                                        pageWidth:
                                          description: >-
                                            Width of the page in PDF points, the
                                            unit `rect` is measured in. Omit to use
                                            the width of the PDF page.
                                          type: number
                                          exclusiveMinimum: 0
                                        pageHeight:
                                          description: >-
                                            Height of the page in PDF points. Omit
                                            to use the height of the PDF page.
                                          type: number
                                          exclusiveMinimum: 0
                                        pageRotation:
                                          description: >-
                                            Rotation of the page in degrees. Omit to
                                            use the rotation of the PDF page.
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 90
                                            - type: number
                                              enum:
                                                - 180
                                            - type: number
                                              enum:
                                                - 270
                                        name:
                                          type: string
                                        key:
                                          type: string
                                          pattern: ^[a-z0-9_-]*$
                                        locked:
                                          type: boolean
                                        style:
                                          type: object
                                          properties:
                                            fontSize:
                                              type: number
                                              minimum: 6
                                              maximum: 72
                                            color:
                                              type: string
                                              pattern: ^#[0-9a-fA-F]{6}$
                                            bold:
                                              type: boolean
                                            italic:
                                              type: boolean
                                            align:
                                              type: string
                                              enum:
                                                - LEFT
                                                - CENTER
                                                - RIGHT
                                        kind:
                                          type: string
                                          enum:
                                            - INPUT
                                        inputType:
                                          type: string
                                          enum:
                                            - TEXT
                                            - DATE
                                            - CHECKBOX
                                            - SELECT
                                            - DRAW
                                            - SIGNATURE
                                            - INITIALS
                                        label:
                                          type: string
                                        fillSource:
                                          type: string
                                          enum:
                                            - SIGNER
                                            - FIXED
                                            - NONE
                                            - VARIABLE
                                        partyId:
                                          type: string
                                        variableId:
                                          type: string
                                        required:
                                          type: boolean
                                        options:
                                          type: array
                                          items:
                                            type: string
                                        multiline:
                                          type: boolean
                                      required:
                                        - id
                                        - page
                                        - rect
                                        - kind
                                        - inputType
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                        page:
                                          type: integer
                                          minimum: 0
                                          maximum: 9007199254740991
                                        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
                                        pageWidth:
                                          description: >-
                                            Width of the page in PDF points, the
                                            unit `rect` is measured in. Omit to use
                                            the width of the PDF page.
                                          type: number
                                          exclusiveMinimum: 0
                                        pageHeight:
                                          description: >-
                                            Height of the page in PDF points. Omit
                                            to use the height of the PDF page.
                                          type: number
                                          exclusiveMinimum: 0
                                        pageRotation:
                                          description: >-
                                            Rotation of the page in degrees. Omit to
                                            use the rotation of the PDF page.
                                          anyOf:
                                            - type: number
                                              enum:
                                                - 0
                                            - type: number
                                              enum:
                                                - 90
                                            - type: number
                                              enum:
                                                - 180
                                            - type: number
                                              enum:
                                                - 270
                                        name:
                                          type: string
                                        key:
                                          type: string
                                          pattern: ^[a-z0-9_-]*$
                                        locked:
                                          type: boolean
                                        style:
                                          type: object
                                          properties:
                                            fontSize:
                                              type: number
                                              minimum: 6
                                              maximum: 72
                                            color:
                                              type: string
                                              pattern: ^#[0-9a-fA-F]{6}$
                                            bold:
                                              type: boolean
                                            italic:
                                              type: boolean
                                            align:
                                              type: string
                                              enum:
                                                - LEFT
                                                - CENTER
                                                - RIGHT
                                        kind:
                                          type: string
                                          enum:
                                            - STATIC
                                        content:
                                          type: string
                                        text:
                                          type: string
                                      required:
                                        - id
                                        - page
                                        - rect
                                        - kind
                                  description: A box placed on a page of a PDF field
                              locked:
                                type: boolean
                              visibilityRule:
                                type: object
                                properties:
                                  customFieldId:
                                    type: string
                                    minLength: 1
                                  equals:
                                    type: string
                                  mode:
                                    type: string
                                    enum:
                                      - SHOW_WHEN
                                      - HIDE_WHEN
                                required:
                                  - customFieldId
                                  - equals
                                  - mode
                              hidden:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - FORM
                              columns:
                                type: number
                                minimum: 1
                              fields:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                    key:
                                      type: string
                                      pattern: ^[a-z0-9_-]*$
                                    type:
                                      type: string
                                      enum:
                                        - INPUT
                                        - TEXT
                                        - SELECT
                                        - DATEPICKER
                                        - RADIO
                                        - CHECKBOX
                                        - NUMBER
                                        - ATTACHMENT
                                    row:
                                      type: number
                                      minimum: 0
                                    column:
                                      type: number
                                      minimum: 0
                                    colSpan:
                                      type: integer
                                      exclusiveMinimum: 0
                                      maximum: 9007199254740991
                                    fieldMeta:
                                      oneOf:
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - INPUT
                                            value:
                                              type: string
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - TEXT
                                            value:
                                              type: string
                                            rows:
                                              type: integer
                                              minimum: 2
                                              maximum: 20
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - SELECT
                                            options:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  value:
                                                    type: string
                                                required:
                                                  - value
                                            defaultValue:
                                              type: string
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - DATEPICKER
                                            value:
                                              type: string
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - RADIO
                                            options:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  value:
                                                    type: string
                                                required:
                                                  - value
                                            value:
                                              type: string
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - CHECKBOX
                                            options:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  value:
                                                    type: string
                                                required:
                                                  - value
                                            values:
                                              type: array
                                              items:
                                                type: string
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - NUMBER
                                            value:
                                              type: string
                                          required:
                                            - type
                                        - type: object
                                          properties:
                                            label:
                                              type: string
                                            placeholder:
                                              type: string
                                            description:
                                              type: string
                                            partyId:
                                              type:
                                                - string
                                                - 'null'
                                            required:
                                              type: boolean
                                            type:
                                              type: string
                                              enum:
                                                - ATTACHMENT
                                            appendixLabel:
                                              type: string
                                            allowedTypes:
                                              type: array
                                              items:
                                                type: string
                                                enum:
                                                  - PDF
                                                  - IMAGE
                                            includeInDocument:
                                              type: boolean
                                            value:
                                              type: object
                                              properties:
                                                filename:
                                                  type: string
                                                mimeType:
                                                  type: string
                                                size:
                                                  type: number
                                                  description: Size in bytes
                                              required:
                                                - filename
                                                - mimeType
                                                - size
                                              additionalProperties: {}
                                              description: >-
                                                The file the party uploaded. Set by sajn
                                                when the upload is confirmed; a request
                                                can't set it.
                                          required:
                                            - type
                                  required:
                                    - id
                                    - row
                                    - column
                              locked:
                                type: boolean
                              sectionStyle:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    enum:
                                      - NONE
                                      - MUTED
                                      - TINT
                                      - ACCENT
                                      - DARK
                                  padding:
                                    type: string
                                    enum:
                                      - NONE
                                      - SM
                                      - MD
                                      - LG
                                  bleed:
                                    type: boolean
                                  border:
                                    type: boolean
                              visibilityRule:
                                type: object
                                properties:
                                  customFieldId:
                                    type: string
                                    minLength: 1
                                  equals:
                                    type: string
                                  mode:
                                    type: string
                                    enum:
                                      - SHOW_WHEN
                                      - HIDE_WHEN
                                required:
                                  - customFieldId
                                  - equals
                                  - mode
                              hidden:
                                type: boolean
                            required:
                              - type
                              - columns
                              - fields
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - PRODUCT_TABLE
                              name:
                                type: string
                              enableName:
                                type: boolean
                              columns:
                                type: object
                                additionalProperties:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    originalName:
                                      type: string
                                    enabled:
                                      type: boolean
                                    key:
                                      type: string
                                    settings:
                                      type: object
                                      properties:
                                        decimalPlaces:
                                          type: number
                                        oneTimePayment:
                                          type: boolean
                                        pricePrefix:
                                          type: string
                                        priceSuffix:
                                          type: string
                                        pricesIncludeVat:
                                          description: >-
                                            If `true`, the entered prices include
                                            VAT. If `false`, they exclude it.
                                            Default: `false`.
                                          type: boolean
                                        defaultVatRate:
                                          description: >-
                                            VAT rate in percent, such as `25`, for a
                                            product without its own `vat`. Default:
                                            `25`.
                                          type: number
                                        showVatBreakdown:
                                          description: >-
                                            If `true`, the totals show the VAT
                                            amount. Default: `true`.
                                          type: boolean
                                  required:
                                    - name
                                    - originalName
                                    - enabled
                                    - key
                              summaryLabels:
                                type: object
                                properties:
                                  subtotal:
                                    type: string
                                  vat:
                                    type: string
                                  total:
                                    type: string
                                  payable:
                                    type: string
                                required:
                                  - subtotal
                                  - vat
                                  - total
                              allowSelection:
                                type: boolean
                              selectionPartyId:
                                type: string
                              selectionRequired:
                                type: boolean
                              selectedProductIds:
                                type: array
                                items:
                                  type: string
                              recipientChoice:
                                type: object
                                properties:
                                  selectedIds:
                                    type: array
                                    items:
                                      type: string
                                  quantities:
                                    type: object
                                    additionalProperties:
                                      type: number
                                required:
                                  - selectedIds
                                  - quantities
                              sections:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    pickOne:
                                      type: boolean
                                    showSubtotal:
                                      type: boolean
                                  required:
                                    - id
                                    - name
                              discount:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - PERCENT
                                      - AMOUNT
                                  value:
                                    type: number
                                  label:
                                    type: string
                                required:
                                  - type
                                  - value
                              pricing:
                                type: object
                                properties:
                                  pricesIncludeVat:
                                    description: >-
                                      If `true`, the entered prices include VAT.
                                      If `false`, they exclude it. Default:
                                      `false`.
                                    type: boolean
                                  defaultVatRate:
                                    description: >-
                                      VAT rate in percent, such as `25`, for a
                                      product without its own `vat`. Default:
                                      `25`.
                                    type: number
                                  showVatBreakdown:
                                    description: >-
                                      If `true`, the totals show the VAT amount.
                                      Default: `true`.
                                    type: boolean
                              style:
                                type: object
                                properties:
                                  border:
                                    type: boolean
                                  rounded:
                                    type: boolean
                              currency:
                                description: >-
                                  ISO 4217 currency code, such as `SEK`. Every
                                  price in the table is a decimal amount in this
                                  currency.
                                type: string
                                pattern: ^[A-Z]{3}$
                              language:
                                type: string
                                enum:
                                  - sv
                                  - en
                                  - 'no'
                                  - da
                                  - fi
                                  - de
                                  - is
                                  - es
                                  - fr
                                  - it
                              products:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    description:
                                      type: string
                                    price:
                                      description: >-
                                        Unit price as a decimal amount in the
                                        table's `currency`, such as `1499.5`,
                                        not in minor units. It excludes VAT
                                        unless `pricing.pricesIncludeVat` is
                                        `true`.
                                      type: number
                                    unit:
                                      type: string
                                    quantity:
                                      type: number
                                    vat:
                                      description: >-
                                        VAT rate in percent, such as `25`.
                                        Without it, `pricing.defaultVatRate`
                                        applies.
                                      type: number
                                    optional:
                                      type: boolean
                                    defaultSelected:
                                      type: boolean
                                    quantityEditable:
                                      type: boolean
                                    quantityMin:
                                      type: number
                                    quantityMax:
                                      type: number
                                    discount:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - PERCENT
                                            - AMOUNT
                                        value:
                                          type: number
                                      required:
                                        - type
                                        - value
                                    billing:
                                      type: string
                                      enum:
                                        - ONE_TIME
                                        - MONTHLY
                                        - QUARTERLY
                                        - YEARLY
                                    sectionId:
                                      type: string
                                    sku:
                                      type: string
                                    productId:
                                      type: string
                                    productType:
                                      type: string
                                      enum:
                                        - GOODS
                                        - SERVICE
                                        - ROT
                                        - RUT
                                  required:
                                    - id
                                    - name
                              locked:
                                type: boolean
                              sectionStyle:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    enum:
                                      - NONE
                                      - MUTED
                                      - TINT
                                      - ACCENT
                                      - DARK
                                  padding:
                                    type: string
                                    enum:
                                      - NONE
                                      - SM
                                      - MD
                                      - LG
                                  bleed:
                                    type: boolean
                                  border:
                                    type: boolean
                              visibilityRule:
                                type: object
                                properties:
                                  customFieldId:
                                    type: string
                                    minLength: 1
                                  equals:
                                    type: string
                                  mode:
                                    type: string
                                    enum:
                                      - SHOW_WHEN
                                      - HIDE_WHEN
                                required:
                                  - customFieldId
                                  - equals
                                  - mode
                              hidden:
                                type: boolean
                            required:
                              - type
                              - name
                              - columns
                              - products
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - TABLE
                              columns:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    type:
                                      type: string
                                      enum:
                                        - TEXT
                                        - NUMBER
                                  required:
                                    - id
                                    - name
                                    - type
                              rows:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    cells:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          columnId:
                                            type: string
                                          value:
                                            anyOf:
                                              - type: string
                                              - type: number
                                        required:
                                          - columnId
                                          - value
                                  required:
                                    - id
                                    - cells
                              showHeaders:
                                type: boolean
                              style:
                                type: object
                                properties:
                                  border:
                                    type: boolean
                                  rounded:
                                    type: boolean
                              locked:
                                type: boolean
                              sectionStyle:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    enum:
                                      - NONE
                                      - MUTED
                                      - TINT
                                      - ACCENT
                                      - DARK
                                  padding:
                                    type: string
                                    enum:
                                      - NONE
                                      - SM
                                      - MD
                                      - LG
                                  bleed:
                                    type: boolean
                                  border:
                                    type: boolean
                              visibilityRule:
                                type: object
                                properties:
                                  customFieldId:
                                    type: string
                                    minLength: 1
                                  equals:
                                    type: string
                                  mode:
                                    type: string
                                    enum:
                                      - SHOW_WHEN
                                      - HIDE_WHEN
                                required:
                                  - customFieldId
                                  - equals
                                  - mode
                              hidden:
                                type: boolean
                            required:
                              - type
                              - columns
                              - rows
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - SPACER
                              size:
                                type: string
                                enum:
                                  - S
                                  - M
                                  - L
                                  - XL
                              locked:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - PAGE_BREAK
                              locked:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - DURATION
                              durationType:
                                type: string
                                enum:
                                  - NONE
                                  - SINGLE_PERIOD
                                  - RECURRING
                                  - RECURRING_WITH_INITIAL
                                  - NOT_SET
                              period:
                                type: object
                                properties:
                                  value:
                                    type: integer
                                    exclusiveMinimum: 0
                                    maximum: 9007199254740991
                                  unit:
                                    type: string
                                    enum:
                                      - DAY
                                      - WEEK
                                      - MONTH
                                      - YEAR
                                required:
                                  - value
                                  - unit
                              noticePeriod:
                                type: object
                                properties:
                                  value:
                                    type: integer
                                    exclusiveMinimum: 0
                                    maximum: 9007199254740991
                                  unit:
                                    type: string
                                    enum:
                                      - DAY
                                      - WEEK
                                      - MONTH
                                      - YEAR
                                required:
                                  - value
                                  - unit
                              startDate:
                                type: string
                              endDate:
                                type: string
                              locked:
                                type: boolean
                              sectionStyle:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    enum:
                                      - NONE
                                      - MUTED
                                      - TINT
                                      - ACCENT
                                      - DARK
                                  padding:
                                    type: string
                                    enum:
                                      - NONE
                                      - SM
                                      - MD
                                      - LG
                                  bleed:
                                    type: boolean
                                  border:
                                    type: boolean
                            required:
                              - type
                    required:
                      - type
                      - position
                  description: The fields to create, in the order the response lists them
              required:
                - fields
            example:
              fields:
                - type: TEXT
                  position: 0
                  fieldMeta:
                    type: TEXT
                    content: >-
                      <p>Anställningen gäller tills vidare från och med den 1
                      november 2026, med sex månaders provanställning.</p>
                    locked: false
                    sectionStyle:
                      background: NONE
                      padding: NONE
                      bleed: false
                      border: false
                    hidden: false
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Unique field identifier
                        documentId:
                          description: Document this field belongs to
                          type:
                            - string
                            - 'null'
                        templateId:
                          description: Template this field belongs to
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          enum:
                            - TEXT
                            - HTML
                            - FORM
                            - PDF
                            - PRODUCT_TABLE
                            - TABLE
                            - SPACER
                            - PAGE_BREAK
                            - DURATION
                          description: Field type
                        position:
                          type: number
                          description: >-
                            0-based order of the field among the document's
                            content blocks
                        fieldMeta:
                          anyOf:
                            - oneOf:
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - TEXT
                                    content:
                                      type: string
                                    locked:
                                      type: boolean
                                    sectionStyle:
                                      type: object
                                      properties:
                                        background:
                                          type: string
                                          enum:
                                            - NONE
                                            - MUTED
                                            - TINT
                                            - ACCENT
                                            - DARK
                                        padding:
                                          type: string
                                          enum:
                                            - NONE
                                            - SM
                                            - MD
                                            - LG
                                        bleed:
                                          type: boolean
                                        border:
                                          type: boolean
                                      additionalProperties: false
                                    visibilityRule:
                                      type: object
                                      properties:
                                        customFieldId:
                                          type: string
                                          minLength: 1
                                        equals:
                                          type: string
                                        mode:
                                          type: string
                                          enum:
                                            - SHOW_WHEN
                                            - HIDE_WHEN
                                      required:
                                        - customFieldId
                                        - equals
                                        - mode
                                      additionalProperties: false
                                    hidden:
                                      type: boolean
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - HTML
                                    content:
                                      type: string
                                    locked:
                                      type: boolean
                                    sectionStyle:
                                      type: object
                                      properties:
                                        background:
                                          type: string
                                          enum:
                                            - NONE
                                            - MUTED
                                            - TINT
                                            - ACCENT
                                            - DARK
                                        padding:
                                          type: string
                                          enum:
                                            - NONE
                                            - SM
                                            - MD
                                            - LG
                                        bleed:
                                          type: boolean
                                        border:
                                          type: boolean
                                      additionalProperties: false
                                    visibilityRule:
                                      type: object
                                      properties:
                                        customFieldId:
                                          type: string
                                          minLength: 1
                                        equals:
                                          type: string
                                        mode:
                                          type: string
                                          enum:
                                            - SHOW_WHEN
                                            - HIDE_WHEN
                                      required:
                                        - customFieldId
                                        - equals
                                        - mode
                                      additionalProperties: false
                                    hidden:
                                      type: boolean
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - PDF
                                    value:
                                      type: string
                                    numPages:
                                      type: number
                                    pageIndex:
                                      type: integer
                                      minimum: 0
                                      maximum: 9007199254740991
                                    instruction:
                                      type: string
                                    formFields:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          type:
                                            type: string
                                            enum:
                                              - TEXT
                                              - CHECKBOX
                                              - DROPDOWN
                                              - RADIO
                                          page:
                                            type: integer
                                            minimum: 0
                                            maximum: 9007199254740991
                                          rect:
                                            type: object
                                            properties:
                                              x:
                                                type: number
                                              'y':
                                                type: number
                                              width:
                                                type: number
                                              height:
                                                type: number
                                            required:
                                              - x
                                              - 'y'
                                              - width
                                              - height
                                            additionalProperties: false
                                          pageWidth:
                                            type: number
                                            exclusiveMinimum: 0
                                          pageHeight:
                                            type: number
                                            exclusiveMinimum: 0
                                          pageRotation:
                                            anyOf:
                                              - type: number
                                                enum:
                                                  - 0
                                              - type: number
                                                enum:
                                                  - 90
                                              - type: number
                                                enum:
                                                  - 180
                                              - type: number
                                                enum:
                                                  - 270
                                          options:
                                            type: array
                                            items:
                                              type: string
                                          required:
                                            type: boolean
                                          readOnly:
                                            type: boolean
                                          multiline:
                                            type: boolean
                                        required:
                                          - name
                                          - type
                                          - page
                                          - rect
                                          - pageWidth
                                          - pageHeight
                                        additionalProperties: false
                                    formValues:
                                      type: object
                                      additionalProperties:
                                        anyOf:
                                          - type: string
                                          - type: boolean
                                    placedFields:
                                      type: array
                                      items:
                                        oneOf:
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                                minLength: 1
                                              page:
                                                type: integer
                                                minimum: 0
                                                maximum: 9007199254740991
                                              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
                                              pageWidth:
                                                type: number
                                                exclusiveMinimum: 0
                                              pageHeight:
                                                type: number
                                                exclusiveMinimum: 0
                                              pageRotation:
                                                anyOf:
                                                  - type: number
                                                    enum:
                                                      - 0
                                                  - type: number
                                                    enum:
                                                      - 90
                                                  - type: number
                                                    enum:
                                                      - 180
                                                  - type: number
                                                    enum:
                                                      - 270
                                              name:
                                                type: string
                                              key:
                                                type: string
                                                pattern: ^[a-z0-9_-]*$
                                              locked:
                                                type: boolean
                                              style:
                                                type: object
                                                properties:
                                                  fontSize:
                                                    type: number
                                                    minimum: 6
                                                    maximum: 72
                                                  color:
                                                    type: string
                                                    pattern: ^#[0-9a-fA-F]{6}$
                                                  bold:
                                                    type: boolean
                                                  italic:
                                                    type: boolean
                                                  align:
                                                    type: string
                                                    enum:
                                                      - LEFT
                                                      - CENTER
                                                      - RIGHT
                                                additionalProperties: false
                                              kind:
                                                type: string
                                                enum:
                                                  - INPUT
                                              inputType:
                                                type: string
                                                enum:
                                                  - TEXT
                                                  - DATE
                                                  - CHECKBOX
                                                  - SELECT
                                                  - DRAW
                                                  - SIGNATURE
                                                  - INITIALS
                                              label:
                                                type: string
                                              fillSource:
                                                type: string
                                                enum:
                                                  - SIGNER
                                                  - FIXED
                                                  - NONE
                                                  - VARIABLE
                                              partyId:
                                                type: string
                                              variableId:
                                                type: string
                                              required:
                                                type: boolean
                                              options:
                                                type: array
                                                items:
                                                  type: string
                                              multiline:
                                                type: boolean
                                            required:
                                              - id
                                              - page
                                              - rect
                                              - pageWidth
                                              - pageHeight
                                              - kind
                                              - inputType
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                                minLength: 1
                                              page:
                                                type: integer
                                                minimum: 0
                                                maximum: 9007199254740991
                                              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
                                              pageWidth:
                                                type: number
                                                exclusiveMinimum: 0
                                              pageHeight:
                                                type: number
                                                exclusiveMinimum: 0
                                              pageRotation:
                                                anyOf:
                                                  - type: number
                                                    enum:
                                                      - 0
                                                  - type: number
                                                    enum:
                                                      - 90
                                                  - type: number
                                                    enum:
                                                      - 180
                                                  - type: number
                                                    enum:
                                                      - 270
                                              name:
                                                type: string
                                              key:
                                                type: string
                                                pattern: ^[a-z0-9_-]*$
                                              locked:
                                                type: boolean
                                              style:
                                                type: object
                                                properties:
                                                  fontSize:
                                                    type: number
                                                    minimum: 6
                                                    maximum: 72
                                                  color:
                                                    type: string
                                                    pattern: ^#[0-9a-fA-F]{6}$
                                                  bold:
                                                    type: boolean
                                                  italic:
                                                    type: boolean
                                                  align:
                                                    type: string
                                                    enum:
                                                      - LEFT
                                                      - CENTER
                                                      - RIGHT
                                                additionalProperties: false
                                              kind:
                                                type: string
                                                enum:
                                                  - STATIC
                                              content:
                                                type: string
                                              text:
                                                type: string
                                            required:
                                              - id
                                              - page
                                              - rect
                                              - pageWidth
                                              - pageHeight
                                              - kind
                                            additionalProperties: false
                                    locked:
                                      type: boolean
                                    visibilityRule:
                                      type: object
                                      properties:
                                        customFieldId:
                                          type: string
                                          minLength: 1
                                        equals:
                                          type: string
                                        mode:
                                          type: string
                                          enum:
                                            - SHOW_WHEN
                                            - HIDE_WHEN
                                      required:
                                        - customFieldId
                                        - equals
                                        - mode
                                      additionalProperties: false
                                    hidden:
                                      type: boolean
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - FORM
                                    columns:
                                      type: number
                                      minimum: 1
                                    fields:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                          key:
                                            type: string
                                            pattern: ^[a-z0-9_-]*$
                                          type:
                                            type: string
                                            enum:
                                              - INPUT
                                              - TEXT
                                              - SELECT
                                              - DATEPICKER
                                              - RADIO
                                              - CHECKBOX
                                              - NUMBER
                                              - ATTACHMENT
                                          row:
                                            type: number
                                            minimum: 0
                                          column:
                                            type: number
                                            minimum: 0
                                          colSpan:
                                            type: integer
                                            exclusiveMinimum: 0
                                            maximum: 9007199254740991
                                          fieldMeta:
                                            oneOf:
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - INPUT
                                                  value:
                                                    type: string
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - TEXT
                                                  value:
                                                    type: string
                                                  rows:
                                                    type: integer
                                                    minimum: 2
                                                    maximum: 20
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - SELECT
                                                  options:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        value:
                                                          type: string
                                                      required:
                                                        - value
                                                      additionalProperties: false
                                                  defaultValue:
                                                    type: string
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - DATEPICKER
                                                  value:
                                                    type: string
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - RADIO
                                                  options:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        value:
                                                          type: string
                                                      required:
                                                        - value
                                                      additionalProperties: false
                                                  value:
                                                    type: string
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - CHECKBOX
                                                  options:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        value:
                                                          type: string
                                                      required:
                                                        - value
                                                      additionalProperties: false
                                                  values:
                                                    type: array
                                                    items:
                                                      type: string
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - NUMBER
                                                  value:
                                                    type: string
                                                required:
                                                  - type
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  label:
                                                    type: string
                                                  placeholder:
                                                    type: string
                                                  description:
                                                    type: string
                                                  partyId:
                                                    type:
                                                      - string
                                                      - 'null'
                                                  required:
                                                    type: boolean
                                                  type:
                                                    type: string
                                                    enum:
                                                      - ATTACHMENT
                                                  appendixLabel:
                                                    type: string
                                                  allowedTypes:
                                                    type: array
                                                    items:
                                                      type: string
                                                      enum:
                                                        - PDF
                                                        - IMAGE
                                                  includeInDocument:
                                                    type: boolean
                                                  value:
                                                    type: object
                                                    properties:
                                                      filename:
                                                        type: string
                                                      mimeType:
                                                        type: string
                                                      size:
                                                        type: number
                                                        description: Size in bytes
                                                    required:
                                                      - filename
                                                      - mimeType
                                                      - size
                                                    additionalProperties: {}
                                                    description: >-
                                                      The file the party uploaded. Set by sajn
                                                      when the upload is confirmed; a request
                                                      can't set it.
                                                required:
                                                  - type
                                                additionalProperties: false
                                        required:
                                          - id
                                          - row
                                          - column
                                        additionalProperties: false
                                    locked:
                                      type: boolean
                                    sectionStyle:
                                      type: object
                                      properties:
                                        background:
                                          type: string
                                          enum:
                                            - NONE
                                            - MUTED
                                            - TINT
                                            - ACCENT
                                            - DARK
                                        padding:
                                          type: string
                                          enum:
                                            - NONE
                                            - SM
                                            - MD
                                            - LG
                                        bleed:
                                          type: boolean
                                        border:
                                          type: boolean
                                      additionalProperties: false
                                    visibilityRule:
                                      type: object
                                      properties:
                                        customFieldId:
                                          type: string
                                          minLength: 1
                                        equals:
                                          type: string
                                        mode:
                                          type: string
                                          enum:
                                            - SHOW_WHEN
                                            - HIDE_WHEN
                                      required:
                                        - customFieldId
                                        - equals
                                        - mode
                                      additionalProperties: false
                                    hidden:
                                      type: boolean
                                  required:
                                    - type
                                    - columns
                                    - fields
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - PRODUCT_TABLE
                                    name:
                                      type: string
                                    enableName:
                                      type: boolean
                                    columns:
                                      type: object
                                      additionalProperties:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          originalName:
                                            type: string
                                          enabled:
                                            type: boolean
                                          key:
                                            type: string
                                          settings:
                                            type: object
                                            properties:
                                              decimalPlaces:
                                                type: number
                                              oneTimePayment:
                                                type: boolean
                                              pricePrefix:
                                                type: string
                                              priceSuffix:
                                                type: string
                                              pricesIncludeVat:
                                                description: >-
                                                  If `true`, the entered prices include
                                                  VAT. If `false`, they exclude it.
                                                  Default: `false`.
                                                type: boolean
                                              defaultVatRate:
                                                description: >-
                                                  VAT rate in percent, such as `25`, for a
                                                  product without its own `vat`. Default:
                                                  `25`.
                                                type: number
                                              showVatBreakdown:
                                                description: >-
                                                  If `true`, the totals show the VAT
                                                  amount. Default: `true`.
                                                type: boolean
                                            additionalProperties: false
                                        required:
                                          - name
                                          - originalName
                                          - enabled
                                          - key
                                          - settings
                                        additionalProperties: false
                                    summaryLabels:
                                      type: object
                                      properties:
                                        subtotal:
                                          type: string
                                        vat:
                                          type: string
                                        total:
                                          type: string
                                        payable:
                                          type: string
                                      required:
                                        - subtotal
                                        - vat
                                        - total
                                      additionalProperties: false
                                    allowSelection:
                                      type: boolean
                                    selectionPartyId:
                                      type: string
                                    selectionRequired:
                                      type: boolean
                                    selectedProductIds:
                                      type: array
                                      items:
                                        type: string
                                    recipientChoice:
                                      type: object
                                      properties:
                                        selectedIds:
                                          type: array
                                          items:
                                            type: string
                                        quantities:
                                          type: object
                                          additionalProperties:
                                            type: number
                                      required:
                                        - selectedIds
                                        - quantities
                                      additionalProperties: false
                                    sections:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                          pickOne:
                                            type: boolean
                                          showSubtotal:
                                            type: boolean
                                        required:
                                          - id
                                          - name
                                        additionalProperties: false
                                    discount:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - PERCENT
                                            - AMOUNT
                                        value:
                                          type: number
                                        label:
                                          type: string
                                      required:
                                        - type
                                        - value
                                      additionalProperties: false
                                    pricing:
                                      type: object
                                      properties:
                                        pricesIncludeVat:
                                          description: >-
                                            If `true`, the entered prices include
                                            VAT. If `false`, they exclude it.
                                            Default: `false`.
                                          type: boolean
                                        defaultVatRate:
                                          description: >-
                                            VAT rate in percent, such as `25`, for a
                                            product without its own `vat`. Default:
                                            `25`.
                                          type: number
                                        showVatBreakdown:
                                          description: >-
                                            If `true`, the totals show the VAT
                                            amount. Default: `true`.
                                          type: boolean
                                      additionalProperties: false
                                    style:
                                      type: object
                                      properties:
                                        border:
                                          type: boolean
                                        rounded:
                                          type: boolean
                                      additionalProperties: false
                                    currency:
                                      description: >-
                                        ISO 4217 currency code, such as `SEK`.
                                        Every price in the table is a decimal
                                        amount in this currency.
                                      type: string
                                      pattern: ^[A-Z]{3}$
                                    language:
                                      type: string
                                      enum:
                                        - sv
                                        - en
                                        - 'no'
                                        - da
                                        - fi
                                        - de
                                        - is
                                        - es
                                        - fr
                                        - it
                                    products:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                          description:
                                            type: string
                                          price:
                                            description: >-
                                              Unit price as a decimal amount in the
                                              table's `currency`, such as `1499.5`,
                                              not in minor units. It excludes VAT
                                              unless `pricing.pricesIncludeVat` is
                                              `true`.
                                            type: number
                                          unit:
                                            type: string
                                          quantity:
                                            type: number
                                          vat:
                                            description: >-
                                              VAT rate in percent, such as `25`.
                                              Without it, `pricing.defaultVatRate`
                                              applies.
                                            type: number
                                          optional:
                                            type: boolean
                                          defaultSelected:
                                            type: boolean
                                          quantityEditable:
                                            type: boolean
                                          quantityMin:
                                            type: number
                                          quantityMax:
                                            type: number
                                          discount:
                                            type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - PERCENT
                                                  - AMOUNT
                                              value:
                                                type: number
                                            required:
                                              - type
                                              - value
                                            additionalProperties: false
                                          billing:
                                            type: string
                                            enum:
                                              - ONE_TIME
                                              - MONTHLY
                                              - QUARTERLY
                                              - YEARLY
                                          sectionId:
                                            type: string
                                          sku:
                                            type: string
                                          productId:
                                            type: string
                                          productType:
                                            type: string
                                            enum:
                                              - GOODS
                                              - SERVICE
                                              - ROT
                                              - RUT
                                        required:
                                          - id
                                          - name
                                        additionalProperties: false
                                    locked:
                                      type: boolean
                                    sectionStyle:
                                      type: object
                                      properties:
                                        background:
                                          type: string
                                          enum:
                                            - NONE
                                            - MUTED
                                            - TINT
                                            - ACCENT
                                            - DARK
                                        padding:
                                          type: string
                                          enum:
                                            - NONE
                                            - SM
                                            - MD
                                            - LG
                                        bleed:
                                          type: boolean
                                        border:
                                          type: boolean
                                      additionalProperties: false
                                    visibilityRule:
                                      type: object
                                      properties:
                                        customFieldId:
                                          type: string
                                          minLength: 1
                                        equals:
                                          type: string
                                        mode:
                                          type: string
                                          enum:
                                            - SHOW_WHEN
                                            - HIDE_WHEN
                                      required:
                                        - customFieldId
                                        - equals
                                        - mode
                                      additionalProperties: false
                                    hidden:
                                      type: boolean
                                  required:
                                    - type
                                    - name
                                    - columns
                                    - products
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - TABLE
                                    columns:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                          type:
                                            type: string
                                            enum:
                                              - TEXT
                                              - NUMBER
                                        required:
                                          - id
                                          - name
                                          - type
                                        additionalProperties: false
                                    rows:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          id:
                                            type: string
                                          cells:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                columnId:
                                                  type: string
                                                value:
                                                  anyOf:
                                                    - type: string
                                                    - type: number
                                              required:
                                                - columnId
                                                - value
                                              additionalProperties: false
                                        required:
                                          - id
                                          - cells
                                        additionalProperties: false
                                    showHeaders:
                                      type: boolean
                                    style:
                                      type: object
                                      properties:
                                        border:
                                          type: boolean
                                        rounded:
                                          type: boolean
                                      additionalProperties: false
                                    locked:
                                      type: boolean
                                    sectionStyle:
                                      type: object
                                      properties:
                                        background:
                                          type: string
                                          enum:
                                            - NONE
                                            - MUTED
                                            - TINT
                                            - ACCENT
                                            - DARK
                                        padding:
                                          type: string
                                          enum:
                                            - NONE
                                            - SM
                                            - MD
                                            - LG
                                        bleed:
                                          type: boolean
                                        border:
                                          type: boolean
                                      additionalProperties: false
                                    visibilityRule:
                                      type: object
                                      properties:
                                        customFieldId:
                                          type: string
                                          minLength: 1
                                        equals:
                                          type: string
                                        mode:
                                          type: string
                                          enum:
                                            - SHOW_WHEN
                                            - HIDE_WHEN
                                      required:
                                        - customFieldId
                                        - equals
                                        - mode
                                      additionalProperties: false
                                    hidden:
                                      type: boolean
                                  required:
                                    - type
                                    - columns
                                    - rows
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - SPACER
                                    size:
                                      type: string
                                      enum:
                                        - S
                                        - M
                                        - L
                                        - XL
                                    locked:
                                      type: boolean
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - PAGE_BREAK
                                    locked:
                                      type: boolean
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - DURATION
                                    durationType:
                                      type: string
                                      enum:
                                        - NONE
                                        - SINGLE_PERIOD
                                        - RECURRING
                                        - RECURRING_WITH_INITIAL
                                        - NOT_SET
                                    period:
                                      type: object
                                      properties:
                                        value:
                                          type: integer
                                          exclusiveMinimum: 0
                                          maximum: 9007199254740991
                                        unit:
                                          type: string
                                          enum:
                                            - DAY
                                            - WEEK
                                            - MONTH
                                            - YEAR
                                      required:
                                        - value
                                        - unit
                                      additionalProperties: false
                                    noticePeriod:
                                      type: object
                                      properties:
                                        value:
                                          type: integer
                                          exclusiveMinimum: 0
                                          maximum: 9007199254740991
                                        unit:
                                          type: string
                                          enum:
                                            - DAY
                                            - WEEK
                                            - MONTH
                                            - YEAR
                                      required:
                                        - value
                                        - unit
                                      additionalProperties: false
                                    startDate:
                                      type: string
                                    endDate:
                                      type: string
                                    locked:
                                      type: boolean
                                    sectionStyle:
                                      type: object
                                      properties:
                                        background:
                                          type: string
                                          enum:
                                            - NONE
                                            - MUTED
                                            - TINT
                                            - ACCENT
                                            - DARK
                                        padding:
                                          type: string
                                          enum:
                                            - NONE
                                            - SM
                                            - MD
                                            - LG
                                        bleed:
                                          type: boolean
                                        border:
                                          type: boolean
                                      additionalProperties: false
                                  required:
                                    - type
                                  additionalProperties: false
                            - type: 'null'
                          description: >-
                            Type-specific content. For PDF fields this includes
                            `placedFields` (boxes placed on the PDF pages) and
                            `formFields` (form fields extracted from the PDF).
                        createdAt:
                          description: Date and time when the field was created
                          type:
                            - string
                            - 'null'
                          format: date-time
                        updatedAt:
                          description: Date and time when the field was last updated
                          type:
                            - string
                            - 'null'
                          format: date-time
                      required:
                        - id
                        - documentId
                        - templateId
                        - type
                        - position
                        - fieldMeta
                        - createdAt
                        - updatedAt
                      additionalProperties: false
                      example:
                        id: cm4k2x9p10009abcd1234efgh
                        documentId: cm4k2x9p10003abcd1234efgh
                        templateId: null
                        type: TEXT
                        position: 0
                        fieldMeta:
                          type: TEXT
                          content: >-
                            <p>Anställningen gäller tills vidare från och med
                            den 1 november 2026, med sex månaders
                            provanställning.</p>
                        createdAt: '2026-09-28T09:12:00.000Z'
                        updatedAt: '2026-09-28T09:12:00.000Z'
                    description: The created fields, in request order
                required:
                  - data
                additionalProperties: false
              example:
                data:
                  - id: cm4k2x9p10009abcd1234efgh
                    documentId: cm4k2x9p10003abcd1234efgh
                    templateId: null
                    type: TEXT
                    position: 0
                    fieldMeta:
                      type: TEXT
                      content: >-
                        <p>Anställningen gäller tills vidare från och med den 1
                        november 2026, med sex månaders provanställning.</p>
                    createdAt: '2026-09-28T09:12:00.000Z'
                    updatedAt: '2026-09-28T09:12:00.000Z'
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '400':
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: VALIDATION_FAILED
                message: 'Invalid input: expected array, received undefined'
                userMessage: Förfrågan innehåller ogiltiga värden.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
                issues:
                  - path: fields
                    code: INVALID_TYPE
                    message: 'Invalid input: expected array, received undefined'
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '401':
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: UNAUTHORIZED
                message: Invalid API token
                userMessage: Ogiltig API-nyckel
                requestId: req_V1StGXR8Z5jdHi6BmyT2
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '403':
          description: >-
            `PERMISSION_DENIED`, `INSUFFICIENT_SCOPE`, `PLAN_REQUIRED`,
            `ACCOUNT_INACTIVE`, `ACCOUNT_SETUP_REQUIRED` or `LIMIT_EXCEEDED`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: INSUFFICIENT_SCOPE
                message: 'Insufficient OAuth scope: requires documents:write'
                userMessage: Applikationen saknar behörighet (scope) för denna åtgärd.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
                requiredScopes:
                  - documents:write
                grantedScopes:
                  - profile:read
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '404':
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: NOT_FOUND
                message: Field not found
                userMessage: Resursen hittades inte.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
                resource: field
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '409':
          description: '`INVALID_STATE`, `ALREADY_EXISTS` or `IDEMPOTENCY_KEY_IN_USE`.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: INVALID_STATE
                message: >-
                  The resource's current state doesn't allow the operation, such
                  as editing a document that was already sent or downloading a
                  file that isn't produced yet.
                userMessage: Åtgärden är inte möjlig i resursens nuvarande status.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before you retry.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '429':
          description: '`RATE_LIMITED` or `DAILY_QUOTA_EXCEEDED`.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: RATE_LIMITED
                message: API rate limit exceeded
                userMessage: För många förfrågningar. Försök igen om en stund.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before you retry.
              schema:
                type: integer
            Idempotent-Replayed:
              description: >-
                `true` when the response is a stored response replayed for a
                repeated `Idempotency-Key`.
              schema:
                type: string
        '500':
          description: '`INTERNAL_ERROR`.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: INTERNAL_ERROR
                message: Internal server error
                userMessage: Något gick fel.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
        '503':
          description: >-
            `UPSTREAM_UNAVAILABLE`: a service the operation depends on failed.
            Retry with exponential backoff.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - VALIDATION_FAILED
                      - INVALID_JSON
                      - EXPIRED
                      - IDEMPOTENCY_KEY_REUSED
                      - INVALID_API_VERSION
                      - API_VERSION_SUNSET
                      - UNAUTHORIZED
                      - PERMISSION_DENIED
                      - INSUFFICIENT_SCOPE
                      - PLAN_REQUIRED
                      - ACCOUNT_INACTIVE
                      - ACCOUNT_SETUP_REQUIRED
                      - LIMIT_EXCEEDED
                      - APPROVAL_REQUIRED
                      - NOT_FOUND
                      - ROUTE_NOT_FOUND
                      - INVALID_STATE
                      - ALREADY_EXISTS
                      - IDEMPOTENCY_KEY_IN_USE
                      - RATE_LIMITED
                      - DAILY_QUOTA_EXCEEDED
                      - INTERNAL_ERROR
                      - UPSTREAM_UNAVAILABLE
                    description: >-
                      Machine-readable error code from a closed list. Branch on
                      it, never on `message`.
                  message:
                    type: string
                    description: >-
                      What went wrong, in English, for developers. Its wording
                      can change; don't parse it.
                  userMessage:
                    type: string
                    description: >-
                      Text that is safe to show to an end user, usually in
                      Swedish
                  requestId:
                    type: string
                    description: >-
                      Identifier of the request, the same value as the
                      `Sajn-Request-Id` header. Quote it when you contact
                      support.
                  resource:
                    description: >-
                      On a 404 `NOT_FOUND`, the type of the missing resource,
                      such as `document` or `party`; `null` when the API can't
                      tell
                    type:
                      - string
                      - 'null'
                  issues:
                    description: Every validation issue, on a 400 `VALIDATION_FAILED`
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: >-
                            Dotted path to the invalid value, such as
                            `parties.0.email`; empty when no single input caused
                            the issue
                        code:
                          type: string
                          enum:
                            - INVALID_TYPE
                            - INVALID_FORMAT
                            - INVALID_VALUE
                            - TOO_SMALL
                            - TOO_BIG
                            - UNRECOGNIZED_KEY
                        message:
                          type: string
                          description: What is wrong with the value, in English
                      required:
                        - path
                        - code
                        - message
                      additionalProperties: false
                  requiredScopes:
                    description: >-
                      OAuth scopes the endpoint requires, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                  grantedScopes:
                    description: >-
                      OAuth scopes the token was granted, on a 403
                      `INSUFFICIENT_SCOPE`
                    type: array
                    items:
                      type: string
                required:
                  - code
                  - message
                  - userMessage
                  - requestId
                additionalProperties: {}
                description: Error response
              example:
                code: UPSTREAM_UNAVAILABLE
                message: >-
                  A service the operation depends on, such as an eID provider or
                  a connected integration, failed or is unavailable. Retry with
                  exponential backoff.
                userMessage: En extern tjänst svarar inte just nu. Försök igen om en stund.
                requestId: req_V1StGXR8Z5jdHi6BmyT2
          headers:
            Sajn-Version:
              description: API version that served the request.
              schema:
                type: string
            Deprecation:
              description: >-
                Present only when the version is deprecated: when it was
                deprecated, as `@<unix seconds>`.
              schema:
                type: string
            Sunset:
              description: >-
                Present only when the version is deprecated: the HTTP date from
                which requests on this version return 400 `API_VERSION_SUNSET`.
              schema:
                type: string
            Sajn-Request-Id:
              description: >-
                Identifier of the request. Error bodies repeat it as
                `requestId`; quote it when you contact support.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Requests allowed per minute.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute window resets, in Unix seconds.
              schema:
                type: integer
            X-RateLimit-Daily-Limit:
              description: >-
                Requests allowed per day. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Remaining:
              description: >-
                Requests left today. Absent for first-party connectors and
                negotiated limits.
              schema:
                type: integer
            X-RateLimit-Daily-Reset:
              description: >-
                When the daily quota resets, in Unix seconds. Absent for
                first-party connectors and negotiated limits.
              schema:
                type: integer
      security:
        - bearerAuth: []
        - oauth2:
            - documents:write
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Personal API key, e.g. `Authorization: Bearer sajn_sk_...`. Not
        scope-limited — acts as the issuing user.
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.0 access token for a connected application. Limited to the
        scopes granted at consent.
      flows:
        authorizationCode:
          authorizationUrl: https://app.sajn.se/oauth/authorize
          tokenUrl: https://app.sajn.se/api/oauth/token
          refreshUrl: https://app.sajn.se/api/oauth/token
          scopes:
            profile:read: >-
              Read the user's profile, including name, phone number and email
              address.
            documents:read: Read documents.
            documents:write: Create documents and edit the documents the user created.
            documents:delete: >-
              Delete documents, files, folders, custom fields and comment
              threads.
            forms:read: Read forms and their settings.
            forms:write: Create, edit and publish forms.
            forms:delete: Permanently delete forms and their submissions.
            forms:submissions:read: Read form submissions and the respondents' contact details.
            templates:read: Read templates.
            templates:write: Create and edit templates.
            contacts:read: Read contacts.
            contacts:write: Create and edit contacts.
            contacts:delete: Delete contacts.
            organization:read: Read information about the organization.
            audit:read: Read document activity and event logs.
            signatures:read: >-
              Read the identity the eID verified at signing, including the
              national identity number.
            sajnid:read: Read sajn ID verifications.
            sajnid:write: Create sajn ID verifications.
            login:read: Read the result of sajn Login sessions.
            login:write: Start sajn Login sessions.
            webhooks:read: Read webhooks and their deliveries.
            webhooks:write: Create, edit and delete webhooks.
            actions:read: Read suggested actions and what each one does.
            actions:write: >-
              Approve, dismiss and snooze suggested actions. An approval can
              send reminders to counterparties, terminate agreements and create
              follow-ups.
            members:read: Read the workspace's members.
            members:write: Invite and manage workspace members.
            roles:read: Read the workspace's roles and permissions.
            roles:write: Create, edit and delete workspace roles.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.