Chia Health · AsyncAPI Specification

Chia Partner Webhooks

Version 2.1.0

Outbound, partner- and environment-isolated, at-least-once synthetic webhook tests for endpoint.test, catalog.updated, and settlement_summary.finalized receiver shapes. Version 2.1 emits no live business event; production settlement releases are read only through the finance API. There are no patient, launch, eligibility, payment, order, prescription, fulfillment, shipment, refund, support, or outcome events.

View Spec View on GitHub CompanyTelehealthHealthcarePeptidesGLP-1Weight LossPartner APIMCPAsyncAPIEventsWebhooks

Channels

partnerWebhook
One exact HTTPS destination per environment, configured out of band. The POST /v2/webhook_tests caller cannot choose it.

Messages

✉
endpointTest
Endpoint test
Explicitly synthetic endpoint test with exact empty data.
✉
catalogUpdated
Catalog updated
Synthetic catalog-update receiver test; it must never invalidate a live cache.
✉
settlementSummaryFinalized
Settlement presentation finalized
Synthetic settlement-finalization receiver test; it must never trigger a finance refresh.

Servers

https
sandboxReceiver
The authenticated partner's separately registered sandbox receiver.
https
productionReceiver
The authenticated partner's separately registered production receiver.

AsyncAPI Specification

