Chia Health Settlements API

Synthetic settlement fixtures in sandbox. Production returns only immutable, append-only statement revisions explicitly released by Finance.

GitHub OpenAPI

Operations 1

GET /v2/settlement_summaries List environment-authorized settlement presentations #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chia-health:chia-health-settlements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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

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

OpenAPI Specification

chia-health-settlements-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Chia Health Settlements API
  version: 2.1.0
  contact:
    name: Named Chia integration support contact in the signed onboarding receipt
  license:
    name: Proprietary API contract
  description: 'Operations tagged Settlements across 2 of this provider''s published API definitions: chia-health-openapi.yaml, chia-health-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sandbox.invalid
  description: Intentionally non-resolving sandbox contract placeholder — synthetic data only. Use the exact HTTPS origin in the signed onboarding package.
- url: https://api.production.invalid
  description: Intentionally non-resolving gated-production contract placeholder. Use the exact HTTPS origin and separate chia_live_ runtime and chia_live_finance_ finance credentials from signed onboarding. Credentials alone do not activate catalog or handoff.
security:
- bearerAuth: []
tags:
- name: Settlements
  description: Synthetic settlement fixtures in sandbox. Production returns only immutable, append-only statement revisions explicitly released by Finance.
paths:
  /v2/settlement_summaries:
    get:
      operationId: listSettlementSummaries
      tags:
      - Settlements
      summary: List environment-authorized settlement presentations
      description: Requires the separate environment finance credential. Only opaque cursor pagination is supported; patient, order, payment-level, shipment, program, geography, event, date-row, status, time-range, expansion, and line-item filters do not exist. Sandbox returns documented synthetic fixtures. Production returns only closed, immutable statement revisions that Finance explicitly authored and released for this credential-bound partner and environment. Corrections append a new revision and point to the prior release with supersedes_id; a release is never mutated. Amounts, due/paid status, and timestamps come only from the Finance-authored release record. Aggregate activity is nullable and a count is exposed only after the internal threshold and composition approvals pass; those internal proofs are never projected. Production never reads live activity or synthesizes liability, due, paid, count, or statement state from configuration, runtime events, or the wall clock.
      parameters:
      - name: limit
        in: query
        required: false
        description: Number of summaries, newest fixed reporting window first.
        schema:
          type: integer
          minimum: 1
          maximum: 25
          default: 10
      - name: starting_after
        in: query
        required: false
        description: Authenticated opaque cursor from next_cursor. It expires 24 hours after issue and carries no client-readable business fields. On cursor_expired, restart without starting_after and reconcile immutable revisions by id, revision, and supersedes_id.
        schema:
          type: string
          pattern: ^cur_[A-Za-z0-9_-]{16,252}$
      responses:
        '200':
          description: Sandbox synthetic fixtures or Finance-released immutable production statement revisions.
          headers:
            Chia-Request-Id:
              $ref: '#/components/headers/RequestId'
            Chia-Version:
              $ref: '#/components/headers/Version'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Cache-Control:
              schema:
                type: string
                const: private, max-age=60
            Vary:
              schema:
                type: string
                const: Authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementList'
              examples:
                sandbox:
                  value:
                    object: list
                    data:
                    - id: set_01K0M9A3D0R5F7H9K2N4Q6S8V0
                      object: settlement_summary
                      service_fee:
                        statement_id: fee_01K0M9B4E1S6G8J0L3P5R7T9W1
                        period:
                          start: '2026-06-01'
                          end: '2026-07-01'
                          timezone: UTC
                        status: finalized
                        payer:
                          name: Chia Sandbox Services, Inc. (synthetic fixture)
                        payee:
                          name: Example Partner
                        fixed_service_fee:
                          amount: 250000
                          currency: USD
                        amount_paid:
                          amount: 0
                          currency: USD
                        amount_due_to_partner:
                          amount: 250000
                          currency: USD
                        payable_on: '2026-07-31'
                        paid_at: null
                        terms_version: terms_01K0M9C5F2T7H9K1N4Q6S8V0X2
                        as_of: '2026-07-08T00:00:00Z'
                      aggregate_activity:
                        release_id: act_01K0M9D6G3V8J0L2P5R7T9W1Y3
                        period:
                          start: '2026-05-01'
                          end: '2026-07-01'
                          timezone: UTC
                        aggregate_initial_purchase_count: 42
                        as_of: '2026-07-08T00:00:00Z'
                    has_more: false
                    next_cursor: null
                    livemode: false
                production_finance_released_revision:
                  value:
                    object: list
                    data:
                    - id: set_01K0R2A3B4C5D6E7F8G9H0J1K2
                      object: settlement_summary
                      revision: 1
                      supersedes_id: null
                      released_at: '2026-07-22T18:00:00Z'
                      service_fee:
                        statement_id: fee_01K0R2B4C5D6E7F8G9H0J1K2M3
                        period:
                          start: '2026-06-01'
                          end: '2026-07-01'
                          timezone: UTC
                        status: finalized
                        payer:
                          name: Chia Health, Inc.
                        payee:
                          name: Example Partner
                        fixed_service_fee:
                          amount: 250000
                          currency: USD
                        amount_paid:
                          amount: 0
                          currency: USD
                        amount_due_to_partner:
                          amount: 250000
                          currency: USD
                        payable_on: '2026-07-31'
                        paid_at: null
                        terms_version: terms_01K0R2C5D6E7F8G9H0J1K2M3N4
                        as_of: '2026-07-22T18:00:00Z'
                      aggregate_activity:
                        release_id: act_01K0R2D6E7F8G9H0J1K2M3N4P5
                        period:
                          start: '2026-06-01'
                          end: '2026-07-01'
                          timezone: UTC
                        aggregate_initial_purchase_count: null
                        suppression_reason: below_minimum_group_size
                        minimum_group_size: 10
                        as_of: '2026-07-22T18:00:00Z'
                    has_more: false
                    next_cursor: null
                    livemode: true
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '403':
          $ref: '#/components/responses/PermissionError'
        '405':
          $ref: '#/components/responses/MethodNotAllowedGet'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/Unavailable'
    servers:
    - url: https://api.sandbox.invalid
      description: Intentionally non-resolving sandbox contract placeholder — synthetic data only. Use the exact HTTPS origin in the signed onboarding package.
    - url: https://api.production.invalid
      description: Intentionally non-resolving gated-production contract placeholder. Use the exact HTTPS origin and separate chia_live_ runtime and chia_live_finance_ finance credentials from signed onboarding. Credentials alone do not activate catalog or handoff.
