> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# Create Quote

POST https://api-b2b.bigcommerce.com/api/v3/io/rfq
Content-Type: application/json

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](https://support.bigcommerce.com/s/article/B2B-Edition-Quotes) a quote in the B2B Edition control panel, or by using the [Create a Product](/developer/api-reference/rest/admin/catalog/products/create-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 an existing Company account. The `companyName` and `email` fields under `contactInfo` cannot be used to link a quote to a particular Company account or user.

The optional `bcCustomerId` field links a quote to an existing registered non-company customer account. If both `companyId` and `bcCustomerId` are provided, `companyId` takes precedence. If neither is provided, the quote is created as a guest quote.

The `contactInfo` object is display-only metadata. Customer association is determined solely by `bcCustomerId` and `companyId`; `contactInfo.email` and `userEmail` are not used to look up or validate the customer record.

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.

Reference: https://docs.bigcommerce.com/developer/api-reference/rest/b2b/management/quotes/post-rfq

## Authentication

- `X-Auth-Token` header (required) — | Header | Argument | Description | |:-------|:---------|:------------| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts). | For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
- `X-Store-Hash` header (required) — | Header | Argument | Description | |:-------|:---------|:------------| | `X-Store-Hash` | `store_hash` | The unique store hash associated with a BigCommerce store that has B2B Edition enabled. |

## Request

### Body (application/json)

This endpoint expects a quoteData_POST.

- `productList` (list of QuoteDataPostProductListItems, required)
- `totalAmount` (double, required) — The total price of the quote after any discounts.
- `allowCheckout` (boolean, optional) — 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.
- `bcCustomerId` (integer, optional) — The BigCommerce customer ID to link the quote to a registered non-company customer account. Ignored when `companyId` is also provided. Returns a 404 error if the customer ID does not exist.
- `channelId` (integer, optional, default: 1) — The storefront channel ID associated with the quote. This is required if your store has multiple storefront channels. Use `1` for your store’s default storefront channel.
- `companyId` (integer, optional) — The unique identifier for the Company account associated with the quote. This field is required when creating a quote for a Company account. If the company ID does not exist, the API returns a 404 error.
- `contactInfo` (QuoteDataPostContactInfo, optional)
- `currency` (QuoteDataPutPostCurrency, optional)
- `discount` (double, optional) — The total value of discounts applied to the quote.
- `displayDiscount` (boolean, optional) — 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.
- `expiredAt` (string, optional) — The date when the buyer can no longer purchase the quote. Use '%m/%d/%Y' format when entering the expiration date.
- `extraFields` (QuoteDataPostExtraFields, optional)
- `grandTotal` (double, optional) — 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.
- `legalTerms` (string, optional) — The quote’s terms and conditions. Use the newline character ` ` to separate each line of text. Omitting this field or leaving it blank does not add your store’s default terms and conditions to the quote. Instead, the quote will not display any terms.
- `message` (string, optional) — A message sent to the buyer via the in-quote messaging system.
- `notes` (string, optional) — The quote’s buyer-facing notes. Use the newline character ` ` to separate each line of text.
- `quoteTitle` (string, optional) — The external title given to the quote.
- `referenceNumber` (string, optional) — An identifier for the quote that can be supplied by the sales rep or the buyer, such as a Purchase Order number.
- `shippingAddress` (QuoteDataPostShippingAddress, optional)
- `subtotal` (double, optional) — 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.
- `userEmail` (string, optional) — The email address of the quote’s sales rep. Any user email found within the B2B Edition System Users menu is considered a valid value for this field. This field is optional. If left blank, it will default to the store owner's email address as shown in the B2B Edition System Users menu.

## Response

### 200

OK

- `code` (double, optional) — HTTP Response Code
- `data` (quote_PUT_POST, optional)
- `meta` (RfqPostResponsesContentApplicationJsonSchemaMeta, optional)

## Errors

### 404 Not Found Error

Not Found The 404 error occurs when the `bcCustomerId` or `companyId` provided in the request body does not match an existing customer or Company account.

- `code` (double, optional) — HTTP Response Code
- `data` (ResponseErrorData, optional)
- `meta` (ResponseErrorMeta, optional)

### 422 Unprocessable Entity Error

Missing or Invalid Data The 422 error occurs if any of the fields are not formatted correctly. Check the detailed error message to determine which field is affected and what must be corrected.

- `code` (double, optional) — HTTP Response Code
- `data` (ResponseErrorData, optional)
- `meta` (ResponseErrorMeta, optional)

## Types

### QuoteDataPostProductListItems

- `options` (QuoteDataPostProductListItemsOptions, optional)

### QuoteDataPostContactInfo

### QuoteDataPutPostCurrency

- `token` (string, optional) — The currency symbol.
- `location` (enum, optional) — Determines whether the currency symbol is added to the left or the right of quote pricing.
  - Allowed values: `left`, `right`
- `currencyCode` (string, optional) — The three-letter code corresponding to the quote’s currency.
- `decimalToken` (string, optional) — The character used to separate decimal values in quote pricing.
- `decimalPlaces` (integer, optional) — The number of decimal places displayed in quote pricing. You can display a maximum of 4 decimal places.
- `thousandsToken` (string, optional) — The character used to separate the hundredths and thousandths places in quote pricing.
- `currencyExchangeRate` (double, optional) — Overrides the built-in exchange rate between your store’s default currency and the quote’s selected currency. If left blank, the exchange rate defined in your store’s settings is used.

### QuoteDataPostExtraFields

### QuoteDataPostShippingAddress

### quote_PUT_POST

- `quoteId` (integer, optional) — The internal numeric ID of the sales quote.
- `quoteUrl` (string, optional) — The storefront URL for the quote.

### RfqPostResponsesContentApplicationJsonSchemaMeta

- `message` (string, optional)

### ResponseErrorData

- `errMsg` (string, optional)

### ResponseErrorMeta

- `message` (string, optional)

### QuoteDataPostProductListItemsOptions

## Examples

### Minimum-required fields

**Request**

```json
{
  "productList": [
    {
      "basePrice": 25,
      "discount": 5,
      "offeredPrice": 20,
      "productId": 12345,
      "quantity": 50,
      "sku": "SAN-PL"
    }
  ],
  "totalAmount": 1495,
  "channelId": 1,
  "contactInfo": {
    "email": "mcurie@greatbuysinc.com",
    "name": "Marie Curie"
  },
  "discount": 0,
  "expiredAt": "05/07/2025",
  "grandTotal": 1000,
  "subtotal": 1000,
  "userEmail": "hero@mybcstore.com"
}
```

**Response**

```json
{
  "code": 1.1,
  "data": {
    "quoteId": 123456,
    "quoteUrl": "https://mybcstore.com/quote/?id=195&date=1622618606"
  },
  "meta": {
    "message": "string"
  }
}
```

**SDK Code**

```python Minimum-required fields
import requests

url = "https://api-b2b.bigcommerce.com/api/v3/io/rfq"

payload = {
    "productList": [
        {
            "basePrice": 25,
            "discount": 5,
            "offeredPrice": 20,
            "productId": 12345,
            "quantity": 50,
            "sku": "SAN-PL"
        }
    ],
    "totalAmount": 1495,
    "channelId": 1,
    "contactInfo": {
        "email": "mcurie@greatbuysinc.com",
        "name": "Marie Curie"
    },
    "discount": 0,
    "expiredAt": "05/07/2025",
    "grandTotal": 1000,
    "subtotal": 1000,
    "userEmail": "hero@mybcstore.com"
}
headers = {
    "X-Auth-Token": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Minimum-required fields
const url = 'https://api-b2b.bigcommerce.com/api/v3/io/rfq';
const options = {
  method: 'POST',
  headers: {'X-Auth-Token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"productList":[{"basePrice":25,"discount":5,"offeredPrice":20,"productId":12345,"quantity":50,"sku":"SAN-PL"}],"totalAmount":1495,"channelId":1,"contactInfo":{"email":"mcurie@greatbuysinc.com","name":"Marie Curie"},"discount":0,"expiredAt":"05/07/2025","grandTotal":1000,"subtotal":1000,"userEmail":"hero@mybcstore.com"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Minimum-required fields
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api-b2b.bigcommerce.com/api/v3/io/rfq"

	payload := strings.NewReader("{\n  \"productList\": [\n    {\n      \"basePrice\": 25,\n      \"discount\": 5,\n      \"offeredPrice\": 20,\n      \"productId\": 12345,\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\"\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"channelId\": 1,\n  \"contactInfo\": {\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\"\n  },\n  \"discount\": 0,\n  \"expiredAt\": \"05/07/2025\",\n  \"grandTotal\": 1000,\n  \"subtotal\": 1000,\n  \"userEmail\": \"hero@mybcstore.com\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-Auth-Token", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Minimum-required fields
require 'uri'
require 'net/http'

url = URI("https://api-b2b.bigcommerce.com/api/v3/io/rfq")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Auth-Token"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"productList\": [\n    {\n      \"basePrice\": 25,\n      \"discount\": 5,\n      \"offeredPrice\": 20,\n      \"productId\": 12345,\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\"\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"channelId\": 1,\n  \"contactInfo\": {\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\"\n  },\n  \"discount\": 0,\n  \"expiredAt\": \"05/07/2025\",\n  \"grandTotal\": 1000,\n  \"subtotal\": 1000,\n  \"userEmail\": \"hero@mybcstore.com\"\n}"

response = http.request(request)
puts response.read_body
```

