{
"id": "evt_2a6f0c9d71e3",
"type": "group.market_rates_ready",
"createdAt": "2026-06-10T17:21:44Z",
"mode": "test",
"data": {
"groupId": "grp_8c2f41d09a3e",
"planCount": 14,
"pricedAt": "2026-06-10T17:21:43Z"
}
}Groupmarket rates ready
The census-triggered market comparison finished and the group can be quoted. Call POST /groups/{groupId}/quotes now instead of polling through 409 rates_pending.
Delivered as POST to your registered endpoint with webhook-id, webhook-timestamp, and webhook-signature headers (standard-webhooks scheme). Verify the signature before trusting the payload. Stored before delivery and retried on failure for about two days with the same event id (backoff 1m, 5m, 30m, 2h, 6h, 12h, 24h). Missed events are listed by GET /events.
{
"id": "evt_2a6f0c9d71e3",
"type": "group.market_rates_ready",
"createdAt": "2026-06-10T17:21:44Z",
"mode": "test",
"data": {
"groupId": "grp_8c2f41d09a3e",
"planCount": 14,
"pricedAt": "2026-06-10T17:21:43Z"
}
}Authorizations
Partner API key. psk_test_<32 hex> for test mode, psk_live_<32 hex> for live mode. Store them in your secrets manager on issue. Live keys are shown once; the scoped partner portal can show an active sandbox key again.
Body
Event ID. Also sent as the webhook-id header and part of the signed content.
"evt_9b21c7e4f60a"
ping, quote.finalized, enrollment.created, group.state_changed, census.processed, group.market_rates_ready, group.market_rates_failed test, live Event-specific payload.
Show child attributes
Show child attributes
Response
Return any 2xx quickly (under 10 seconds) to acknowledge. Non-2xx responses are retried.