components:
  headers:
    NoStore:
      description: Partner API errors and mutation responses are never cacheable.
      required: true
      schema:
        type: string
        const: no-store
    RateLimitReset:
      description: Seconds until the current limit resets.
      required: true
      schema:
        type: integer
        minimum: 0
    RequestId:
      description: Authoritative server-generated request identifier.
      required: true
      schema:
        type: string
        pattern: ^req_[A-Za-z0-9]{8,64}$
    AllowGet:
      description: The only method accepted by this resource.
      required: true
      schema:
        type: string
        const: GET
    RetryAfter:
      description: Seconds before retrying.
      required: true
      schema:
        type: integer
        minimum: 1
    RateLimitLimit:
      description: Credential/partner request budget.
      required: true
      schema:
        type: integer
        minimum: 0
    RateLimitRemaining:
      description: Requests remaining in the current window.
      required: true
      schema:
        type: integer
        minimum: 0
    Version:
      description: Credential-pinned API behavior version.
      required: true
      schema:
        type: string
        const: '2026-07-22'
    WWWAuthenticate:
      description: Bearer authentication challenge for the Partner API.
      required: true
      schema:
        type: string
        const: Bearer realm="chia-partner-api"
  responses:
    Unavailable:
      description: A safe dependency failed before the operation could commit.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            partner_program_unavailable:
              value:
                error:
                  type: api_error
                  code: partner_program_unavailable
                  message: The partner care program is not currently available.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: true
            settlement_summaries_unavailable:
              value:
                error:
                  type: api_error
                  code: settlement_summaries_unavailable
                  message: Settlement summaries are temporarily unavailable.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: true
            rate_limiter_unavailable:
              value:
                error:
                  type: api_error
                  code: rate_limiter_unavailable
                  message: The request cannot be accepted right now.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: true
            webhook_queue_unavailable:
              value:
                error:
                  type: api_error
                  code: webhook_queue_unavailable
                  message: The synthetic webhook could not be queued.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: true
    PermissionError:
      description: The credential lacks the operation's exact environment or scope.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            insufficient_scope:
              value:
                error:
                  type: permission_error
                  code: insufficient_scope
                  message: The API key lacks the required scope.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: false
    MethodNotAllowedGet:
      description: The resource accepts GET only.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
        Allow:
          $ref: '#/components/headers/AllowGet'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InvalidRequest:
      description: Malformed JSON, unknown query/input field, invalid parameter, or unsupported media type.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            invalid_request:
              value:
                error:
                  type: invalid_request_error
                  code: invalid_request
                  message: The request could not be processed.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: false
            invalid_idempotency_key:
              value:
                error:
                  type: invalid_request_error
                  code: invalid_idempotency_key
                  message: Idempotency-Key must be a random UUIDv4.
                  param: Idempotency-Key
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: false
            invalid_cursor:
              value:
                error:
                  type: invalid_request_error
                  code: invalid_cursor
                  message: starting_after is not a valid production cursor.
                  param: starting_after
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: false
            cursor_expired:
              value:
                error:
                  type: invalid_request_error
                  code: cursor_expired
                  message: starting_after has expired; restart pagination without it.
                  param: starting_after
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: false
    RateLimited:
      description: Per-partner or per-credential limit exceeded.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            rate_limit_exceeded:
              value:
                error:
                  type: rate_limit_error
                  code: rate_limit_exceeded
                  message: Too many requests were made. Retry after the indicated delay.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: true
    AuthenticationError:
      description: Missing, invalid, expired, revoked, or wrong-environment credential.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
        WWW-Authenticate:
          $ref: '#/components/headers/WWWAuthenticate'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            invalid_api_key:
              value:
                error:
                  type: authentication_error
                  code: invalid_api_key
                  message: The API key is missing or invalid.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: false
    InternalError:
      description: Unexpected error with no internal details exposed.
      headers:
        Chia-Request-Id:
          $ref: '#/components/headers/RequestId'
        Chia-Version:
          $ref: '#/components/headers/Version'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
        Cache-Control:
          $ref: '#/components/headers/NoStore'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internal_error:
              value:
                error:
                  type: api_error
                  code: internal_error
                  message: The request could not be completed.
                  param: null
                  request_id: req_01K0N2A3B4C5D6E7F8G9H0J1K2
                  retryable: true
  schemas:
    LegacyAggregateActivity:
      type: object
      additionalProperties: false
      required:
      - release_id
      - period
      - aggregate_initial_purchase_count
      - as_of
      properties:
        release_id:
          type: string
          pattern: ^act_[A-Za-z0-9]{8,64}$
        period:
          $ref: '#/components/schemas/Period'
        aggregate_initial_purchase_count:
          type: integer
          minimum: 1
          maximum: 9007199254740991
        as_of:
          type: string
          format: date-time
    Error:
      type: object
      additionalProperties: false
      required:
      - type
      - code
      - message
      - param
      - request_id
      - retryable
      properties:
        type:
          type: string
          enum:
          - invalid_request_error
          - authentication_error
          - permission_error
          - conflict_error
          - rate_limit_error
          - api_error
        code:
          type: string
          pattern: ^[a-z][a-z0-9_]{2,63}$
        message:
          type: string
          minLength: 1
          maxLength: 240
        param:
          type:
          - string
          - 'null'
          maxLength: 80
        request_id:
          type: string
          pattern: ^req_[A-Za-z0-9]{8,64}$
        retryable:
          type: boolean
    SettlementSummary:
      type: object
      additionalProperties: false
      description: 'One closed settlement projection. Sandbox rows are synthetic 2.0-compatible fixtures. Every production row is a distinct immutable Finance release: id identifies that release, revision is the Finance-authored statement revision, supersedes_id links a correction to the immediately prior release, and released_at records the release decision. The public object contains no patient, order, payment-level, shipment, program, geography, event, or date-row data.'
      allOf:
      - if:
          required:
          - revision
          properties:
            revision:
              const: 1
        then:
          properties:
            supersedes_id:
              type: 'null'
        else:
          properties:
            supersedes_id:
              type: string
              pattern: ^set_[A-Za-z0-9]{8,64}$
      required:
      - id
      - object
      - service_fee
      - aggregate_activity
      properties:
        id:
          type: string
          pattern: ^set_[A-Za-z0-9]{8,64}$
        object:
          const: settlement_summary
        revision:
          type: integer
          minimum: 1
          maximum: 9007199254740991
          description: Required in production. Finance-authored immutable revision number for this logical statement.
        supersedes_id:
          type:
          - string
          - 'null'
          pattern: ^set_[A-Za-z0-9]{8,64}$
          description: Required in production. Null for revision 1; otherwise the prior immutable release id corrected by this revision.
        released_at:
          type: string
          format: date-time
          description: Required in production. Finance-authored release timestamp; never inferred from request or processing time.
        service_fee:
          $ref: '#/components/schemas/ServiceFee'
        aggregate_activity:
          oneOf:
          - $ref: '#/components/schemas/AggregateActivity'
          - type: 'null'
    PrivacyThresholdedAggregateActivity:
      type: object
      additionalProperties: false
      description: Optional released aggregate only. An internal immutable privacy release must prove both the hard minimum group size of 10 and composition approval before a non-null count is projected; those proof fields remain private. Otherwise the count is null with below_minimum_group_size, or aggregate_activity is null.
      allOf:
      - if:
          properties:
            aggregate_initial_purchase_count:
              type: 'null'
          required:
          - aggregate_initial_purchase_count
        then:
          properties:
            suppression_reason:
              const: below_minimum_group_size
        else:
          properties:
            suppression_reason:
              type: 'null'
      required:
      - release_id
      - period
      - aggregate_initial_purchase_count
      - suppression_reason
      - minimum_group_size
      - as_of
      properties:
        release_id:
          type: string
          pattern: ^act_[A-Za-z0-9]{8,64}$
        period:
          $ref: '#/components/schemas/Period'
        aggregate_initial_purchase_count:
          type:
          - integer
          - 'null'
          minimum: 1
          maximum: 9007199254740991
        suppression_reason:
          type:
          - string
          - 'null'
          enum:
          - null
          - below_minimum_group_size
        minimum_group_size:
          type: integer
          minimum: 10
          maximum: 100
          description: Finance-released threshold for this aggregate. The Partner API hard floor is 10; a partner-specific approval may require a larger value.
        as_of:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
    Period:
      type: object
      additionalProperties: false
      required:
      - start
      - end
      - timezone
      properties:
        start:
          type: string
          format: date
        end:
          type: string
          format: date
        timezone:
          const: UTC
    SettlementList:
      type: object
      additionalProperties: false
      allOf:
      - if:
          properties:
            livemode:
              const: true
          required:
          - livemode
        then:
          properties:
            data:
              items:
                required:
                - revision
                - supersedes_id
                - released_at
                properties:
                  aggregate_activity:
                    oneOf:
                    - $ref: '#/components/schemas/PrivacyThresholdedAggregateActivity'
                    - type: 'null'
      oneOf:
      - properties:
          has_more:
            const: true
          next_cursor:
            type: string
            pattern: ^cur_[A-Za-z0-9_-]{16,252}$
      - properties:
          has_more:
            const: false
          next_cursor:
            type: 'null'
      required:
      - object
      - data
      - has_more
      - next_cursor
      - livemode
      properties:
        object:
          const: list
        data:
          type: array
          maxItems: 25
          items:
            $ref: '#/components/schemas/SettlementSummary'
        has_more:
          type: boolean
        next_cursor:
          type:
          - string
          - 'null'
          pattern: ^cur_[A-Za-z0-9_-]{16,252}$
        livemode:
          type: boolean
    ServiceFee:
      type: object
      additionalProperties: false
      description: Finance-authored statement values only. The API validates and projects this released record; it never calculates fee, due, paid, payable, or paid-at state from live data, configuration, events, or time.
      required:
      - statement_id
      - period
      - status
      - payer
      - payee
      - fixed_service_fee
      - amount_paid
      - amount_due_to_partner
      - payable_on
      - paid_at
      - terms_version
      - as_of
      properties:
        statement_id:
          type: string
          pattern: ^fee_[A-Za-z0-9]{8,64}$
        period:
          $ref: '#/components/schemas/Period'
        status:
          enum:
          - finalized
          - paid
        payer:
          $ref: '#/components/schemas/NamedParty'
        payee:
          $ref: '#/components/schemas/NamedParty'
        fixed_service_fee:
          $ref: '#/components/schemas/Money'
        amount_paid:
          $ref: '#/components/schemas/Money'
        amount_due_to_partner:
          $ref: '#/components/schemas/Money'
        payable_on:
          type:
          - string
          - 'null'
          format: date
        paid_at:
          type:
          - string
          - 'null'
          format: date-time
        terms_version:
          type: string
          pattern: ^terms_[A-Za-z0-9]{8,64}$
        as_of:
          type: string
          format: date-time
    NamedParty:
      type: object
      additionalProperties: false
      required:
      - name
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 180
    AggregateActivity:
      oneOf:
      - $ref: '#/components/schemas/LegacyAggregateActivity'
      - $ref: '#/components/schemas/PrivacyThresholdedAggregateActivity'
    Money:
      type: object
      additionalProperties: false
      required:
      - amount
      - currency
      properties:
        amount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        currency:
          const: USD
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: chia_test_… / chia_test_finance_… / chia_live_… / chia_live_finance_…
      description: Environment- and role-bound server credential. Each environment has one runtime key for catalog:read, handoffs:create, and webhooks:test, plus a separately stored finance key for settlements:read. Sandbox and production credentials are never interchangeable.
