Quotes
Get All Quotes
GET https://api-b2b.bigcommerce.com/api/v3/io/rfqRequest
Retrieves basic information for all sales quotes in your store. Use the parameters to narrow your results, such as filtering by a date range or quotes from a specific Company account.
More detailed information, such as line items and shipping details, can be retrieved with the Get Quote Details endpoint.
Authentication
- authToken in header
Parameters
- offset in query with default of 0 - integerThe number of results to skip before returning the first result. If left blank, this defaults to
0
. - limit in query with default of 10 - integerDetermines the number of records to return per page. If left blank, this defaults to
10
. - sortBy in query with default of updatedAt - stringSorts results by Company name (
company
), quote status (status
), sales rep name (salesRep
), creation date (createdAt
), expiration date (expiredAt
), or last updated date (updatedAt
). It defaults to the last updated date if no parameter is provided.Allowed: company | status | salesRep | createdAt | expiredAt | updatedAt
- orderBy in query with default of desc - stringEstablish a descending or ascending order of results. The order defaults to descending if the parameter is not included.
Allowed: asc | desc
- q in query - stringEnter quote information to return partial and exact matches. Accepted information fields include quote number, quote title, Company name, assigned sales rep, and Company user first and last name.
- quoteNumber in query - stringEnter a full or partial quote number to retrieve relevant quotes.
- company in query - stringEnter a full or partial Company name to retrieve relevant quotes.
- salesRep in query - stringThe name of the sales rep assigned to the quote.
- status in query - integerThe backend status of the sales quote. Note that these are not the same as buyer-facing quote status. See Quote Statuses for more information.
Allowed: 0 | 2 | 3 | 4 | 5 | 6 | 7
- quoteTitle in query - stringThe external title given to the quote.
- createdBy in query - stringThe name of the sales rep or buyer who created the quote.
- maxCreated in query - integerEnter a Unix timestamp to retrieve all quotes created before that time.
- minCreated in query - integerEnter a Unix timestamp to retrieve all quotes created after that time.
- maxModified in query - integerEnter a Unix timestamp to retrieve all quotes modified before that time.
- minModified in query - integerEnter a Unix timestamp to retrieve all quotes modified after that time.
- maxExpired in query - integerEnter a Unix timestamp to retrieve all quotes that expired before that time.
- minExpired in query - integerEnter a Unix timestamp to retrieve all quotes that expired after that time.
- channelIds[] in query with default of 1 - arrayEnter one or more storefront channel IDs to retrieve quotes assigned to the storefront(s). Use 1 for your store’s default storefront channel. Separate channel IDs with a comma.Type: array[integer]
example
Response
OK
A 200 response has a body with information on all quotes based on the provided parameters. If there are no quotes that correspond to the provided parameter values, the endpoint still returns a 200 response, but the data
array is empty.
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Create a Quote
POST https://api-b2b.bigcommerce.com/api/v3/io/rfqRequest
Creates a new sales quote and automatically submits it to the assigned buyer.
While the B2B Edition control panel allows you to save a new quote as a draft without sending it to the buyer, quotes created with this endpoint are automatically visible in a Company user's Buyer Portal. However, you can give the allowCheckout
a value of false
to prevent the buyer from purchasing it immediately upon submission.
Custom Products
While you can create custom products from within a quote while creating or editing it in your B2B Edition control panel, you cannot create a custom product with this endpoint.
Create a custom product while creating or editing a quote in the B2B Edition control panel, or by using the Create a Product endpoint in the Catalog API. Obtain your newly-created product’s ID and add it to the productId
field of the Create a Quote request body to include it in the quote.
Minimum Required Fields
In order to create a sales quote, the request body must include the following fields. Fields marked with an asterisk are only required under specific conditions.
grandTotal
discount
subtotal
userEmail
expiredAt
contactInfo
name
email
companyId
*productList
sku
productId
basePrice
discount
offeredPrice
quantity
extraFields
fieldName
fieldValue
*channelId
*
The companyId
field is only required if you are linking a quote to a Company’s Buyer Portal. The companyName
field and email
fields will not link a quote to a particular Company or Company user without a corresponding companyId
.
The extraFields
array is only required if you have created Quote extra fields which are marked as required. To learn more about extra fields, see B2B Edition Settings (Help Center).
The channelId
field is required if you have multiple storefront channels. If you only have a single storefront, then you do not need to include it.
Authentication
- authToken in header
Body
subtotalnumber
requiredThe quoted total after discounts and before shipping and tax. If you are updating the line items or discounts on a quote, you must also update the subtotal to reflect the new pricing.Example: 1495channelIdinteger
The storefront channel ID associated with the quote. This is required if your store has multiple storefront channels. Use1
for your store’s default storefront channel.Default: 1
quoteTitlestring
The external title given to the quote.Example: Plates - Custom EtchingreferenceNumberstring
An identifier for the quote that can be supplied by the sales rep or the buyer, such as a Purchase Order number.Example: 03302025-0001currencyobject
extraFieldsarray[object]
Adds extra field information to the quote. This is required if your store has required quote extra fields. If you include the array in the request, you must include all of its fields.notesstring
The quote’s buyer-facing notes. Use the newline character
Example: Use the in-quote messaging system to contact us about products, pricing, or other quote information.discountnumber
requiredThe total value of discounts applied to the quote.Example: 20grandTotalnumber
requiredThe quoted total after discounts, shipping, and tax are applied. If you are updating the line items or discounts on a quote, you must also update the grand total to reflect the new pricing.Example: 1495legalTermsstring
The quote’s terms and conditions. Use the newline character
Example: Thank you for the opportunity to provide this quote! Please note the following: - Quotes are valid for 30 days unless otherwise stated. - Pricing is subject to change at any time.displayDiscountboolean
Determines if buyers can see quoted discount values in the Buyer Portal, or if they only see the quoted prices. If left blank, the quote uses the discount display selection in your Quote settings.allowCheckoutboolean
Determines whether or not the buyer can take the quote to the checkout page. If left blank, the quote uses the checkout selection in your Quote settings.productListarray[]
requiredLine item information for the quote. If you add this array to the request, you must include all existing line items that you want to keep in the quote.shippingAddressobject
contactInfoobject
This object contains the contact information for the buyer in the quote.userEmailstring
The email address of the quote’s sales rep.expiredAtstring
requiredThe date when the buyer can no longer purchase the quote. Use '%m/%d/%Y' format when entering the expiration date.Example: 04/19/2025totalAmountnumber
requiredThe total price of the quote after any discounts.Example: 1495companyIdinteger
The unique identifier for the Company account associated with the quote. This field is required when creating a quote for a Company account.Example: 111111
Minimum-required fields
All fields
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Get all B2B quote custom shipping methods
GET https://api-b2b.bigcommerce.com/api/v3/io/rfq/custom/shipping-methodsRequest
Authentication
- authToken in header
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataarray[object]
example
Send a Quote Email
POST https://api-b2b.bigcommerce.com/api/v3/io/rfq/emailsRequest
Sends an email to the buyer with information on a specific quote based on the provided quoteId
.
The email address in the email
field must correspond with the buyer’s email address on the quote. However, you can use the ccTo
field to include additional recipients.
Quote Email Templates
The request uses the emailTemplate
field to format the quote contents with one of the pre-built quote email templates. You must enter the exact name of the template in the field.
The following email templates can be used:
Simple
Simple with Pictures
Waves with Pictures
Database with checkout button
Modern with checkout link
Modern without checkout link
The selected template applies to the quote PDF if withAttach
is specified as true
.
Authentication
- authToken in header
Body
quoteIdstring
requiredThe internal numeric ID of the sales quote.Example: 12345emailstring
requiredThe recipient's email. This should match the buyer's email on the quote.withAttachboolean
requiredIndicates whether or not a quote PDF will be included with the email.Default: true
emailTemplatestring
requiredThe template used to format the quote email.Allowed: Simple | Simple with Pictures | Waves with Pictures | Sky | Dots | Database with checkout button | Modern with checkout link | Modern without checkout link
ccToarray[string]
The list of emails to CC.emailLangstring
The two-letter code for the language of the quote email and PDF, if included.Allowed: en | nl | de | fr | it | ja | zh | es
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Get Quote Extra Fields Configs
GET https://api-b2b.bigcommerce.com/api/v3/io/rfq/extra-fieldsRequest
Returns a list of available extra fields configs for sales quotes.
We recommend caching the response results to avoid frequent API requests.
Authentication
- authToken in header
Parameters
- offset in query with default of 0 - integerThe number of results to skip before returning the first result. If left blank, this defaults to
0
. - limit in query with default of 10 - integerDetermines the number of records to return per page. If left blank, this defaults to
10
.
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataarray[object]
example
Get Quote Details
GET https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}Request
Retrieves the full details of a specific quote based on the provided quote_id
.
This endpoint provides more detailed information about a specific quote than Get All Quotes. This includes line items, shipping address fields, and even a history of messages sent by the buyer and their sales representative.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
- date in query - stringrequiredThe date that the quote was created. Use %m/%d/%Y format.
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Update a Quote
PUT https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}Request
Updates an existing quote based on the details provided in the request body.
Before using this endpoint to update a quote, review the following considerations:
- None of the fields in the body are required for a successful response. This means that you can use this endpoint to update a single field or a subset of fields.
- When adding or updating line items, you must include all existing line items that you want to keep in the quote. Omitting existing line items from a quote will remove them from the quote when you send the request.
- If you add products or change discounts, you must also update the
grandTotal
andsubtotal
fields to reflect the new totals. - You cannot use this endpoint to change the sales rep or Company account assigned to an existing quote.
- To update a quote’s shipping rate, use the Select a Shipping Rate for a Quote endpoint.
See Create a Quote for experience- and setting-specific requirements related to adding custom shipping or non-purchasable products to a quote.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
Body
subtotalnumber
The quoted total after discounts and before shipping and tax. If you are updating the line items or discounts on a quote, you must also update the subtotal to reflect the new pricing.Example: 1495channelIdinteger
The storefront channel ID associated with the quote. This is required if your store has multiple storefront channels. Use1
for your store’s default storefront channel.Default: 1
quoteTitlestring
The external title given to the quote.Example: Plates - Custom EtchingreferenceNumberstring
An identifier for the quote that can be supplied by the sales rep or the buyer, such as a Purchase Order number.Example: 03302025-0001currencyobject
extraFieldsarray[object]
Adds extra field information to the quote. This is required if your store has required quote extra fields. If you include the array in the request, you must include all of its fields.notesstring
The quote’s buyer-facing notes. Use the newline character
Example: Use the in-quote messaging system to contact us about products, pricing, or other quote information.discountnumber
The total value of discounts applied to the quote.Example: 20grandTotalnumber
The quoted total after discounts, shipping, and tax are applied. If you are updating the line items or discounts on a quote, you must also update the grand total to reflect the new pricing.Example: 1495legalTermsstring
The quote’s terms and conditions. Use the newline character
Example: Thank you for the opportunity to provide this quote! Please note the following: - Quotes are valid for 30 days unless otherwise stated. - Pricing is subject to change at any time.displayDiscountboolean
Determines if buyers can see quoted discount values in the Buyer Portal, or if they only see the quoted prices. If left blank, the quote uses the discount display selection in your Quote settings.allowCheckoutboolean
Determines whether or not the buyer can take the quote to the checkout page. If left blank, the quote uses the checkout selection in your Quote settings.productListarray[]
Line item information for the quote. If you add this array to the request, you must include all existing line items that you want to keep in the quote.shippingAddressobject
contactInfoobject
This object contains the contact information for the buyer in the quote.userEmailstring
The email address of the quote’s sales rep.expiredAtstring
The date when the buyer can no longer purchase the quote. Use '%m/%d/%Y' format when entering the expiration date.Example: 04/19/2025
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Delete a Quote
DELETE https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}Request
Permanently deletes a specific quote based on the provided quote_id
.
If you want to hide a quote from a buyer without deleting it, you can archive the quote from the Quotes area of your B2B Edition control panel. See Managing Sales Quotes in B2B Edition (Help Center) for more information.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Generate Cart and Checkout URL for a Quote
POST https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/checkoutRequest
Generates a cart URL and a checkout URL for a specific quote based on the provided quote_id
.
You can only generate cart and checkout URLs for quotes in one of the following statuses:
- New (0)
- In Process (2)
- Updated by Customer (3)
This endpoint will generate a checkout link for a quote even if it is configured to hide the checkout button on the Buyer Portal. You can use this to create an alternate checkout flow for your sales quotes.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
Body
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Assign a Quote to a BigCommerce Order
POST https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/orderedRequest
Associates an existing BigCommerce order with a specific quote based on the provided quote_id
.
In order to assign a quote to an order, it must be in one of the following statuses:
- New (0)
- In Process (2)
- Updated by Customer (3)
When specifying the order to be associated with the quote, use its BigCommerce Order ID, not the B2B Edition Order ID.
This endpoint does not convert an unpurchased quote into a new BigCommerce order. You can manually convert a quote while editing it in your B2B Edition control panel.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
Body
orderIdstring
requiredThe B2B Edition internal order ID. Note that this is different from the BigCommerce order ID returned in thebcOrderId
field.Example: 112495
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Export a Quote PDF
POST https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/pdf-exportRequest
Creates a download link for a PDF with information on a specific quote based on the provided quoteId
.
The PDF does not use one of the buyer-facing templates that can be selected for PDFs and emails. Instead, it uses a non-configurable template that also communicates backend information, like storefront channel and line item cost margins.
You can optionally update the currency information and also supply a custom exchange rate by using the currency
array.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
Body
currencyobject
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Select a Shipping Rate for a Quote
PUT https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rateRequest
Adds a shipping method to a specific quote based on the provided quoteId
.
Use the Get Available Shipping Rates for a Quote or Get All B2B Quote Custom Shipping Methods endpoints to retrieve shipping method information that you can add to the quote.
The request body must include either the shippingMethodId
field to add a static or real-time shipping method, or the customShippingMethodName
and the customShippingMethodCost
fields to add a custom shipping method.
Note that the URL for this endpoint is https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rate, which is different from the URL for the Get Available Shipping Rates for a Quote endpoint (https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rates). Using the incorrect URL will result in a 405 - Method Not Allowed error.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
Body
shippingMethodIdstring
Shipping method ID. Cannot be used withcustomShippingMethodName
at the same time.customShippingMethodNamestring
Custom shipping method name. Cannot be used withshippingMethodId
at the same time.customShippingMethodCostnumber
Custom shipping method cost. Required when using custom shipping method.Min: 0
Static or real-time method
Custom method
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataobject
example
Remove Selected Shipping Rate from a Quote
DELETE https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rateRequest
Removes the current shipping method associated with a specific quote based on the provided quoteId
.
Note that the URL for this endpoint is https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rate, which is different from the URL for the Get Available Shipping Rates for a Quote endpoint (https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rates). Using the incorrect URL will result in a 405 - Method Not Allowed error.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
example
Response
Get Available Shipping Rates for a Quote
GET https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-ratesRequest
Retrieves all shipping rates available to a specific quote based on the provided quoteId
.
This endpoint only returns the static and real-time shipping methods available to a quote based on its product specifications and shipping address. Use the Get All B2B Quote Custom Shipping Methods endpoint to retrieve information on custom shipping methods.
Note that the URL for this endpoint is https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rates, which is different from the URL for the Select a Shipping Rate for a Quote and Remove Selected Shipping Rate from a Quote endpoints (https://api-b2b.bigcommerce.com/api/v3/io/rfq/{quote_id}/shipping-rate). Using the incorrect URL will result in a 405 - Method Not Allowed error.
Authentication
- authToken in header
Parameters
- quote_id in path - integerrequiredThe internal numeric ID of the sales quote.
example
Response
Body
codenumber
HTTP Response CodeDefault: 200
dataarray[object]