Migrating
Coming from Route.
Paths, field names, and units match Route's Protect v2 contract, so in most cases you change the base URL and the credential and stop.
Migrating from Route to Covr
Paths, field names, and units match Route's Protect v2 contract, so in most cases you change the base URL and the credential and stop. These are the places we knowingly differ — worth reading before you cut over.
| Field | Type | Description |
|---|---|---|
| Error body | documented | Route never published one. Ours keeps error as a plain string so existing handlers work, and adds error_code and errors[] alongside. |
| Update semantics | merge | Route does not say whether updates merge or replace. Ours merges, except line_items, which replaces. |
| Cancel | stricter | An order or shipment with an open claim cannot be cancelled. Route does not document its behaviour here. |
| Currency | USD only | Non-USD is rejected rather than accepted and left unconverted. |
| Webhook signature headers | both | Sent as x-covr-signature* and, with identical values, x-route-signature* and legacy x-arrive-signature*. Existing verification code keeps working; only the JWKS URL changes. |
| Widget namespace | window.Covr | window.Route is deliberately not claimed, so both scripts can coexist during a migration. Method and event names are unchanged. |
| Widget toggle default | unchecked | Protection is opt-in. We do not offer a pre-checked default. |
| Claim assessment reason | null | Route publishes a ~55-value reason enum. Covr records that a rule fired, not which one, so this is null rather than invented. |
Two fields, one meaning
Route's guide returns insured_status while its API reference returns insured_selected. We return both, with the same value, so an integration written against either page works unchanged.