When creating a Shipment, include an 'extra' object inside the Parcel with 'insurance' sub-object specifying 'amount', 'currency', 'content', and 'provider' set to 'SHIPPO' (for XCover third-party coverage)
POST to /v1/shipments; the rate response will include an insurance line item reflecting the XCover premium for each qualifying service
Purchase the chosen rate via POST to /v1/transactions; the insurance policy is automatically bound when the label is purchased
For carrier-provided insurance instead of XCover, set 'provider' to 'CARRIER' in the insurance object — rates and claim processes differ significantly from XCover
Retain the transaction ID and the policy confirmation from the response metadata; you will need them when filing a claim through Shippo support
Known gotchas
Shippo's third-party insurance is underwritten by XCover (CoverGenius); coverage terms, exclusions, and claims filing processes are governed by XCover, not Shippo
Insurance must be added at shipment creation time via the Parcel extras; you cannot add insurance retroactively after a label has been purchased
Carrier-provided insurance has different coverage limits and filing deadlines than XCover — USPS, for example, only covers up to their per-service declared value cap
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp