Skip to content

Preview. The API is shared with design partners and may change before launch. Register interest for sandbox access.

Offers

An offer is what the customer sees in the checkout: for each item in the cart, whether it can be covered, the plans available and their prices. Phew classifies every item automatically to decide this. Offers are valid for 30 minutes. A policy is always created from an offer, so the customer pays exactly the price they were shown.

POST api.getphew.com/v1/offers offers:write

Request body

currency string required
ISO 4217 code of the cart, for example NOK.
market string required

ISO 3166-1 country code of the customer’s market. Determines the product terms and language of the documents.

items array required

The items in the cart, up to 50.

reference string required
Your SKU or line ID. Unique within the offer.
name string required
Product name as shown to the customer.
category enum

Optional hint: bikes, sports, electronics or other. Phew always classifies each item itself, so you can leave this out.

price integer required
Unit price including taxes, in minor units.
quantity integer required
Number of units, 1 to 99. Each unit is covered separately.
brand string
Brand, if known. Improves classification.
condition enum
new (default) or refurbished.
locale string
BCP 47 locale for labels, for example nb-NO. Defaults to the market language.
embed object

Options for the iframe embed, such as appearance. Leave out if you don’t use it.

metadata object
Up to 20 key-value string pairs, returned unchanged. Don’t put personal data here.
Request
{
"currency": "NOK",
"market": "NO",
"items": [
{ "reference": "SKU-CBX-48", "name": "City Bike Explorer", "price": 499000, "quantity": 1 },
{ "reference": "SKU-LOCK-7", "name": "Frame lock", "price": 39900, "quantity": 1 }
]
}
Response 201
{
"id": "off_01JD7Q8S4M5W2X3Y4Z6A7B8C9D",
"object": "offer",
"currency": "NOK",
"market": "NO",
"created_at": "2026-10-23T13:42:09Z",
"expires_at": "2026-10-23T14:12:09Z",
"items": [
{
"reference": "SKU-CBX-48",
"eligible": true,
"classification": { "category": "bikes", "type": "city_bike" },
"plans": [
{ "id": "plan_12m", "label": "1 year", "term_months": 12, "premium": 8900 },
{ "id": "plan_36m", "label": "3 years", "term_months": 36, "premium": 29900 }
]
},
{
"reference": "SKU-LOCK-7",
"eligible": false,
"ineligible_reason": "category_not_covered",
"plans": []
}
],
"documents": {
"terms_url": "https://getphew.com/legal/terms/no-2026-10",
"ipid_url": "https://getphew.com/legal/ipid/no-2026-10"
},
"embed_url": "https://embed.getphew.com/o/off_01JD7Q8S4M5W2X3Y4Z6A7B8C9D?t=eyJ2Ijox...",
"metadata": {}
}
id string
Unique ID, prefixed off_.
expires_at timestamp
After this, policies can’t be created from the offer.
items[].eligible boolean
Whether the item can be covered. Only show plans for eligible items.
items[].classification object

How Phew classified the item: a category and a more specific type. For information only.

items[].ineligible_reason enum

category_not_covered, price_out_of_range, condition_not_covered or market_not_covered.

items[].plans array

Plans to offer, cheapest first. premium is per unit, including insurance premium tax.

documents object

terms_url and ipid_url. Link to both before the customer adds cover.

embed_url string

Signed URL that renders this offer in the iframe embed. Expires with the offer.

GET api.getphew.com/v1/offers/{id} offers:write

Returns the offer, including after it has expired.