```java Minimum-required fields
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api-b2b.bigcommerce.com/api/v3/io/rfq")
  .header("X-Auth-Token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"productList\": [\n    {\n      \"basePrice\": 25,\n      \"discount\": 5,\n      \"offeredPrice\": 20,\n      \"productId\": 12345,\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\"\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"channelId\": 1,\n  \"contactInfo\": {\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\"\n  },\n  \"discount\": 0,\n  \"expiredAt\": \"05/07/2025\",\n  \"grandTotal\": 1000,\n  \"subtotal\": 1000,\n  \"userEmail\": \"hero@mybcstore.com\"\n}")
  .asString();
```

```php Minimum-required fields
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api-b2b.bigcommerce.com/api/v3/io/rfq', [
  'body' => '{
  "productList": [
    {
      "basePrice": 25,
      "discount": 5,
      "offeredPrice": 20,
      "productId": 12345,
      "quantity": 50,
      "sku": "SAN-PL"
    }
  ],
  "totalAmount": 1495,
  "channelId": 1,
  "contactInfo": {
    "email": "mcurie@greatbuysinc.com",
    "name": "Marie Curie"
  },
  "discount": 0,
  "expiredAt": "05/07/2025",
  "grandTotal": 1000,
  "subtotal": 1000,
  "userEmail": "hero@mybcstore.com"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'X-Auth-Token' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Minimum-required fields
using RestSharp;

var client = new RestClient("https://api-b2b.bigcommerce.com/api/v3/io/rfq");
var request = new RestRequest(Method.POST);
request.AddHeader("X-Auth-Token", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"productList\": [\n    {\n      \"basePrice\": 25,\n      \"discount\": 5,\n      \"offeredPrice\": 20,\n      \"productId\": 12345,\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\"\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"channelId\": 1,\n  \"contactInfo\": {\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\"\n  },\n  \"discount\": 0,\n  \"expiredAt\": \"05/07/2025\",\n  \"grandTotal\": 1000,\n  \"subtotal\": 1000,\n  \"userEmail\": \"hero@mybcstore.com\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Minimum-required fields
import Foundation

let headers = [
  "X-Auth-Token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "productList": [
    [
      "basePrice": 25,
      "discount": 5,
      "offeredPrice": 20,
      "productId": 12345,
      "quantity": 50,
      "sku": "SAN-PL"
    ]
  ],
  "totalAmount": 1495,
  "channelId": 1,
  "contactInfo": [
    "email": "mcurie@greatbuysinc.com",
    "name": "Marie Curie"
  ],
  "discount": 0,
  "expiredAt": "05/07/2025",
  "grandTotal": 1000,
  "subtotal": 1000,
  "userEmail": "hero@mybcstore.com"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-b2b.bigcommerce.com/api/v3/io/rfq")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### All fields

**Request**

```json
{
  "productList": [
    {
      "options": [],
      "basePrice": 25,
      "discount": 20,
      "imageUrl": "https://mybcstore.com/sansiveria.jpg",
      "offeredPrice": 20,
      "orderQuantityMaximum": 0,
      "orderQuantityMinimum": 0,
      "productId": 54321,
      "productName": "Sansiveria Plant",
      "quantity": 50,
      "sku": "SAN-PL",
      "variantId": 12345
    },
    {
      "options": [
        {
          "optionId": 1234,
          "optionLabel": "Ocean",
          "optionName": "Color",
          "optionValue": 98765
        }
      ],
      "basePrice": 55,
      "discount": 10,
      "imageUrl": "https://mybcstore.com/ocean-planter.jpg",
      "offeredPrice": 49.5,
      "productId": 63261,
      "productName": "The Planter by Rustic Roots",
      "quantity": 10,
      "sku": "CER-POT-2-GR",
      "variantId": 54321
    }
  ],
  "totalAmount": 1495,
  "allowCheckout": true,
  "bcCustomerId": 98765,
  "channelId": 1,
  "companyId": 11111111,
  "contactInfo": {
    "companyName": "Great Buys Incorporated",
    "email": "mcurie@greatbuysinc.com",
    "name": "Marie Curie",
    "phoneNumber": "512-200-1234"
  },
  "currency": {
    "token": "$",
    "location": "left",
    "currencyCode": "USD",
    "decimalToken": ".",
    "decimalPlaces": 2,
    "thousandsToken": ","
  },
  "discount": 0,
  "displayDiscount": false,
  "expiredAt": "05/07/2025",
  "extraFields": {
    "fieldName": "I want a sales representative to call me at the provided phone number.",
    "fieldValue": "Yes"
  },
  "grandTotal": 1495,
  "legalTerms": "Thank you for the opportunity to provide this quote! Please note the following:\n - Quotes are valid for 30 days unless otherwise stated.\n - Pricing is subject to change at any time.\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.",
  "message": "Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.",
  "notes": "Use the in-quote messaging system to contact us about products, pricing, or other quote information.",
  "quoteTitle": "Plant and Planter Bulk Order",
  "referenceNumber": "03302025-0001",
  "shippingAddress": {
    "address": "512 Bluebonnet Lane",
    "apartment": "Building 100",
    "city": "Austin",
    "country": "United States",
    "state": "Texas",
    "zipCode": "78704"
  },
  "subtotal": 1495,
  "userEmail": "hero@mybcstore.com"
}
```

**Response**

```json
{
  "code": 1.1,
  "data": {
    "quoteId": 123456,
    "quoteUrl": "https://mybcstore.com/quote/?id=195&date=1622618606"
  },
  "meta": {
    "message": "string"
  }
}
```

**SDK Code**

```python All fields
import requests

