Products & Pricing
Get Product Pricing
Get localized pricing for a specific product.
GET
Intro
Returns a Khaime catalog product’s price converted to the customer’s detected or specified currency, including fee breakdown, available payment methods, and any active regional price adjustment.The path is singular —
/product/{product_id}/pricing, not /products/{product_id}/pricing.Context
This is the product-based counterpart to Calculate Pricing, which does the same conversion for an arbitrary amount without a catalog product. Use this endpoint to render a localized price on a product page; use Calculate Pricing when you already know the amount (e.g. cart total) and just need conversion. Thelocal.amount this returns is exactly what you’d pass as amount on Create Payment Intent for this product.
Hows
Path parameters
integer
required
The Khaime product ID.
Query parameters
string
Override auto-detected currency. 3-letter ISO code (e.g.,
NGN).string
Override auto-detected customer country. 2-letter ISO code (e.g.,
NG). When omitted, the country is derived from the payment currency (e.g., NGN → NG), with IP geolocation as a fallback. Only needed for ambiguous currencies like USD.Response
Price discrimination (regional pricing)
If the merchant has configured a regional pricing rule for the customer’s country, theprice_discrimination field is included in the response. The adjustment is applied to the base price before currency conversion, so pricing.local already reflects the discriminated amount.
When no rule is active for the customer’s country, price_discrimination is null.
Error codes
Whys
Pricing is resolved per-product (rather than requiring you to fetch the catalog price and call Calculate Pricing yourself) because product pricing can carry a regional discrimination rule the generic conversion endpoint has no way to know about — this endpoint applies that adjustment before conversion so the returnedlocal.amount is ready to charge as-is.
Why nots
- The path is
/product/{id}/pricing, singular — it is easy to guess wrong from List Products’ plural/productsand get a 404. - This does not create a charge or reserve the price — it’s a read-only quote. Rates can drift between this call and an actual Create Payment Intent request; the intent endpoint uses the product’s live catalog price at charge time, not a value you pass back in from here.
- Fee details are not returned here — this endpoint reports price and available payment methods, not a
fee_detailsbreakdown. Use Create Charge’spreviewmode for that.
