Create Payment Quote
Changed onPrices 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. Quote what you are about to charge and pass the quote's id as quote_id when you create the payment: it then charges exactly the purchase, promo code and tax shown here. A quote is priced once, in the plans' own currency or the presentment_currency you ask for, and may be consumed by one payment before expires_at.
Request
- Base URL: https://api.whop.com/api/v1
- URL: https://api.whop.com/api/v1/payment_quotes
- Auth: HTTP bearer
Headers
A unique key that makes this request safe to retry. See Idempotent requests.
Request body
Example request
{
"account_id": "biz_xxxxxxxxxxxxxx",
"line_items": [
{
"plan_id": "plan_xxxxxxxxxxxxxx",
"quantity": 1
}
],
"plan": {
"application_fee_amount": 2,
"currency": "usd",
"initial_price": 31,
"override_tax_type": "inclusive",
"plan_type": "one_time",
"product": {
"collect_shipping_address": true,
"custom_statement_descriptor": "WHOP*INLINE",
"description": "Quoted, then sent with the payment.",
"external_identifier": "quoted-again",
"global_affiliate_status": "enabled",
"headline": "Product headline",
"redirect_purchase_url": "https://example.com/thanks",
"title": "Quoted again",
"visibility": "visible"
},
"product_id": "prod_xxxxxxxxxxxxxx",
"visibility": "visible"
},
"plan_id": "plan_xxxxxxxxxxxxxx",
"promo_code": "SHINE20",
"promo_code_id": "promo_xxxxxxxxxxxxxx",
"address": {
"city": "Austin",
"country": "US",
"line1": "1114 Bouldin Ave",
"line2": "Unit B",
"name": "Dana Whitfield",
"postal_code": "78704",
"state": "TX"
},
"ip_address": "203.0.113.7",
"presentment_currency": "auto",
"tax_ids": [
{
"type": "eu_vat",
"value": "DE123456789"
}
]
}Response
payment quote priced
Example response
{
"account_id": "biz_xxxxxxxxxxxxxx",
"address": {
"city": "Austin",
"country": "US",
"line1": "1114 Bouldin Ave",
"line2": "Unit B",
"name": "Dana Whitfield",
"postal_code": "78704",
"state": "TX"
},
"base_currency": "usd",
"base_total": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"created_at": "2026-01-01T12:00:00.000Z",
"currency": "usd",
"discount": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"exchange_rate": "0.918",
"expires_at": "2026-01-01T12:00:00.000Z",
"id": "pq_xxxxxxxxxxxxxx",
"line_items": [
{
"discount": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"plan_id": "plan_xxxxxxxxxxxxxx",
"quantity": 1,
"subtotal": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"tax_amount": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"total": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
}
}
],
"located_by": "address",
"payment_id": "pay_xxxxxxxxxxxxxx",
"recommended_currencies": [
"usd"
],
"shipping_address": {
"city": "Austin",
"country": "US",
"line1": "1114 Bouldin Ave",
"line2": "Unit B",
"name": "Dana Whitfield",
"postal_code": "78704",
"state": "TX"
},
"subtotal": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"tax_amount": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"tax_behavior": "exclusive",
"tax_ids": [
{
"type": "us_ein",
"value": "12-3456789"
}
],
"tax_status": "calculated",
"total": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
}
}Changes
- info
added the new optional request property
/ - info
added the required property
to the response with the status - info
added the required property
to the response with the status - info
added the required property
to the response with the status - info
added the required property
to the response with the status
- info
- info
endpoint added
- info