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

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.

FieldTypeDescription
Error bodydocumentedRoute never published one. Ours keeps error as a plain string so existing handlers work, and adds error_code and errors[] alongside.
Update semanticsmergeRoute does not say whether updates merge or replace. Ours merges, except line_items, which replaces.
CancelstricterAn order or shipment with an open claim cannot be cancelled. Route does not document its behaviour here.
CurrencyUSD onlyNon-USD is rejected rather than accepted and left unconverted.
Webhook signature headersbothSent as x-arrive-signature* and, with identical values, x-route-signature*. Existing verification code keeps working; only the JWKS URL changes.
Widget namespacewindow.Arrivewindow.Route is deliberately not claimed, so both scripts can coexist during a migration. Method and event names are unchanged.
Widget toggle defaultuncheckedProtection is opt-in. We do not offer a pre-checked default.
Claim assessment reasonnullRoute publishes a ~55-value reason enum. Arrive 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.