When a quote.created event is triggered, FastSpring sends a webhook payload containing details about the newly created quote. This webhook fires only when you create a quote in the FastSpring app and does not apply to Interactive Quotes.
This page provides:
A full sample payload showing a populated quote.created webhook
A detailed table listing every payload property, including name, type, and description
Notes on when this webhook is triggered and which fields appear based on Webhook Expansion
Browse the table sections below or use the quick links to jump to a specific group of fields.
Tip: Not all fields are always included. Refer to the Payload properties table to understand when a field appears.
Webhook payload example (expansion enabled)
When a quote.created event is triggered, the webhook sends the following JSON payload:
The quote.created webhook payload includes key fields describing quote details, pricing, timestamps, and recipient information. Use the cards below to jump to a specific section of the property reference.
All fields below are included in the quote.created webhook payload. Fields are grouped into categories for easier navigation.
Name
Type
Description
<tr id="quote-details" style={{ borderTop: "4px solid #ddd" }}>
<td colSpan="3" style={{ paddingTop: "4px", fontWeight: "600" }}>
<a href="#navigate-this-webhook">Quote details</a>
</td>
</tr>
<tr><td>quote</td><td>string</td><td>Unique identifier for the quote</td></tr>
<tr><td>quoteName</td><td>string</td><td>Display name or label for the quote</td></tr>
<tr><td>type</td><td>string</td><td>Quote type, e.g., <code>Assisted</code></td></tr>
<tr><td>updatedBy</td><td>string</td><td>Email of the user who last updated the quote (may be the literal string <code>"null"</code>)</td></tr>
<tr><td>Reason</td><td>string</td><td>Reason associated with creation or update</td></tr>
<tr><td>creator</td><td>string</td><td>Email address of the user who created the quote</td></tr>
<tr><td>quoteStatus</td><td>string</td><td>Current status of the quote, e.g., <code>OPEN</code></td></tr>
<tr><td>language</td><td>string</td><td>Two-letter ISO language code</td></tr>
<tr><td>quoteCurrency</td><td>string</td><td>Three-letter ISO currency code</td></tr>
<tr><td>quoteUrl</td><td>string</td><td>URL to view or share the quote</td></tr>
<tr><td>live</td><td>boolean</td><td>Whether the quote is in live mode</td></tr>
<tr><td>account</td><td>string</td><td>Account identifier associated with the quote</td></tr>
<tr><td>coupon</td><td>string</td><td>Applied coupon code, if any</td></tr>
<tr><td>fulfillmentSetting</td><td>string</td><td>When fulfillment occurs, e.g., <code>ON PAYMENT</code></td></tr>
<tr><td>notes</td><td>string</td><td>Internal note text</td></tr>
<tr><td>tags</td><td>object</td><td>Custom tag metadata (key-value map)</td></tr>
<tr id="timestamps" style={{ borderTop: "4px solid #ddd" }}>
<td colSpan="3" style={{ paddingTop: "4px", fontWeight: "600" }}>
<a href="#navigate-this-webhook">Timestamps</a>
</td>
</tr>
<tr><td>changed</td><td>number</td><td>Last modification time in milliseconds</td></tr>
<tr><td>changedInSeconds</td><td>number</td><td>Last modification time in seconds</td></tr>
<tr><td>changedDisplay</td><td>string</td><td>Date display of last change</td></tr>
<tr><td>changedTimeDisplay</td><td>string</td><td>Time display of last change with timezone</td></tr>
<tr id="recipient-object" style={{ borderTop: "4px solid #ddd" }}>
<td colSpan="3" style={{ paddingTop: "4px", fontWeight: "600" }}>
<a href="#navigate-this-webhook">Recipient Object</a>
</td>
</tr>
<tr><td>recipient.first</td><td>string</td><td>Recipient first name</td></tr>
<tr><td>recipient.last</td><td>string</td><td>Recipient last name</td></tr>
<tr><td>recipient.email</td><td>string</td><td>Recipient email address</td></tr>
<tr><td>recipient.company</td><td>string</td><td>Recipient company</td></tr>
<tr><td>recipient.phone</td><td>string</td><td>Recipient phone number</td></tr>
<tr><td>recipient.taxID</td><td>null</td><td>Recipient tax ID when provided</td></tr>
<tr id="address-object" style={{ borderTop: "4px solid #ddd" }}>
<td colSpan="3" style={{ paddingTop: "4px", fontWeight: "600" }}>
<a href="#navigate-this-webhook">Address Object</a>
</td>
</tr>
<tr><td>address.addressLine1</td><td>string</td><td>Primary street address line</td></tr>
<tr><td>address.city</td><td>string</td><td>City</td></tr>
<tr><td>address.region</td><td>string</td><td>Region or state</td></tr>
<tr><td>address.postalCode</td><td>string</td><td>Postal or ZIP code</td></tr>
<tr><td>address.country</td><td>string</td><td>Two-letter ISO country code</td></tr>
<tr><td>address.display</td><td>string</td><td>Formatted full address display</td></tr>
<tr id="pricing" style={{ borderTop: "4px solid #ddd" }}>
<td colSpan="3" style={{ paddingTop: "4px", fontWeight: "600" }}>
<a href="#navigate-this-webhook">Pricing</a>
</td>
</tr>
<tr><td>total</td><td>string</td><td>Total amount for the quote (numeric string)</td></tr>
<tr><td>totalDisplay</td><td>string</td><td>Formatted total amount</td></tr>
<tr><td>tax</td><td>number</td><td>Tax amount</td></tr>
<tr><td>taxDisplay</td><td>string</td><td>Formatted tax amount</td></tr>
<tr><td>taxType</td><td>string</td><td>Applied tax type, e.g., <code>TAX</code></td></tr>
<tr><td>subtotal</td><td>string</td><td>Subtotal before discounts and tax (numeric string)</td></tr>
<tr><td>subtotalDisplay</td><td>string</td><td>Formatted subtotal</td></tr>
<tr><td>discount</td><td>string</td><td>Total discount (numeric string)</td></tr>
<tr><td>discountDisplay</td><td>string</td><td>Formatted discount</td></tr>
<tr id="items-array" style={{ borderTop: "4px solid #ddd" }}>
<td colSpan="3" style={{ paddingTop: "4px", fontWeight: "600" }}>
<a href="#navigate-this-webhook">Items Array</a>
</td>
</tr>
<tr><td>items</td><td>array</td><td>List of quoted items</td></tr>
<tr><td>items.product</td><td>string</td><td>Product name or identifier</td></tr>
<tr><td>items.quantity</td><td>number</td><td>Quantity quoted for the product</td></tr>
<tr><td>items.display</td><td>string</td><td>Customer-facing product name</td></tr>
<tr><td>items.subtotal</td><td>number</td><td>Item subtotal amount</td></tr>
<tr><td>items.subtotalDisplay</td><td>string</td><td>Formatted item subtotal</td></tr>
<tr><td>items.discount</td><td>string</td><td>Item discount (numeric string)</td></tr>
<tr><td>items.discountDisplay</td><td>string</td><td>Formatted item discount</td></tr>