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.

POSTapi.getphew.com/v1/offersoffers:write

Request body

currencystringrequired
ISO 4217 code of the cart, for example NOK.
marketstringrequired

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

itemsarrayrequired

The items in the cart, up to 50.

referencestringrequired
Your SKU or line ID. Unique within the offer.
namestringrequired
Product name as shown to the customer.
categoryenum

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

priceintegerrequired
Unit price including taxes, in minor units.
quantityintegerrequired
Number of units, 1 to 99. Each unit is covered separately.
brandstring
Brand, if known. Improves classification.
conditionenum
new (default) or refurbished.
localestring
BCP 47 locale for labels, for example nb-NO. Defaults to the market language.
embedobject

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

metadataobject
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": {}
}
idstring
Unique ID, prefixed off_.
expires_attimestamp
After this, policies can’t be created from the offer.
items[].eligibleboolean
Whether the item can be covered. Only show plans for eligible items.
items[].classificationobject

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

items[].ineligible_reasonenum

category_not_covered, price_out_of_range, condition_not_covered or market_not_covered.

items[].plansarray

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

documentsobject

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

embed_urlstring

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

GETapi.getphew.com/v1/offers/{id}offers:write

Returns the offer, including after it has expired.