Embat ReconcilingItems API

⚠️ Warning: This API section is in BETA. It might undergo significant changes and may not be stable. ReconcilingItem represents a single financial record — for example a POS sale, an order, or a settlement — that needs to be matched against a product `transaction`. `customId` is the unique identifier of a reconciling item: set your own value to use as your internal identifier. Every reconciling item belongs to a ReconcilingSource, referenced by `reconcilingSourceCustomId`, which identifies the origin system the item comes from (e.g. a POS, an internal system, or a CRM) and can define a `matchingMetadataKey`. When set, Embat uses the value stored under that key in the item's `metadata` to automatically associate the item with a transaction. `reconciled` and `isMatched` reflect the state of that process and are set by Embat — they cannot be updated through this API. **Typical flow:** 1. **Register a reconciling source** (see ReconcilingSources) if one does not already exist for the origin system. 2. **Notify Embat of records to reconcile.** Create a reconciling item for each record, including the metadata your reconciling source uses for matching: ```json POST /reconcilingitems/{companyId} { "customId": "stripe-order-4821", "reconcilingSourceCustomId": "stripe-orders", "amount": 199.90, "currency": "EUR", "date": "2024-01-15T00:00:00Z", "description": "Stripe order #4821", "metadata": { "orderId": "ORD-48213" } } ``` Calling this again with the same `customId` updates the existing item instead of creating a duplicate, unless it has already been matched to a transaction. 3. **Track reconciliation status.** Retrieve or list items with `GET /reconcilingitems/{companyId}/{customId}` or `GET /reconcilingitems/{companyId}` — filter by `reconcilingSourceCustomId` or `reconciled` and check `isMatched`/`reconciled` on each item to see whether Embat has matched and reconciled it. 4. **Correct or remove items** while they are still unmatched: use `PATCH`/`DELETE /reconcilingitems/{companyId}/{customId}` (or their bulk variants), or resend the item with `POST` — creation is an upsert, so an existing `customId` is updated instead of duplicated.

OpenAPI Specification

embat-reconcilingitems-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Embat AccountingAccounts ReconcilingItems API
  description: Embat API enables connections between any third party application and Embat. Is organized around REST principles, using HTTP responses code and returning data in JSON format. While testing the API, you have to request **sandbox credentials**.
  contact:
    name: API Support
    url: https://embat.io/
    email: tech@embat.io
  version: 2.120.3
  x-logo:
    url: https://storage.googleapis.com/embat-production.appspot.com/assets/embat_dark.svg
tags:
- name: ReconcilingItems
  description: "<div style=\"background-color:#fff3cd; color:#856404; padding: 10px; border-left: 6px solid #ffeeba;\">\n<strong>⚠️ Warning:</strong> This API section is in BETA. It might undergo significant changes and may not be stable.\n</div>\n\n<code>ReconcilingItem</code> represents a single financial record — for example a POS sale, an order, or a settlement — that needs to be matched against a product `transaction`. `customId` is the unique identifier of a reconciling item: set your own value to use as your internal identifier.\n\nEvery reconciling item belongs to a <code>ReconcilingSource</code>, referenced by `reconcilingSourceCustomId`, which identifies the origin system the item comes from (e.g. a POS, an internal system, or a CRM) and can define a `matchingMetadataKey`. When set, Embat uses the value stored under that key in the item's `metadata` to automatically associate the item with a transaction. `reconciled` and `isMatched` reflect the state of that process and are set by Embat — they cannot be updated through this API.\n\n**Typical flow:**\n\n1. **Register a reconciling source** (see <code>ReconcilingSources</code>) if one does not already exist for the origin system.\n2. **Notify Embat of records to reconcile.** Create a reconciling item for each record, including the metadata your reconciling source uses for matching:\n\n```json\nPOST /reconcilingitems/{companyId}\n{\n  \"customId\": \"stripe-order-4821\",\n  \"reconcilingSourceCustomId\": \"stripe-orders\",\n  \"amount\": 199.90,\n  \"currency\": \"EUR\",\n  \"date\": \"2024-01-15T00:00:00Z\",\n  \"description\": \"Stripe order #4821\",\n  \"metadata\": { \"orderId\": \"ORD-48213\" }\n}\n```\n\nCalling this again with the same `customId` updates the existing item instead of creating a duplicate, unless it has already been matched to a transaction.\n\n3. **Track reconciliation status.** Retrieve or list items with `GET /reconcilingitems/{companyId}/{customId}` or `GET /reconcilingitems/{companyId}` — filter by `reconcilingSourceCustomId` or `reconciled` and check `isMatched`/`reconciled` on each item to see whether Embat has matched and reconciled it.\n4. **Correct or remove items** while they are still unmatched: use `PATCH`/`DELETE /reconcilingitems/{companyId}/{customId}` (or their bulk variants), or resend the item with `POST` — creation is an upsert, so an existing `customId` is updated instead of duplicated.\n"