Raw ↑
{
  "asyncapi": "3.0.0",
  "info": {
    "title": "Chia Partner Webhooks",
    "version": "2.1.0",
    "description": "Outbound, partner- and environment-isolated, at-least-once synthetic webhook tests for endpoint.test, catalog.updated, and settlement_summary.finalized receiver shapes. Version 2.1 emits no live business event; production settlement releases are read only through the finance API. There are no patient, launch, eligibility, payment, order, prescription, fulfillment, shipment, refund, support, or outcome events.",
    "license": {
      "name": "Proprietary webhook contract"
    },
    "contact": {
      "name": "Named Chia integration support contact in the signed onboarding receipt"
    }
  },
  "defaultContentType": "application/json",
  "servers": {
    "sandboxReceiver": {
      "host": "{sandboxWebhookHost}",
      "protocol": "https",
      "description": "The authenticated partner's separately registered sandbox receiver.",
      "variables": {
        "sandboxWebhookHost": {
          "default": "hooks.sandbox.example-partner.invalid",
          "description": "Exact public-DNS host validated and registered out of band."
        }
      },
      "tags": [
        {
          "name": "sandbox"
        }
      ]
    },
    "productionReceiver": {
      "host": "{productionWebhookHost}",
      "protocol": "https",
      "description": "The authenticated partner's separately registered production receiver.",
      "variables": {
        "productionWebhookHost": {
          "default": "hooks.example-partner.invalid",
          "description": "Exact public-DNS host validated and registered out of band."
        }
      },
      "tags": [
        {
          "name": "production"
        }
      ]
    }
  },
  "channels": {
    "partnerWebhook": {
      "address": null,
      "title": "Registered partner webhook endpoint",
      "description": "One exact HTTPS destination per environment, configured out of band. The POST /v2/webhook_tests caller cannot choose it.",
      "servers": [
        {
          "$ref": "#/servers/sandboxReceiver"
        },
        {
          "$ref": "#/servers/productionReceiver"
        }
      ],
      "messages": {
        "endpointTest": {
          "$ref": "#/components/messages/endpointTest"
        },
        "catalogUpdated": {
          "$ref": "#/components/messages/catalogUpdated"
        },
        "settlementSummaryFinalized": {
          "$ref": "#/components/messages/settlementSummaryFinalized"
        }
      }
    }
  },
  "operations": {
    "sendPartnerWebhook": {
      "action": "send",
      "title": "Deliver an explicitly requested synthetic partner test",
      "summary": "POST the exact canonical test:true JSON body with a fresh environment-specific HMAC signature.",
      "channel": {
        "$ref": "#/channels/partnerWebhook"
      },
      "messages": [
        {
          "$ref": "#/channels/partnerWebhook/messages/endpointTest"
        },
        {
          "$ref": "#/channels/partnerWebhook/messages/catalogUpdated"
        },
        {
          "$ref": "#/channels/partnerWebhook/messages/settlementSummaryFinalized"
        }
      ],
      "bindings": {
        "http": {
          "method": "POST",
          "bindingVersion": "0.3.0"
        }
      }
    }
  },
  "components": {
    "correlationIds": {
      "webhookEventId": {
        "description": "Stable event identifier, unchanged across at-least-once retries.",
        "location": "$message.header#/Chia-Webhook-Id"
      }
    },
    "messages": {
      "endpointTest": {
        "name": "endpoint.test",
        "title": "Endpoint test",
        "summary": "Explicitly synthetic endpoint test with exact empty data.",
        "contentType": "application/json",
        "headers": {
          "$ref": "#/components/schemas/WebhookHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/EndpointTestEvent"
        },
        "correlationId": {
          "$ref": "#/components/correlationIds/webhookEventId"
        },
        "examples": [
          {
            "name": "sandbox",
            "summary": "Sandbox-signed endpoint test.",
            "headers": {
              "Chia-Webhook-Id": "evt_test_01K0N3A4B5C6D7E8F9G0H1J2K3",
              "Chia-Webhook-Timestamp": "1784732400",
              "Chia-Webhook-Signature": "v1=fdcc5eec535c9b22eec93eb7a064ef0606f96e70d2aafbb31e390c38bc321406",
              "Chia-Webhook-Type": "endpoint.test",
              "Chia-Version": "2026-07-22"
            },
            "payload": {
              "id": "evt_test_01K0N3A4B5C6D7E8F9G0H1J2K3",
              "object": "event",
              "type": "endpoint.test",
              "api_version": "2026-07-22",
              "created_at": "2026-07-22T15:00:00Z",
              "livemode": false,
              "test": true,
              "data": {}
            }
          },
          {
            "name": "synthetic-production",
            "summary": "Production-signed synthetic shape; test handler has no business side effect.",
            "headers": {
              "Chia-Webhook-Id": "evt_test_01K0P4A5B6C7D8E9F0G1H2J3K4",
              "Chia-Webhook-Timestamp": "1784732580",
              "Chia-Webhook-Signature": "v1=414a5b84a926d6c2bd3225ff28b456a87a16b723a80833ccc8b7c39cfd725603",
              "Chia-Webhook-Type": "endpoint.test",
              "Chia-Version": "2026-07-22"
            },
            "payload": {
              "id": "evt_test_01K0P4A5B6C7D8E9F0G1H2J3K4",
              "object": "event",
              "type": "endpoint.test",
              "api_version": "2026-07-22",
              "created_at": "2026-07-22T15:03:00Z",
              "livemode": true,
              "test": true,
              "data": {}
            }
          }
        ],
        "x-chia-receiver-order": [
          "verify_timestamp",
          "verify_single_v1_signature_against_active_or_retiring_secret_constant_time",
          "deduplicate_event_id",
          "branch_on_test",
          "parse_business_data"
        ],
        "x-chia-test-events-have-no-business-side-effects": true
      },
      "catalogUpdated": {
        "name": "catalog.updated",
        "title": "Catalog updated",
        "summary": "Synthetic catalog-update receiver test; it must never invalidate a live cache.",
        "contentType": "application/json",
        "headers": {
          "$ref": "#/components/schemas/WebhookHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/CatalogUpdatedEvent"
        },
        "correlationId": {
          "$ref": "#/components/correlationIds/webhookEventId"
        },
        "examples": [
          {
            "name": "synthetic",
            "summary": "Fixture-only test; receiver must not invalidate a live cache.",
            "headers": {
              "Chia-Webhook-Id": "evt_test_01K0N4A5B6C7D8E9F0G1H2J3K4",
              "Chia-Webhook-Timestamp": "1784732460",
              "Chia-Webhook-Signature": "v1=2942ddbb4a55568eb0c29f1dca87eb7bf71ebd3d7c00d690b629c7e926508c82",
              "Chia-Webhook-Type": "catalog.updated",
              "Chia-Version": "2026-07-22"
            },
            "payload": {
              "id": "evt_test_01K0N4A5B6C7D8E9F0G1H2J3K4",
              "object": "event",
              "type": "catalog.updated",
              "api_version": "2026-07-22",
              "created_at": "2026-07-22T15:01:00Z",
              "livemode": false,
              "test": true,
              "data": {
                "catalog_version": "cav_test_01K0N4B5C6D7E8F9G0H1J2K3M4",
                "required_action": "invalidate_and_refetch",
                "effective_at": "2026-07-22T15:01:00Z"
              }
            }
          },
          {
            "name": "synthetic-production",
            "summary": "Production-signed synthetic catalog test; receiver must not invalidate a live cache.",
            "headers": {
              "Chia-Webhook-Id": "evt_test_01K0P5A6B7C8D9E0F1G2H3J4K5",
              "Chia-Webhook-Timestamp": "1784732640",
              "Chia-Webhook-Signature": "v1=ccbc09bea1611e8593f03d6efb49c67554f65e60e6f1721d9b3f593f36f02b6f",
              "Chia-Webhook-Type": "catalog.updated",
              "Chia-Version": "2026-07-22"
            },
            "payload": {
              "id": "evt_test_01K0P5A6B7C8D9E0F1G2H3J4K5",
              "object": "event",
              "type": "catalog.updated",
              "api_version": "2026-07-22",
              "created_at": "2026-07-22T15:04:00Z",
              "livemode": true,
              "test": true,
              "data": {
                "catalog_version": "cav_test_01K0P5B6C7D8E9F0G1H2J3K4M5",
                "required_action": "invalidate_and_refetch",
                "effective_at": "2026-07-22T15:04:00Z"
              }
            }
          }
        ],
        "x-chia-receiver-order": [
          "verify_timestamp",
          "verify_single_v1_signature_against_active_or_retiring_secret_constant_time",
          "deduplicate_event_id",
          "branch_on_test",
          "parse_business_data"
        ],
        "x-chia-test-events-have-no-business-side-effects": true
      },
      "settlementSummaryFinalized": {
        "name": "settlement_summary.finalized",
        "title": "Settlement presentation finalized",
        "summary": "Synthetic settlement-finalization receiver test; it must never trigger a finance refresh.",
        "contentType": "application/json",
        "headers": {
          "$ref": "#/components/schemas/WebhookHeaders"
        },
        "payload": {
          "$ref": "#/components/schemas/SettlementSummaryFinalizedEvent"
        },
        "correlationId": {
          "$ref": "#/components/correlationIds/webhookEventId"
        },
        "examples": [
          {
            "name": "sandbox",
            "summary": "Sandbox synthetic test; receiver must not fetch finance data.",
            "headers": {
              "Chia-Webhook-Id": "evt_test_01K0S6A7B8C9D0E1F2G3H4J5K6",
              "Chia-Webhook-Timestamp": "1786148040",
              "Chia-Webhook-Signature": "v1=1ad208d999fa3212fd89e4d91bbc772a78bc8af1364696363cb1dd1a22474423",
              "Chia-Webhook-Type": "settlement_summary.finalized",
              "Chia-Version": "2026-07-22"
            },
            "payload": {
              "id": "evt_test_01K0S6A7B8C9D0E1F2G3H4J5K6",
              "object": "event",
              "type": "settlement_summary.finalized",
              "api_version": "2026-07-22",
              "created_at": "2026-08-08T00:14:00Z",
              "livemode": false,
              "test": true,
              "data": {
                "summary_id": "set_test_01K0S6B7C8D9E0F1G2H3J4K5M6",
                "period": {
                  "start": "2026-07-01",
                  "end": "2026-08-01",
                  "timezone": "UTC"
                }
              }
            }
          },
          {
            "name": "synthetic-production",
            "summary": "Production-signed synthetic settlement test; receiver must not fetch finance data.",
            "headers": {
              "Chia-Webhook-Id": "evt_test_01K0P7A8B9C0D1E2F3G4H5J6K7",
              "Chia-Webhook-Timestamp": "1786148160",
              "Chia-Webhook-Signature": "v1=699ea2e34410c2fa0bb5c3f9916e27bd7751acd38a80ca4fcea3bca89eeb8152",
              "Chia-Webhook-Type": "settlement_summary.finalized",
              "Chia-Version": "2026-07-22"
            },
            "payload": {
              "id": "evt_test_01K0P7A8B9C0D1E2F3G4H5J6K7",
              "object": "event",
              "type": "settlement_summary.finalized",
              "api_version": "2026-07-22",
              "created_at": "2026-08-08T00:16:00Z",
              "livemode": true,
              "test": true,
              "data": {
                "summary_id": "set_test_01K0P7B8C9D0E1F2G3H4J5K6M7",
                "period": {
                  "start": "2026-07-01",
                  "end": "2026-08-01",
                  "timezone": "UTC"
                }
              }
            }
          }
        ],
        "x-chia-receiver-order": [
          "verify_timestamp",
          "verify_single_v1_signature_against_active_or_retiring_secret_constant_time",
          "deduplicate_event_id",
          "branch_on_test",
          "parse_business_data"
        ],
        "x-chia-test-events-have-no-business-side-effects": true
      }
    },
    "schemas": {
      "WebhookHeaders": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Chia-Webhook-Id",
          "Chia-Webhook-Timestamp",
          "Chia-Webhook-Signature",
          "Chia-Webhook-Type",
          "Chia-Version"
        ],
        "properties": {
          "Chia-Webhook-Id": {
            "type": "string",
            "pattern": "^evt_test_[A-Za-z0-9]{8,64}$"
          },
          "Chia-Webhook-Timestamp": {
            "type": "string",
            "pattern": "^[0-9]{10}$"
          },
          "Chia-Webhook-Signature": {
            "type": "string",
            "pattern": "^v1=[a-f0-9]{64}$"
          },
          "Chia-Webhook-Type": {
            "enum": [
              "endpoint.test",
              "catalog.updated",
              "settlement_summary.finalized"
            ]
          },
          "Chia-Version": {
            "const": "2026-07-22"
          }
        }
      },
      "EmptyData": {
        "type": "object",
        "additionalProperties": false,
        "required": [],
        "properties": {}
      },
      "CatalogUpdatedData": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "catalog_version",
          "required_action",
          "effective_at"
        ],
        "properties": {
          "catalog_version": {
            "type": "string",
            "pattern": "^cav_test_[A-Za-z0-9]{8,64}$"
          },
          "required_action": {
            "const": "invalidate_and_refetch"
          },
          "effective_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SettlementSummaryFinalizedData": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "summary_id",
          "period"
        ],
        "properties": {
          "summary_id": {
            "type": "string",
            "pattern": "^set_test_[A-Za-z0-9]{8,64}$"
          },
          "period": {
            "$ref": "#/components/schemas/Period"
          }
        }
      },
      "Period": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "start",
          "end",
          "timezone"
        ],
        "properties": {
          "start": {
            "type": "string",
            "format": "date"
          },
          "end": {
            "type": "string",
            "format": "date"
          },
          "timezone": {
            "const": "UTC"
          }
        }
      },
      "EndpointTestEvent": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "object",
          "type",
          "api_version",
          "created_at",
          "livemode",
          "test",
          "data"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_test_[A-Za-z0-9]{8,64}$"
          },
          "object": {
            "const": "event"
          },
          "type": {
            "const": "endpoint.test"
          },
          "api_version": {
            "const": "2026-07-22"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "test": {
            "const": true
          },
          "data": {
            "$ref": "#/components/schemas/EmptyData"
          }
        }
      },
      "CatalogUpdatedEvent": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "object",
          "type",
          "api_version",
          "created_at",
          "livemode",
          "test",
          "data"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_test_[A-Za-z0-9]{8,64}$"
          },
          "object": {
            "const": "event"
          },
          "type": {
            "const": "catalog.updated"
          },
          "api_version": {
            "const": "2026-07-22"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "test": {
            "const": true
          },
          "data": {
            "$ref": "#/components/schemas/CatalogUpdatedData"
          }
        }
      },
      "SettlementSummaryFinalizedEvent": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "object",
          "type",
          "api_version",
          "created_at",
          "livemode",
          "test",
          "data"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^evt_test_[A-Za-z0-9]{8,64}$"
          },
          "object": {
            "const": "event"
          },
          "type": {
            "const": "settlement_summary.finalized"
          },
          "api_version": {
            "const": "2026-07-22"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "test": {
            "const": true
          },
          "data": {
            "$ref": "#/components/schemas/SettlementSummaryFinalizedData"
          }
        }
      }
    }
  },
  "x-chia-signature-contract": {
    "version": 1,
    "algorithm": "HMAC-SHA256",
    "signed_input": "<Chia-Webhook-Timestamp>.<exact_raw_request_body>",
    "signature_header": "Chia-Webhook-Signature",
    "signature_value": "v1=<lowercase_hex_digest>",
    "sender_signature_count": 1,
    "sender_signature_value": "v1=<active_lowercase_hex_digest>",
    "timestamp_header": "Chia-Webhook-Timestamp",
    "default_tolerance_seconds": 300,
    "verification": "Verify the timestamp and single v1 signature in constant time against the exact raw body before parsing. During coordinated rotation, the receiver may compare that one signature against the active and one retiring secret; the sender still emits exactly one signature.",
    "secrets": {
      "sandbox_prefix": "whsec_test_",
      "production_prefix": "whsec_live_",
      "environment_isolation_required": true
    }
  },
  "x-chia-delivery-contract": {
    "delivery": "at_least_once",
    "success_statuses": "200-299",
    "redirects_followed": false,
    "retry_body_and_event_id_stable": true,
    "retry_signature_timestamp_fresh": true,
    "retry_window_hours": {
      "sandbox": 24,
      "production": 24
    },
    "emission_mode": "synthetic_test_only",
    "live_business_events_enabled": false,
    "response_body_discarded": true,
    "destination": "One exact, pre-registered, public-DNS HTTPS endpoint per environment; no credentials, query, fragment, redirect, private/link-local/loopback address, or caller-selected URL.",
    "test_guard": "After signature verification and before business parsing, test=true must enter a no-business-side-effect handler."
  },
  "x-chia-exact-event-types": [
    "endpoint.test",
    "catalog.updated",
    "settlement_summary.finalized"
  ],
  "x-chia-signature-test-vectors": "../examples/webhook-signature-test-vectors.json"
}

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/chia-health-partner-webhooks-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.