Create Payment Quote
Prices a purchase the way a payment for it will be charged, for a buyer located by the shipping address, then the billing address, then the IP address you pass. The body is the PaymentInput a payment takes plus where the buyer is (address, shipping_address, tax_ids, ip_address); a seller that collects no tax on the purchase can be quoted without them. The purchase is priced from exactly what you send: no buyer is looked up, so no stored registration or purchase history applies. A quote is priced once, in the plans’ own currency, and expires at expires_at.
Authorizations
An Account API key, an App API key, an account access token, an account-scoped user token, or a user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.
Headers
A unique key that makes this request safe to retry. See Idempotent requests.
255"d9105228-4a08-46b1-8b91-42fed586d383"
Pins the request to a dated API version.
"2026-09-29"
Body
The purchase: the account it belongs to, what is bought, and the promo code applied. The same shape prices a purchase and pays for it.
The account the purchase belongs to, prefixed biz_.
"biz_xxxxxxxxxxxxxx"
What the buyer is purchasing. One entry charges that variant; several entries form a cart, which requires every variant to be compatible, belong to this account, and use the same currency.
1 - 50 elementsThe variant purchased, described by its attributes instead of an id: the variant with exactly these attributes is used, and one is created when none exists. Mutually exclusive with plan_id and line_items. Creating a variant requires plan:create; creating or updating a product requires the corresponding product permission.
The variant purchased, prefixed plan_. It must belong to the account. Mutually exclusive with plan and line_items.
"plan_xxxxxxxxxxxxxx"
The promo code as the buyer typed it, matched within the account regardless of case and surrounding spaces, as checkout matches it. It must be valid for the variant. Send it or promo_code_id, not both; an empty or whitespace-only string counts as not sent. A code the account does not have, or one that is no longer active, is refused before anything is written, with the error code promo_invalid.
"SHINE20"
An active promo code to apply, prefixed promo_. It must belong to the account and be valid for the variant. Send it or promo_code, not both.
"promo_xxxxxxxxxxxxxx"
The buyer's billing address. Where tax is calculated when no shipping address is given, and the address a tax registration belongs to. A seller that collects tax on this purchase needs the buyer located: provide a country here, on shipping_address, or an ip_address. Only the keys you supply are kept.
The buyer's IP address, when your server makes the call on their behalf. Locates the buyer when neither address carries a country. A quote located this way is an estimate (located_by is ip_address): quote again with the buyer's address.
"203.0.113.7"
Where physical goods ship. When present it is where tax is calculated; omit it for digital goods. Only the keys you supply are kept.
The buyer's tax registration, for a business purchase. One entry. Prices the purchase as business-to-business where that applies (EU reverse charge, for one) and requires an address to belong to.
1Response
payment quote priced
The account the purchase is priced for, prefixed biz_.
"biz_xxxxxxxxxxxxxx"
The billing address the purchase was priced with, or null. Where tax was calculated when no shipping address was given, and the address the registration belongs to.
When the quote was priced, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
ISO currency the purchase is priced and charged in, lowercase — the variants' own currency.
"usd"
What the promo code takes off. Zero without a code.
When the quote stops being chargeable, as an ISO 8601 timestamp. Quote again after it.
"2026-01-01T12:00:00.000Z"
Payment quote ID, prefixed pq_.
"pq_xxxxxxxxxxxxxx"
Which location tax was calculated for: shipping_address when it carries a country, else the billing address when it does, else the buyer's ip_address. A quote located by ip_address is an estimate: quote again with the buyer's address. Null when nothing in the request located the buyer, which only a seller that collects no tax on this purchase is quoted without; tax_status is then not_applicable.
shipping_address, address, ip_address, null "address"
The promo code the quote applied, prefixed promo_, or null.
null
The shipping address the purchase was priced with, or null. When present it is where tax was calculated.
The price of every line before the promo code, tax and fees.
The tax owed on the purchase. Zero unless tax_status is calculated.
Whether tax is added on top of the price (exclusive) or already inside it (inclusive). Null when no tax was calculated.
inclusive, exclusive, null "exclusive"
calculated: every line was priced. not_applicable: this seller collects no tax on this purchase, so the quote owes none. unavailable: tax could not be priced — the provider did not answer, or this seller's tax setup cannot price a purchase here; quote again.
calculated, not_applicable, unavailable "calculated"
What the buyer pays: the subtotal less the discount, plus tax_amount when tax is added on top.