paths:
  /reconcilingitems/{companyId}:
    get:
      tags:
      - ReconcilingItems
      summary: List reconciling items
      description: 'Returns the reconciling items of a company, ordered by `date` (most recent first). Results are paginated: use `limit` to control page size and pass the returned `nextPageToken` to fetch the next page.'
      operationId: list_operations_reconcilingitems__companyId__get
      security:
      - HTTPBearer: []
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      - name: reconcilingSourceCustomId
        in: query
        required: false
        schema:
          type: string
          description: Filter items belonging to a given reconciling source (`reconcilingSourceCustomId`).
          title: Reconcilingsourcecustomid
        description: Filter items belonging to a given reconciling source (`reconcilingSourceCustomId`).
      - name: reconciled
        in: query
        required: false
        schema:
          type: boolean
          description: Filter by reconciliation status. `false` also matches items where the value is not set.
          title: Reconciled
        description: Filter by reconciliation status. `false` also matches items where the value is not set.
      - name: startDate
        in: query
        required: false
        schema:
          type: string
          format: date
          description: Only return items dated on or after this date (inclusive).
          title: Startdate
        description: Only return items dated on or after this date (inclusive).
      - name: endDate
        in: query
        required: false
        schema:
          type: string
          format: date
          description: Only return items dated before this date (exclusive).
          title: Enddate
        description: Only return items dated before this date (exclusive).
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 2000
          title: Response length of objects limit
          description: Maximum number of objects to return in the response. Default 500, maximum 2000.
          default: 500
        description: Maximum number of objects to return in the response. Default 500, maximum 2000.
      - name: nextPageToken
        in: query
        required: false
        schema:
          type: string
          title: Pagination token
          description: Token to fetch the next page of results, taken from the `nextPageToken` returned by the previous request with the same filters. Omit it to fetch the first page. An invalid or malformed token is rejected with `404`.
        description: Token to fetch the next page of results, taken from the `nextPageToken` returned by the previous request with the same filters. Omit it to fetch the first page. An invalid or malformed token is rejected with `404`.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found, or invalid `nextPageToken`.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - ReconcilingItems
      summary: Create reconciling item
      description: Creates a reconciling item under the given `reconcilingSourceCustomId`. Calling this again with the same `customId` updates the existing item instead of creating a duplicate — except once the item has been matched to a transaction, in which case the call still returns `200` and the item is not modified by this request.
      operationId: create_reconciling_item_reconcilingitems__companyId__post
      security:
      - HTTPBearer: []
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostReconcilingItemSchema'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpsertReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - ReconcilingItems
      summary: Update reconciling items in bulk
      description: Updates several reconciling items in a single call, identified by `customId`, following the same rules as the single item update endpoint. Entries whose `customId` does not match any existing item, or whose item has already been matched to a transaction, are silently skipped — the call returns `200` for the whole batch.
      operationId: update_reconciling_items_bulk_reconcilingitems__companyId__patch
      security:
      - HTTPBearer: []
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPatchReconcilingItemsRequestSchema'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpsertReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - ReconcilingItems
      summary: Delete reconciling items in bulk
      description: Deletes several reconciling items in a single call, identified by `customId`. The call returns `200` listing every requested `customId` even if some (or all) do not match an existing item — deletion is idempotent and the response does not indicate which items were actually removed.
      operationId: delete_reconciling_items_bulk_reconcilingitems__companyId__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeleteReconcilingItemsRequestSchema'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkModifyReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /reconcilingitems/{companyId}/{customId}:
    get:
      tags:
      - ReconcilingItems
      summary: Retrieve reconciling item
      description: Returns a single reconciling item by `customId`.
      operationId: read_reconciling_item_reconcilingitems__companyId___customId__get
      security:
      - HTTPBearer: []
      parameters:
      - name: customId
        in: path
        required: true
        schema:
          type: string
          title: Customid
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found, or no reconciling item matches the given `customId`.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - ReconcilingItems
      summary: Update reconciling item
      description: Updates the amount, currency, date, description, metadata or additional info of a reconciling item identified by `customId`. Only the fields sent are changed; omitted or `null` fields keep their current value. If `customId` does not match any existing item, or the item has already been matched to a transaction, the call still returns `200` without applying any change.
      operationId: update_reconciling_item_reconcilingitems__companyId___customId__patch
      security:
      - HTTPBearer: []
      parameters:
      - name: customId
        in: path
        required: true
        schema:
          type: string
          title: Customid
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchReconcilingItemSchema'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpsertReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - ReconcilingItems
      summary: Delete reconciling item
      description: Deletes a reconciling item by `customId`. The call returns `200` even if no item matches the given `customId` — deletion is idempotent and the response does not indicate whether an item was actually removed.
      operationId: delete_reconciling_item_reconcilingitems__companyId___customId__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: customId
        in: path
        required: true
        schema:
          type: string
          title: Customid
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModifyReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /reconcilingitems/{companyId}/bulk:
    post:
      tags:
      - ReconcilingItems
      summary: Create reconciling items in bulk
      description: Creates several reconciling items in a single call, following the same rules as the single item creation endpoint. Items sharing the same `customId` within the request are deduplicated and only the first occurrence is processed.
      operationId: create_reconciling_items_bulk_reconcilingitems__companyId__bulk_post
      security:
      - HTTPBearer: []
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: string
          title: Companyid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPostReconcilingItemsRequestSchema'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpsertReconcilingItemsResponseSchema'
        '401':
          description: Unauthorized. The bearer token is missing, invalid or expired.
          content:
            application/json:
              example:
                detail: user not authorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Company not found.
          content:
            application/json:
              example:
                detail: 0021 companyId not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    PatchReconcilingItemSchema:
      properties:
        amount:
          anyOf:
          - type: number
          - type: 'null'
          title: Amount
          description: Amount of the reconciling item, in `currency`. Omitted or `null` leaves the current amount unchanged.
          examples:
          - 199.9
        currency:
          anyOf:
          - $ref: '#/components/schemas/CurrencyEnum'
          - type: 'null'
          description: Currency of the reconciling item, in ISO 4217 format. Omitted or `null` leaves the current currency unchanged.
          examples:
          - EUR
        date:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Date
          description: Date of the reconciling item. Omitted or `null` leaves the current date unchanged.
          examples:
          - '2024-01-15T00:00:00Z'
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Free-text description of the reconciling item. Omitted or `null` leaves the current description unchanged.
          examples:
          - 'Stripe order #4821'
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
          description: Free-form key/value data associated with the reconciling item. When its reconciling source defines a `matchingMetadataKey`, the value stored under that key is used to automatically associate this item with a product transaction — only string, number or boolean values are usable for matching, other value types are ignored. An empty string is also accepted and treated as an empty object. Replaces the previously stored value entirely (not merged). Omitted or `null` leaves the current metadata unchanged.
          examples:
          - orderId: ORD-48213
        additionalInfo:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Additionalinfo
          description: Free-form key/value metadata to attach to the reconciling item. An empty string is also accepted and treated as an empty object. Replaces the previously stored value entirely (not merged). Omitted or `null` leaves the current metadata unchanged.
      type: object
      title: PatchReconcilingItemSchema
    UpsertReconcilingItemsResponseSchema:
      properties:
        id:
          type: string
          title: Id
          description: Embat resource ID
        customId:
          type: string
          title: Customid
          description: Client-provided custom ID
      type: object
      required:
      - id
      - customId
      title: UpsertReconcilingItemsResponseSchema
    PostReconcilingItemSchema:
      properties:
        amount:
          type: number
          title: Amount
          description: Amount of the reconciling item, in `currency`.
          examples:
          - 199.9
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: Currency of the reconciling item, in ISO 4217 format.
          examples:
          - EUR
        date:
          type: string
          format: date-time
          title: Date
          description: Date of the reconciling item.
          examples:
          - '2024-01-15T00:00:00Z'
        description:
          type: string
          title: Description
          description: Free-text description of the reconciling item.
          examples:
          - 'Stripe order #4821'
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
          description: Free-form key/value data associated with the reconciling item. When its reconciling source defines a `matchingMetadataKey`, the value stored under that key is used to automatically associate this item with a product transaction — only string, number or boolean values are usable for matching, other value types are ignored. An empty string is also accepted and treated as an empty object. Replaces the previously stored value entirely (not merged). Omitted or `null` leaves the current metadata unchanged.
          examples:
          - orderId: ORD-48213
        additionalInfo:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Additionalinfo
          description: Free-form key/value metadata to attach to the reconciling item. An empty string is also accepted and treated as an empty object. Replaces the previously stored value entirely (not merged). Omitted or `null` leaves the current metadata unchanged.
        customId:
          type: string
          title: Customid
          description: Your own unique ID for the reconciling item. You can use it as your internal reconciling item identifier.
          examples:
          - stripe-order-4821
        reconcilingSourceCustomId:
          type: string
          title: Reconcilingsourcecustomid
          description: 'Custom ID of the reconciling source this item belongs to. You can get them from "Reconciling Sources" endpoints. Not validated against existing reconciling sources: if it does not match one, the item is still created, but it is not automatically matched against transactions.'
          examples:
          - stripe-orders
      type: object
      required:
      - amount
      - currency
      - date
      - description
      - customId
      - reconcilingSourceCustomId
      title: PostReconcilingItemSchema
    ListReconcilingItemsResponseSchema:
      properties:
        data:
          items:
            $ref: '#/components/schemas/GetReconcilingItemsResponseSchema'
          type: array
          title: Data
          description: Reconciling items matching the query.
        nextPageToken:
          anyOf:
          - type: string
          - type: 'null'
          title: Nextpagetoken
          description: Token to fetch the next page of results. `null` when there are no more pages.
      type: object
      required:
      - data
      title: ListReconcilingItemsResponseSchema
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of the error.
          examples:
          - user not authorized
      type: object
      required:
      - detail
      title: ErrorResponse
      description: Error payload returned by the API (FastAPI `detail` convention).
    CurrencyEnum:
      type: string
      enum:
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BDT
      - BGN
      - BHD
      - BIF
      - BMD
      - BND
      - BOB
      - BOV
      - BRL
      - BSD
      - BTC
      - BTN
      - BWP
      - BYN
      - BZD
      - CAD
      - CDF
      - CHE
      - CHF
      - CHW
      - CLF
      - CLP
      - CNH
      - CNY
      - COP
      - COU
      - CRC
      - CUP
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EEK
      - EGP
      - ERN
      - ETB
      - ETH
      - EUR
      - FJD
      - FKP
      - GBP
      - GEL
      - GHS
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HRK
      - HTG
      - HUF
      - IDR
      - ILS
      - INR
      - IQD
      - IRR
      - ISK
      - JMD
      - JOD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KPW
      - KRW
      - KWD
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL
      - LTC
      - LTL
      - LVL
      - LYD
      - MAD
      - MDL
      - MGA
      - MKD
      - MMK
      - MNT
      - MOP
      - MRU
      - MUR
      - MVR
      - MWK
      - MXN
      - MXV
      - MYR
      - MZN
      - NAD
      - NGN
      - NIO
      - NOK
      - NPR
      - NZD
      - OMR
      - PAB
      - PEN
      - PGK
      - PHP
      - PKR
      - PLN
      - PYG
      - QAR
      - RON
      - RSD
      - RUB
      - RWF
      - SAR
      - SBD
      - SCR
      - SDG
      - SEK
      - SGD
      - SHP
      - SLE
      - SOS
      - SRD
      - SSP
      - STN
      - SVC
      - SYP
      - SZL
      - THB
      - TJS
      - TMT
      - TND
      - TOP
      - TRY
      - TTD
      - TWD
      - TZS
      - UAH
      - UGX
      - USD
      - USN
      - UYI
      - UYU
      - UYW
      - UZS
      - VED
      - VEF
      - VES
      - VND
      - VUV
      - WST
      - XAF
      - XAG
      - XAU
      - XBA
      - XBB
      - XBC
      - XBD
      - XCD
      - XDR
      - XOF
      - XPD
      - XPF
      - XPT
      - XSU
      - XTS
      - XUA
      - XXX
      - YER
      - ZAR
      - ZMK
      - ZMW
      - ZWG
      - ZWL
      title: CurrencyEnum
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    GetReconcilingItemsResponseSchema:
      properties:
        amount:
          type: number
          title: Amount
          description: Amount of the reconciling item, in `currency`.
          examples:
          - 199.9
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: Currency of the reconciling item, in ISO 4217 format.
          examples:
          - EUR
        date:
          type: string
          format: date-time
          title: Date
          description: Date of the reconciling item.
          examples:
          - '2024-01-15T00:00:00Z'
        description:
          type: string
          title: Description
          description: Free-text description of the reconciling item.
          examples:
          - 'Stripe order #4821'
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
          description: Free-form key/value data associated with the reconciling item. When its reconciling source defines a `matchingMetadataKey`, the value stored under that key is used to automatically associate this item with a product transaction — only string, number or boolean values are usable for matching, other value types are ignored. An empty string is also accepted and treated as an empty object. Replaces the previously stored value entirely (not merged). Omitted or `null` leaves the current metadata unchanged.
          examples:
          - orderId: ORD-48213
        additionalInfo:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Additionalinfo
          description: Free-form key/value metadata to attach to the reconciling item. An empty string is also accepted and treated as an empty object. Replaces the previously stored value entirely (not merged). Omitted or `null` leaves the current metadata unchanged.
        customId:
          type: string
          title: Customid
          description: Your own unique ID for the reconciling item. You can use it as your internal reconciling item identifier.
          examples:
          - stripe-order-4821
        reconcilingSourceCustomId:
          type: string
          title: Reconcilingsourcecustomid
          description: 'Custom ID of the reconciling source this item belongs to. You can get them from "Reconciling Sources" endpoints. Not validated against existing reconciling sources: if it does not match one, the item is still created, but it is not automatically matched against transactions.'
          examples:
          - stripe-orders
        id:
          type: string
          title: Id
          description: Embat ID of the reconciling item.
        companyId:
          type: string
          title: Companyid
          description: Embat company ID. You can get them from "companies" endpoints.
        updatedAt:
          type: string
          format: date-time
          title: Updatedat
          description: Last updated date of the entity in the database.
        createdAt:
          type: string
          format: date-time
          title: Createdat
          description: Created date of the entity in the database.
        reconciled:
          type: boolean
    

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/embat/refs/heads/main/openapi/embat-reconcilingitems-api-openapi.yml