Stripe · Schema
Quote
A Quote is a way to model prices that you'd like to provide to a customer. Once accepted, it will automatically create an invoice, subscription or subscription schedule.
CommerceFinancial ServicesFintechPaymentsT1StripeAgentic CommercePoint-of-SalePayment Processing
Properties
| Name | Type | Description |
|---|---|---|
| amount_subtotal | integer | Total before any discounts or taxes are applied. |
| amount_total | integer | Total after discounts and taxes are applied. |
| application | object | ID of the Connect Application that created the quote. |
| application_fee_amount | integernull | The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Only applicable if there are no line items wit |
| application_fee_percent | numbernull | A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe a |
| automatic_tax | object | |
| collection_method | string | Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment met |
| computed | object | |
| created | integer | Time at which the object was created. Measured in seconds since the Unix epoch. |
| currency | stringnull | Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). |
| customer | object | The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed. |
| default_tax_rates | array | The tax rates applied to this quote. |
| description | stringnull | A description that will be displayed on the quote PDF. |
| discounts | array | The discounts applied to this quote. |
| expires_at | integer | The date on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. |
| footer | stringnull | A footer that will be displayed on the quote PDF. |
| from_quote | object | Details of the quote that was cloned. See the [cloning documentation](https://stripe.com/docs/quotes/clone) for more details. |
| header | stringnull | A header that will be displayed on the quote PDF. |
| id | string | Unique identifier for the object. |
| invoice | object | The invoice that was created from this quote. |
| invoice_settings | object | |
| line_items | object | A list of items the customer is being quoted for. |
| livemode | boolean | Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. |
| metadata | object | Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. |
| number | stringnull | A unique number that identifies this particular quote. This number is assigned once the quote is [finalized](https://stripe.com/docs/quotes/overview#finalize). |
| object | string | String representing the object's type. Objects of the same type share the same value. |
| on_behalf_of | object | The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details. |
| status | string | The status of the quote. |
| status_transitions | object | |
| subscription | object | The subscription that was created or updated from this quote. |
| subscription_data | object | |
| subscription_schedule | object | The subscription schedule that was created or updated from this quote. |
| test_clock | object | ID of the test clock this quote belongs to. |
| total_details | object | |
| transfer_data | object | The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-quote-schema.json",
"title": "Quote",
"description": "A Quote is a way to model prices that you'd like to provide to a customer.\nOnce accepted, it will automatically create an invoice, subscription or subscription schedule.",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/stripe-quotes-api-openapi.yml#/components/schemas/quote",
"properties": {
"amount_subtotal": {
"description": "Total before any discounts or taxes are applied.",
"type": "integer"
},
"amount_total": {
"description": "Total after discounts and taxes are applied.",
"type": "integer"
},
"application": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/application"
},
{
"$ref": "#/$defs/deleted_application"
}
],
"description": "ID of the Connect Application that created the quote.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/application"
},
{
"$ref": "#/$defs/deleted_application"
}
]
}
},
"application_fee_amount": {
"description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Only applicable if there are no line items with recurring prices on the quote.",
"type": [
"integer",
"null"
]
},
"application_fee_percent": {
"description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. Only applicable if there are line items with recurring prices on the quote.",
"type": [
"number",
"null"
]
},
"automatic_tax": {
"$ref": "#/$defs/quotes_resource_automatic_tax"
},
"collection_method": {
"description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.",
"enum": [
"charge_automatically",
"send_invoice"
],
"type": "string"
},
"computed": {
"$ref": "#/$defs/quotes_resource_computed"
},
"created": {
"description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
"format": "unix-time",
"type": "integer"
},
"currency": {
"description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
"maxLength": 5000,
"type": [
"string",
"null"
]
},
"customer": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/customer"
},
{
"$ref": "#/$defs/deleted_customer"
}
],
"description": "The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/customer"
},
{
"$ref": "#/$defs/deleted_customer"
}
]
}
},
"default_tax_rates": {
"description": "The tax rates applied to this quote.",
"items": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/tax_rate"
}
],
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/tax_rate"
}
]
}
},
"type": "array"
},
"description": {
"description": "A description that will be displayed on the quote PDF.",
"maxLength": 5000,
"type": [
"string",
"null"
]
},
"discounts": {
"description": "The discounts applied to this quote.",
"items": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/discount"
}
],
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/discount"
}
]
}
},
"type": "array"
},
"expires_at": {
"description": "The date on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch.",
"format": "unix-time",
"type": "integer"
},
"footer": {
"description": "A footer that will be displayed on the quote PDF.",
"maxLength": 5000,
"type": [
"string",
"null"
]
},
"from_quote": {
"anyOf": [
{
"$ref": "#/$defs/quotes_resource_from_quote"
}
],
"description": "Details of the quote that was cloned. See the [cloning documentation](https://stripe.com/docs/quotes/clone) for more details."
},
"header": {
"description": "A header that will be displayed on the quote PDF.",
"maxLength": 5000,
"type": [
"string",
"null"
]
},
"id": {
"description": "Unique identifier for the object.",
"maxLength": 5000,
"type": "string"
},
"invoice": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/invoice"
},
{
"$ref": "#/$defs/deleted_invoice"
}
],
"description": "The invoice that was created from this quote.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/invoice"
},
{
"$ref": "#/$defs/deleted_invoice"
}
]
}
},
"invoice_settings": {
"$ref": "#/$defs/invoice_setting_quote_setting"
},
"line_items": {
"description": "A list of items the customer is being quoted for.",
"properties": {
"data": {
"description": "Details about each object.",
"items": {
"$ref": "#/$defs/item"
},
"type": "array"
},
"has_more": {
"description": "True if this list has another page of items after this one that can be fetched.",
"type": "boolean"
},
"object": {
"description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
"enum": [
"list"
],
"type": "string"
},
"url": {
"description": "The URL where this list can be accessed.",
"maxLength": 5000,
"type": "string"
}
},
"required": [
"data",
"has_more",
"object",
"url"
],
"title": "QuotesResourceListLineItems",
"type": "object",
"x-expandableFields": [
"data"
]
},
"livemode": {
"description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
"type": "boolean"
},
"metadata": {
"additionalProperties": {
"maxLength": 500,
"type": "string"
},
"description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
"type": "object"
},
"number": {
"description": "A unique number that identifies this particular quote. This number is assigned once the quote is [finalized](https://stripe.com/docs/quotes/overview#finalize).",
"maxLength": 5000,
"type": [
"string",
"null"
]
},
"object": {
"description": "String representing the object's type. Objects of the same type share the same value.",
"enum": [
"quote"
],
"type": "string"
},
"on_behalf_of": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/account"
}
],
"description": "The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/account"
}
]
}
},
"status": {
"description": "The status of the quote.",
"enum": [
"accepted",
"canceled",
"draft",
"open"
],
"type": "string",
"x-stripeBypassValidation": true
},
"status_transitions": {
"$ref": "#/$defs/quotes_resource_status_transitions"
},
"subscription": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/subscription"
}
],
"description": "The subscription that was created or updated from this quote.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/subscription"
}
]
}
},
"subscription_data": {
"$ref": "#/$defs/quotes_resource_subscription_data_subscription_data"
},
"subscription_schedule": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/subscription_schedule"
}
],
"description": "The subscription schedule that was created or updated from this quote.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/subscription_schedule"
}
]
}
},
"test_clock": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"$ref": "#/$defs/test_helpers.test_clock"
}
],
"description": "ID of the test clock this quote belongs to.",
"x-expansionResources": {
"oneOf": [
{
"$ref": "#/$defs/test_helpers.test_clock"
}
]
}
},
"total_details": {
"$ref": "#/$defs/quotes_resource_total_details"
},
"transfer_data": {
"anyOf": [
{
"$ref": "#/$defs/quotes_resource_transfer_data"
}
],
"description": "The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices."
}
},
"required": [
"amount_subtotal",
"amount_total",
"automatic_tax",
"collection_method",
"computed",
"created",
"discounts",
"expires_at",
"id",
"invoice_settings",
"livemode",
"metadata",
"object",
"status",
"status_transitions",
"subscription_data",
"total_details"
],
"type": "object",
"x-expandableFields": [
"application",
"automatic_tax",
"computed",
"customer",
"default_tax_rates",
"discounts",
"from_quote",
"invoice",
"invoice_settings",
"line_items",
"on_behalf_of",
"status_transitions",
"subscription",
"subscription_data",
"subscription_schedule",
"test_clock",
"total_details",
"transfer_data"
],
"x-resourceId": "quote",
"$defs": {
"account": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"application": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"customer": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"deleted_application": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"deleted_customer": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"deleted_invoice": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"discount": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"invoice": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"invoice_setting_quote_setting": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"item": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_automatic_tax": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_computed": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_from_quote": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_status_transitions": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_subscription_data_subscription_data": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_total_details": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"quotes_resource_transfer_data": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"subscription": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"subscription_schedule": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"tax_rate": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
},
"test_helpers.test_clock": {
"type": "object",
"description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.",
"x-ae-placeholder": true
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/stripe-quote"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.