Create a New Quote

quote.created

Overview of the quote.created webhook

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:

{
    "quote": "QUW6Z4TYTPOJDRTF5DJ7E2CVYAWA",
    "quoteName": "Quote for Company",
    "changed": 1751898709668,
    "changedInSeconds": 1751898709,
    "changedDisplay": "07/07/25",
    "changedTimeDisplay": "14:31:49 UTC",
    "type": "Assisted",
    "updatedBy": "null",
    "Reason": "Quote Created",
    "creator": "[email protected]",
    "quoteStatus": "OPEN",
    "language": "en",
    "quoteCurrency": "USD",
    "quoteUrl": "https://company.test.onfastspring.com/popup-defaultB2B/account/order/quote/QUW6Z4TYTPOJDRTF5DJ7E2CVYAWA",
    "live": true,
    "account": "abCdE1FGH2Hij3KLMnOpqR",
    "coupon": "TENOFF",
    "total": "60",
    "totalDisplay": "$60",
    "tax": 0,
    "taxDisplay": "$0.0",
    "taxType": "TAX",
    "subtotal": "60",
    "subtotalDisplay": "$60",
    "discount": "0",
    "discountDisplay": "$0",
    "recipient": {
        "first": "Jane",
        "last": "Doe",
        "email": "[email protected]",
        "company": "ABC Company",
        "phone": "5555555555",
        "taxID": null
    },
    "address": {
        "addressLine1": "801 Garden St",
        "city": "Santa Barbara",
        "region": "California",
        "postalCode": "93101",
        "country": "US",
        "display": "801 Garden St, Santa Barbara, California, 93101, US"
    },
    "fulfillmentSetting": "ON PAYMENT",
    "notes": "This is a Note",
    "tags": {},
    "items": [
    {
        "product": "Furious Falcon",
        "quantity": 4,
        "display": "Furious Falcon",
        "subtotal": 15,
        "subtotalDisplay": "$15.0",
        "discount": "0",
        "discountDisplay": "$0"
    }
    ]
}

Navigate this webhook

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.

Payload properties

All fields below are included in the quote.created webhook payload. Fields are grouped into categories for easier navigation.

<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>
Name Type Description