url = "https://api-b2b.bigcommerce.com/api/v3/io/rfq"

payload = {
    "productList": [
        {
            "options": [],
            "basePrice": 25,
            "discount": 20,
            "imageUrl": "https://mybcstore.com/sansiveria.jpg",
            "offeredPrice": 20,
            "orderQuantityMaximum": 0,
            "orderQuantityMinimum": 0,
            "productId": 54321,
            "productName": "Sansiveria Plant",
            "quantity": 50,
            "sku": "SAN-PL",
            "variantId": 12345
        },
        {
            "options": [
                {
                    "optionId": 1234,
                    "optionLabel": "Ocean",
                    "optionName": "Color",
                    "optionValue": 98765
                }
            ],
            "basePrice": 55,
            "discount": 10,
            "imageUrl": "https://mybcstore.com/ocean-planter.jpg",
            "offeredPrice": 49.5,
            "productId": 63261,
            "productName": "The Planter by Rustic Roots",
            "quantity": 10,
            "sku": "CER-POT-2-GR",
            "variantId": 54321
        }
    ],
    "totalAmount": 1495,
    "allowCheckout": True,
    "bcCustomerId": 98765,
    "channelId": 1,
    "companyId": 11111111,
    "contactInfo": {
        "companyName": "Great Buys Incorporated",
        "email": "mcurie@greatbuysinc.com",
        "name": "Marie Curie",
        "phoneNumber": "512-200-1234"
    },
    "currency": {
        "token": "$",
        "location": "left",
        "currencyCode": "USD",
        "decimalToken": ".",
        "decimalPlaces": 2,
        "thousandsToken": ","
    },
    "discount": 0,
    "displayDiscount": False,
    "expiredAt": "05/07/2025",
    "extraFields": {
        "fieldName": "I want a sales representative to call me at the provided phone number.",
        "fieldValue": "Yes"
    },
    "grandTotal": 1495,
    "legalTerms": "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.
 - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.
 - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.
 - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.",
    "message": "Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.",
    "notes": "Use the in-quote messaging system to contact us about products, pricing, or other quote information.",
    "quoteTitle": "Plant and Planter Bulk Order",
    "referenceNumber": "03302025-0001",
    "shippingAddress": {
        "address": "512 Bluebonnet Lane",
        "apartment": "Building 100",
        "city": "Austin",
        "country": "United States",
        "state": "Texas",
        "zipCode": "78704"
    },
    "subtotal": 1495,
    "userEmail": "hero@mybcstore.com"
}
headers = {
    "X-Auth-Token": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript All fields
const url = 'https://api-b2b.bigcommerce.com/api/v3/io/rfq';
const options = {
  method: 'POST',
  headers: {'X-Auth-Token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"productList":[{"options":[],"basePrice":25,"discount":20,"imageUrl":"https://mybcstore.com/sansiveria.jpg","offeredPrice":20,"orderQuantityMaximum":0,"orderQuantityMinimum":0,"productId":54321,"productName":"Sansiveria Plant","quantity":50,"sku":"SAN-PL","variantId":12345},{"options":[{"optionId":1234,"optionLabel":"Ocean","optionName":"Color","optionValue":98765}],"basePrice":55,"discount":10,"imageUrl":"https://mybcstore.com/ocean-planter.jpg","offeredPrice":49.5,"productId":63261,"productName":"The Planter by Rustic Roots","quantity":10,"sku":"CER-POT-2-GR","variantId":54321}],"totalAmount":1495,"allowCheckout":true,"bcCustomerId":98765,"channelId":1,"companyId":11111111,"contactInfo":{"companyName":"Great Buys Incorporated","email":"mcurie@greatbuysinc.com","name":"Marie Curie","phoneNumber":"512-200-1234"},"currency":{"token":"$","location":"left","currencyCode":"USD","decimalToken":".","decimalPlaces":2,"thousandsToken":","},"discount":0,"displayDiscount":false,"expiredAt":"05/07/2025","extraFields":{"fieldName":"I want a sales representative to call me at the provided phone number.","fieldValue":"Yes"},"grandTotal":1495,"legalTerms":"Thank you for the opportunity to provide this quote! Please note the following:\n - Quotes are valid for 30 days unless otherwise stated.\n - Pricing is subject to change at any time.\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.","message":"Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don\'t hesitate to reach out with any questions.","notes":"Use the in-quote messaging system to contact us about products, pricing, or other quote information.","quoteTitle":"Plant and Planter Bulk Order","referenceNumber":"03302025-0001","shippingAddress":{"address":"512 Bluebonnet Lane","apartment":"Building 100","city":"Austin","country":"United States","state":"Texas","zipCode":"78704"},"subtotal":1495,"userEmail":"hero@mybcstore.com"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go All fields
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api-b2b.bigcommerce.com/api/v3/io/rfq"

	payload := strings.NewReader("{\n  \"productList\": [\n    {\n      \"options\": [],\n      \"basePrice\": 25,\n      \"discount\": 20,\n      \"imageUrl\": \"https://mybcstore.com/sansiveria.jpg\",\n      \"offeredPrice\": 20,\n      \"orderQuantityMaximum\": 0,\n      \"orderQuantityMinimum\": 0,\n      \"productId\": 54321,\n      \"productName\": \"Sansiveria Plant\",\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\",\n      \"variantId\": 12345\n    },\n    {\n      \"options\": [\n        {\n          \"optionId\": 1234,\n          \"optionLabel\": \"Ocean\",\n          \"optionName\": \"Color\",\n          \"optionValue\": 98765\n        }\n      ],\n      \"basePrice\": 55,\n      \"discount\": 10,\n      \"imageUrl\": \"https://mybcstore.com/ocean-planter.jpg\",\n      \"offeredPrice\": 49.5,\n      \"productId\": 63261,\n      \"productName\": \"The Planter by Rustic Roots\",\n      \"quantity\": 10,\n      \"sku\": \"CER-POT-2-GR\",\n      \"variantId\": 54321\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"allowCheckout\": true,\n  \"bcCustomerId\": 98765,\n  \"channelId\": 1,\n  \"companyId\": 11111111,\n  \"contactInfo\": {\n    \"companyName\": \"Great Buys Incorporated\",\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\",\n    \"phoneNumber\": \"512-200-1234\"\n  },\n  \"currency\": {\n    \"token\": \"$\",\n    \"location\": \"left\",\n    \"currencyCode\": \"USD\",\n    \"decimalToken\": \".\",\n    \"decimalPlaces\": 2,\n    \"thousandsToken\": \",\"\n  },\n  \"discount\": 0,\n  \"displayDiscount\": false,\n  \"expiredAt\": \"05/07/2025\",\n  \"extraFields\": {\n    \"fieldName\": \"I want a sales representative to call me at the provided phone number.\",\n    \"fieldValue\": \"Yes\"\n  },\n  \"grandTotal\": 1495,\n  \"legalTerms\": \"Thank you for the opportunity to provide this quote! Please note the following:\\n - Quotes are valid for 30 days unless otherwise stated.\\n - Pricing is subject to change at any time.\\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.\",\n  \"message\": \"Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.\",\n  \"notes\": \"Use the in-quote messaging system to contact us about products, pricing, or other quote information.\",\n  \"quoteTitle\": \"Plant and Planter Bulk Order\",\n  \"referenceNumber\": \"03302025-0001\",\n  \"shippingAddress\": {\n    \"address\": \"512 Bluebonnet Lane\",\n    \"apartment\": \"Building 100\",\n    \"city\": \"Austin\",\n    \"country\": \"United States\",\n    \"state\": \"Texas\",\n    \"zipCode\": \"78704\"\n  },\n  \"subtotal\": 1495,\n  \"userEmail\": \"hero@mybcstore.com\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-Auth-Token", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby All fields
require 'uri'
require 'net/http'

url = URI("https://api-b2b.bigcommerce.com/api/v3/io/rfq")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Auth-Token"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"productList\": [\n    {\n      \"options\": [],\n      \"basePrice\": 25,\n      \"discount\": 20,\n      \"imageUrl\": \"https://mybcstore.com/sansiveria.jpg\",\n      \"offeredPrice\": 20,\n      \"orderQuantityMaximum\": 0,\n      \"orderQuantityMinimum\": 0,\n      \"productId\": 54321,\n      \"productName\": \"Sansiveria Plant\",\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\",\n      \"variantId\": 12345\n    },\n    {\n      \"options\": [\n        {\n          \"optionId\": 1234,\n          \"optionLabel\": \"Ocean\",\n          \"optionName\": \"Color\",\n          \"optionValue\": 98765\n        }\n      ],\n      \"basePrice\": 55,\n      \"discount\": 10,\n      \"imageUrl\": \"https://mybcstore.com/ocean-planter.jpg\",\n      \"offeredPrice\": 49.5,\n      \"productId\": 63261,\n      \"productName\": \"The Planter by Rustic Roots\",\n      \"quantity\": 10,\n      \"sku\": \"CER-POT-2-GR\",\n      \"variantId\": 54321\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"allowCheckout\": true,\n  \"bcCustomerId\": 98765,\n  \"channelId\": 1,\n  \"companyId\": 11111111,\n  \"contactInfo\": {\n    \"companyName\": \"Great Buys Incorporated\",\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\",\n    \"phoneNumber\": \"512-200-1234\"\n  },\n  \"currency\": {\n    \"token\": \"$\",\n    \"location\": \"left\",\n    \"currencyCode\": \"USD\",\n    \"decimalToken\": \".\",\n    \"decimalPlaces\": 2,\n    \"thousandsToken\": \",\"\n  },\n  \"discount\": 0,\n  \"displayDiscount\": false,\n  \"expiredAt\": \"05/07/2025\",\n  \"extraFields\": {\n    \"fieldName\": \"I want a sales representative to call me at the provided phone number.\",\n    \"fieldValue\": \"Yes\"\n  },\n  \"grandTotal\": 1495,\n  \"legalTerms\": \"Thank you for the opportunity to provide this quote! Please note the following:\\n - Quotes are valid for 30 days unless otherwise stated.\\n - Pricing is subject to change at any time.\\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.\",\n  \"message\": \"Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.\",\n  \"notes\": \"Use the in-quote messaging system to contact us about products, pricing, or other quote information.\",\n  \"quoteTitle\": \"Plant and Planter Bulk Order\",\n  \"referenceNumber\": \"03302025-0001\",\n  \"shippingAddress\": {\n    \"address\": \"512 Bluebonnet Lane\",\n    \"apartment\": \"Building 100\",\n    \"city\": \"Austin\",\n    \"country\": \"United States\",\n    \"state\": \"Texas\",\n    \"zipCode\": \"78704\"\n  },\n  \"subtotal\": 1495,\n  \"userEmail\": \"hero@mybcstore.com\"\n}"

response = http.request(request)
puts response.read_body
```

```java All fields
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api-b2b.bigcommerce.com/api/v3/io/rfq")
  .header("X-Auth-Token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"productList\": [\n    {\n      \"options\": [],\n      \"basePrice\": 25,\n      \"discount\": 20,\n      \"imageUrl\": \"https://mybcstore.com/sansiveria.jpg\",\n      \"offeredPrice\": 20,\n      \"orderQuantityMaximum\": 0,\n      \"orderQuantityMinimum\": 0,\n      \"productId\": 54321,\n      \"productName\": \"Sansiveria Plant\",\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\",\n      \"variantId\": 12345\n    },\n    {\n      \"options\": [\n        {\n          \"optionId\": 1234,\n          \"optionLabel\": \"Ocean\",\n          \"optionName\": \"Color\",\n          \"optionValue\": 98765\n        }\n      ],\n      \"basePrice\": 55,\n      \"discount\": 10,\n      \"imageUrl\": \"https://mybcstore.com/ocean-planter.jpg\",\n      \"offeredPrice\": 49.5,\n      \"productId\": 63261,\n      \"productName\": \"The Planter by Rustic Roots\",\n      \"quantity\": 10,\n      \"sku\": \"CER-POT-2-GR\",\n      \"variantId\": 54321\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"allowCheckout\": true,\n  \"bcCustomerId\": 98765,\n  \"channelId\": 1,\n  \"companyId\": 11111111,\n  \"contactInfo\": {\n    \"companyName\": \"Great Buys Incorporated\",\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\",\n    \"phoneNumber\": \"512-200-1234\"\n  },\n  \"currency\": {\n    \"token\": \"$\",\n    \"location\": \"left\",\n    \"currencyCode\": \"USD\",\n    \"decimalToken\": \".\",\n    \"decimalPlaces\": 2,\n    \"thousandsToken\": \",\"\n  },\n  \"discount\": 0,\n  \"displayDiscount\": false,\n  \"expiredAt\": \"05/07/2025\",\n  \"extraFields\": {\n    \"fieldName\": \"I want a sales representative to call me at the provided phone number.\",\n    \"fieldValue\": \"Yes\"\n  },\n  \"grandTotal\": 1495,\n  \"legalTerms\": \"Thank you for the opportunity to provide this quote! Please note the following:\\n - Quotes are valid for 30 days unless otherwise stated.\\n - Pricing is subject to change at any time.\\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.\",\n  \"message\": \"Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.\",\n  \"notes\": \"Use the in-quote messaging system to contact us about products, pricing, or other quote information.\",\n  \"quoteTitle\": \"Plant and Planter Bulk Order\",\n  \"referenceNumber\": \"03302025-0001\",\n  \"shippingAddress\": {\n    \"address\": \"512 Bluebonnet Lane\",\n    \"apartment\": \"Building 100\",\n    \"city\": \"Austin\",\n    \"country\": \"United States\",\n    \"state\": \"Texas\",\n    \"zipCode\": \"78704\"\n  },\n  \"subtotal\": 1495,\n  \"userEmail\": \"hero@mybcstore.com\"\n}")
  .asString();
```

```php All fields
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api-b2b.bigcommerce.com/api/v3/io/rfq', [
  'body' => '{
  "productList": [
    {
      "options": [],
      "basePrice": 25,
      "discount": 20,
      "imageUrl": "https://mybcstore.com/sansiveria.jpg",
      "offeredPrice": 20,
      "orderQuantityMaximum": 0,
      "orderQuantityMinimum": 0,
      "productId": 54321,
      "productName": "Sansiveria Plant",
      "quantity": 50,
      "sku": "SAN-PL",
      "variantId": 12345
    },
    {
      "options": [
        {
          "optionId": 1234,
          "optionLabel": "Ocean",
          "optionName": "Color",
          "optionValue": 98765
        }
      ],
      "basePrice": 55,
      "discount": 10,
      "imageUrl": "https://mybcstore.com/ocean-planter.jpg",
      "offeredPrice": 49.5,
      "productId": 63261,
      "productName": "The Planter by Rustic Roots",
      "quantity": 10,
      "sku": "CER-POT-2-GR",
      "variantId": 54321
    }
  ],
  "totalAmount": 1495,
  "allowCheckout": true,
  "bcCustomerId": 98765,
  "channelId": 1,
  "companyId": 11111111,
  "contactInfo": {
    "companyName": "Great Buys Incorporated",
    "email": "mcurie@greatbuysinc.com",
    "name": "Marie Curie",
    "phoneNumber": "512-200-1234"
  },
  "currency": {
    "token": "$",
    "location": "left",
    "currencyCode": "USD",
    "decimalToken": ".",
    "decimalPlaces": 2,
    "thousandsToken": ","
  },
  "discount": 0,
  "displayDiscount": false,
  "expiredAt": "05/07/2025",
  "extraFields": {
    "fieldName": "I want a sales representative to call me at the provided phone number.",
    "fieldValue": "Yes"
  },
  "grandTotal": 1495,
  "legalTerms": "Thank you for the opportunity to provide this quote! Please note the following:\\n - Quotes are valid for 30 days unless otherwise stated.\\n - Pricing is subject to change at any time.\\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.",
  "message": "Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don\'t hesitate to reach out with any questions.",
  "notes": "Use the in-quote messaging system to contact us about products, pricing, or other quote information.",
  "quoteTitle": "Plant and Planter Bulk Order",
  "referenceNumber": "03302025-0001",
  "shippingAddress": {
    "address": "512 Bluebonnet Lane",
    "apartment": "Building 100",
    "city": "Austin",
    "country": "United States",
    "state": "Texas",
    "zipCode": "78704"
  },
  "subtotal": 1495,
  "userEmail": "hero@mybcstore.com"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'X-Auth-Token' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp All fields
using RestSharp;

var client = new RestClient("https://api-b2b.bigcommerce.com/api/v3/io/rfq");
var request = new RestRequest(Method.POST);
request.AddHeader("X-Auth-Token", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"productList\": [\n    {\n      \"options\": [],\n      \"basePrice\": 25,\n      \"discount\": 20,\n      \"imageUrl\": \"https://mybcstore.com/sansiveria.jpg\",\n      \"offeredPrice\": 20,\n      \"orderQuantityMaximum\": 0,\n      \"orderQuantityMinimum\": 0,\n      \"productId\": 54321,\n      \"productName\": \"Sansiveria Plant\",\n      \"quantity\": 50,\n      \"sku\": \"SAN-PL\",\n      \"variantId\": 12345\n    },\n    {\n      \"options\": [\n        {\n          \"optionId\": 1234,\n          \"optionLabel\": \"Ocean\",\n          \"optionName\": \"Color\",\n          \"optionValue\": 98765\n        }\n      ],\n      \"basePrice\": 55,\n      \"discount\": 10,\n      \"imageUrl\": \"https://mybcstore.com/ocean-planter.jpg\",\n      \"offeredPrice\": 49.5,\n      \"productId\": 63261,\n      \"productName\": \"The Planter by Rustic Roots\",\n      \"quantity\": 10,\n      \"sku\": \"CER-POT-2-GR\",\n      \"variantId\": 54321\n    }\n  ],\n  \"totalAmount\": 1495,\n  \"allowCheckout\": true,\n  \"bcCustomerId\": 98765,\n  \"channelId\": 1,\n  \"companyId\": 11111111,\n  \"contactInfo\": {\n    \"companyName\": \"Great Buys Incorporated\",\n    \"email\": \"mcurie@greatbuysinc.com\",\n    \"name\": \"Marie Curie\",\n    \"phoneNumber\": \"512-200-1234\"\n  },\n  \"currency\": {\n    \"token\": \"$\",\n    \"location\": \"left\",\n    \"currencyCode\": \"USD\",\n    \"decimalToken\": \".\",\n    \"decimalPlaces\": 2,\n    \"thousandsToken\": \",\"\n  },\n  \"discount\": 0,\n  \"displayDiscount\": false,\n  \"expiredAt\": \"05/07/2025\",\n  \"extraFields\": {\n    \"fieldName\": \"I want a sales representative to call me at the provided phone number.\",\n    \"fieldValue\": \"Yes\"\n  },\n  \"grandTotal\": 1495,\n  \"legalTerms\": \"Thank you for the opportunity to provide this quote! Please note the following:\\n - Quotes are valid for 30 days unless otherwise stated.\\n - Pricing is subject to change at any time.\\n - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.\\n - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.\\n - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.\",\n  \"message\": \"Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.\",\n  \"notes\": \"Use the in-quote messaging system to contact us about products, pricing, or other quote information.\",\n  \"quoteTitle\": \"Plant and Planter Bulk Order\",\n  \"referenceNumber\": \"03302025-0001\",\n  \"shippingAddress\": {\n    \"address\": \"512 Bluebonnet Lane\",\n    \"apartment\": \"Building 100\",\n    \"city\": \"Austin\",\n    \"country\": \"United States\",\n    \"state\": \"Texas\",\n    \"zipCode\": \"78704\"\n  },\n  \"subtotal\": 1495,\n  \"userEmail\": \"hero@mybcstore.com\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift All fields
import Foundation

let headers = [
  "X-Auth-Token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "productList": [
    [
      "options": [],
      "basePrice": 25,
      "discount": 20,
      "imageUrl": "https://mybcstore.com/sansiveria.jpg",
      "offeredPrice": 20,
      "orderQuantityMaximum": 0,
      "orderQuantityMinimum": 0,
      "productId": 54321,
      "productName": "Sansiveria Plant",
      "quantity": 50,
      "sku": "SAN-PL",
      "variantId": 12345
    ],
    [
      "options": [
        [
          "optionId": 1234,
          "optionLabel": "Ocean",
          "optionName": "Color",
          "optionValue": 98765
        ]
      ],
      "basePrice": 55,
      "discount": 10,
      "imageUrl": "https://mybcstore.com/ocean-planter.jpg",
      "offeredPrice": 49.5,
      "productId": 63261,
      "productName": "The Planter by Rustic Roots",
      "quantity": 10,
      "sku": "CER-POT-2-GR",
      "variantId": 54321
    ]
  ],
  "totalAmount": 1495,
  "allowCheckout": true,
  "bcCustomerId": 98765,
  "channelId": 1,
  "companyId": 11111111,
  "contactInfo": [
    "companyName": "Great Buys Incorporated",
    "email": "mcurie@greatbuysinc.com",
    "name": "Marie Curie",
    "phoneNumber": "512-200-1234"
  ],
  "currency": [
    "token": "$",
    "location": "left",
    "currencyCode": "USD",
    "decimalToken": ".",
    "decimalPlaces": 2,
    "thousandsToken": ","
  ],
  "discount": 0,
  "displayDiscount": false,
  "expiredAt": "05/07/2025",
  "extraFields": [
    "fieldName": "I want a sales representative to call me at the provided phone number.",
    "fieldValue": "Yes"
  ],
  "grandTotal": 1495,
  "legalTerms": "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.
 - Please note, the shipping and tax quoted are estimates only. Final shipping and tax will be calculated during checkout and may be billed post sale.
 - Due to fluctuating shipping rates, LTL shipping calculations are only estimates. Final LTL rates will be determined by quote upon shipment and may be billed post sale. Also, if a lift gate is required an additional fee will apply if not included in this quote.
 - Please contact your Technical Sales Representative, call 877-567-3598, or email sales.rep@mybcstore.com for assistance.",
  "message": "Hello Marie! I have submitted the quote you requested. Please review the notes and terms, and don't hesitate to reach out with any questions.",
  "notes": "Use the in-quote messaging system to contact us about products, pricing, or other quote information.",
  "quoteTitle": "Plant and Planter Bulk Order",
  "referenceNumber": "03302025-0001",
  "shippingAddress": [
    "address": "512 Bluebonnet Lane",
    "apartment": "Building 100",
    "city": "Austin",
    "country": "United States",
    "state": "Texas",
    "zipCode": "78704"
  ],
  "subtotal": 1495,
  "userEmail": "hero@mybcstore.com"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api-b2b.bigcommerce.com/api/v3/io/rfq")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```