externalDocs:
  description: Human and AI integration guide
  url: https://partners.chia.health/
x-refined-from:
- chia-health-openapi.yaml
- chia-health-openapi.yml
x-chia-contract:
  api_behavior_version: '2026-07-22'
  exact_json_business_operations:
  - GET /v2/catalog/items
  - POST /v2/handoff-sessions
  - GET /v2/settlement_summaries
  - POST /v2/webhook_tests
  forbidden_resource_classes:
  - patient
  - session
  - order
  - payment
  - prescription
  - fulfillment
  - shipment
  - support
  - outcome
  asset_contract: ../assets/v2.contract.yaml
  webhook_contract: ../webhooks/v2.asyncapi.yaml
  legal_role_boundary:
    partner_only_role: paid_marketplace_publisher
    partner_forbidden_roles:
    - merchant_of_record
    - disclosed_collection_agent
    - service_seller
    - clinical_provider
    - pharmacy
    - prescriber
    - order_agent
    billing_and_seller_entities_must_be_chia_controlled_and_legal_approved: true
    chia_is_merchant_of_record: true
  individual_data_boundary:
    accepts_individual_identifiers: false
    returns_patient_order_clinical_prescription_fulfillment_shipment_or_outcome_data: false
  production_settlement_release_boundary:
    source: separate_append_only_finance_authored_release_store
    reads_live_activity: false
    derives_amount_or_status: false
    malformed_release_behavior: fail_closed
    corrections: append_new_revision_with_supersedes_id
    aggregate_count_requires_internal_threshold_and_composition_release: true
    minimum_group_size_floor: 10
    internal_privacy_proof_fields_are_public: false
    forbidden_projection_dimensions:
    - patient
    - order
    - payment_level
    - shipment
    - program
    - geography
    - event
    - date_row