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

# contract_debit_diffs

> Monthly deviations between the rental debit target and actual account movements (open items), split into net, tax and gross.



## OpenAPI

````yaml https://api.trassets.ai/openapi.json get /contracts/contract_debit_diffs
openapi: 3.1.0
info:
  title: Trassets Data API
  description: >

    The **Trassets Data API** exposes customer real-estate and market data as a
    REST API —

    objects, units, contracts, meters and bookings, machine-readable and stably
    versioned under `/v1/`.


    ## Quickstart


    ```bash

    export TRASSETS_API_KEY="sk_live_…"

    curl "https://api.trassets.ai/v1/realestates/objects?limit=1" \
      -H "X-API-Key: $TRASSETS_API_KEY"
    ```


    ## Authentication


    Send your API key on every request as the `X-API-Key` header.

    The key determines the customer scope and access tiers.

    Trassets stores only an HMAC-SHA-256 hash — the plaintext key is never shown
    again after creation.


    ## Endpoint Types


    ### Category Endpoints — `/{category}/{api_table}`


    Normalized master data and business queries. Use these for day-to-day
    integrations.


    - **Pagination:** Offset-based (`limit` / `offset` query parameters)

    - **Data character:** Normalized, business-ready data

    - **Use case:** Business queries, dashboards, incremental data fetches


    ### Raw Endpoints — `/raw/{table_name}`


    Full table access for bulk sync and export.


    - **Pagination:** Cursor-based (`cursor` query parameter from `next_cursor`
    in response)

    - **Data character:** Raw source data, unfiltered

    - **Use case:** Bulk sync, full exports, data warehousing


    ## Pagination


    - **Category endpoints**: `X-Total-Count`, `X-Has-More`, `X-Next-Offset`
    response headers.

    - **Raw endpoints**: `next_cursor` in response body. Stable under concurrent
    writes.


    ## Error format


    Errors follow [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807)
    (`application/problem+json`):

    `type`, `title`, `status`, `detail`, `instance`.


    | Status | Meaning |

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

    | 400 | Missing required filter |

    | 401 | Invalid API key |

    | 403 | Missing access tier |

    | 404 | Unknown endpoint |

    | 429 | Rate limit (500 req/h per API key; see `Retry-After` header) |

    | 500 | Internal error |


    ## Versioning Policy


    This API will adopt URL versioning (`/v1/`) in an upcoming release. Breaking
    changes will then be

    introduced under a new version prefix. Until versioning is in place, the API
    may receive breaking changes.


    ## Field Glossary


    The following fields appear across multiple endpoints:


    | Field | Description |

    |---|---|

    | `entrance` | Street name and house number, e.g. Musterstrasse 12 |

    | `address` | Comma-separated postal code and city, e.g. 10115, Berlin |

    | `name` | Full name as single field. No separate first/last name available.
    |

    | `floor_area_id` | References floor_area_id in the property_structure table
    |


    ## Request an API key


    API keys are issued via the [Trassets
    Portal](https://portal.api.trassets.ai).
  version: 1.0.0
servers: []
security: []
paths:
  /contracts/contract_debit_diffs:
    get:
      tags:
        - Contracts
      summary: contract_debit_diffs
      description: >-
        Monthly deviations between the rental debit target and actual account
        movements (open items), split into net, tax and gross.
      operationId: >-
        contracts_contract_debit_diffs_handler_contracts_contract_debit_diffs_get
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 1000
            minimum: 1
            maximum: 100000
          description: >-
            Maximum number of rows to return (max 100,000). Use offset for
            subsequent pages.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
            minimum: 0
            maximum: 500000
          description: >-
            Number of rows to skip (max 500,000). Use with limit for pagination.
            Results are returned in a stable order (configured sort key per
            table, fallback to physical row order) — pages are gapless and
            duplicate-free as long as the dataset does not change between
            requests. The response headers X-Total-Count, X-Has-More and
            X-Next-Offset contain pagination metadata. For large datasets use
            filters or /raw/{table_name} for full-table exports.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque pagination cursor from the X-Next-Cursor response header of
            the previous page. Cannot be combined with offset > 0. When
            X-Next-Cursor is absent in the response, all rows have been fetched.
        - name: property_id
          in: query
          required: false
          schema:
            type: string
          description: Filter by property_id
        - name: person_id
          in: query
          required: false
          schema:
            type: string
          description: Filter by person_id
        - name: valid_from
          in: query
          required: false
          schema:
            type: string
          description: Filter by valid_from
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    property_id_person_id:
                      type: integer
                    sk_tenants_property_person:
                      type: integer
                    property_id:
                      type: integer
                    sk_properties:
                      type: integer
                    person_id:
                      type: string
                    account_id:
                      type: integer
                    sk_debit_types:
                      type: integer
                    valid_from:
                      type: string
                      format: date
                    debit_diff_net_value:
                      type: number
                    debit_diff_tax_value:
                      type: number
                    debit_diff_gross_value:
                      type: number
                    debit_diff_reminder_from:
                      type: string
                      format: date
                    debit_diff_reminder_manual:
                      type: boolean
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: Total number of rows matching the query (ignoring limit/offset)
            X-Has-More:
              schema:
                type: string
                enum:
                  - 'true'
                  - 'false'
              description: Whether more rows exist beyond the current page
            X-Next-Offset:
              schema:
                type: integer
              description: >-
                Offset to use for the next page. Only present when X-Has-More is
                true.
            X-Next-Cursor:
              schema:
                type: string
              description: >-
                Opaque cursor for the next page. Present only when a full page
                was returned (len(data) == limit). Pass as cursor= on the next
                request.
        '400':
          description: Bad Request
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Bad Request
                status: 400
                detail: 'Missing required filter(s): [''property_id'']'
                instance: /contracts/contract_debit_diffs
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Unauthorized
                status: 401
                detail: API key required
                instance: /contracts/contract_debit_diffs
        '403':
          description: Forbidden
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Forbidden
                status: 403
                detail: Invalid or disabled API key
                instance: /contracts/contract_debit_diffs
        '404':
          description: Not Found
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Not Found
                status: 404
                detail: Category or table not found
                instance: /contracts/contract_debit_diffs
        '422':
          description: Unprocessable Entity
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Unprocessable Entity
                status: 422
                detail: 'query -> offset: Input should be greater than or equal to 0'
                instance: /contracts/contract_debit_diffs
        '429':
          description: Too Many Requests
          content:
            application/problem+json:
              example:
                type: about:blank
                title: Too Many Requests
                status: 429
                detail: 'Rate limit exceeded: 500 per 1 hour'
                instance: /contracts/contract_debit_diffs
      security:
        - APIKeyHeader: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````