Tax Provider API
Use BigCommerce’s platform-to-platform Tax Provider API to integrate a tax calculation engine into the BigCommerce storefront and control panel. Supports estimate, adjust, commit, and void operations. For more information, see Tax Provider API Overview.
Estimate Taxes
POST /estimate
Request
Submit the quote request to retrieve an estimate from the enabled third-party tax provider. Estimates are not expected to be persisted by the tax provider.
Server URL
- For supporting tax providers, the server url contains the tax provider's profile field; for example,
your_profile.example.com
. - The Try it feature is not currently supported for this endpoint.
The following actions can trigger tax estimate requests multiple times during a standard checkout on a BigCommerce storefront, depending on the BigCommerce merchant’s settings.
- After selecting a Shipping Method during the “Estimate Shipping & Tax” facility on the Cart page.
- After specifying a Shipping Address during a Checkout.
- After selecting a Shipping Method during a Checkout.
- After specifying a Billing Address during a Checkout.
The following actions are not expected to trigger estimate requests.
- While anonymously browsing a store’s product catalog.
- On the Cart page prior to a Shopper selecting a Shipping Method via “Estimate Shipping & Tax”.
- On the Checkout page prior to specifying a Shipping Address.
- On the Checkout page, when toggling any option related to using the shopper’s Shipping Address as their Billing Address.
The following control panel actions can also trigger tax estimate requests.
- Order refund.
- Edit order.
- Test connection feature in Tax Settings.
Authentication
- Authorization in - required
Parameters
- app_domain in path - string
- X-BC-Store-Hash in header - string - required
BigCommerce will send through the Store Hash as part of all Tax Provider API operations. Each BigCommerce store on the platform has a unique Store Hash value for the store’s lifetime. This value can assist in account verification or profile matching responsibilities.
Estimates may not always contain complete data as these requests will be fired at different stages of the shopper checkout. For example, the Estimate Shipping & Tax function on the Cart page is not expected to provide any billing address data, but the tax provider will still be expected to return a valid estimate.
Body
Each QuoteRequest represents an order. In addition to transaction details, it contains a documents
array of one or more DocumentRequest objects, which represent distinct combinations of origin and fulfillment addresses and the tax-relevant contents of those consignments. This is similar to an "order" in other BigCommerce APIs.
idstring
requiredUnique ID of the taxable document (order, cart, quote, etc) this tax quote request is being generated for. Will remain consistent for the lifetime of the entity being estimated.
currency_codestring
requiredISO 4217 3 character currency code that all prices on this request are in.
customerobject
requiredIf the shopper is a registered customer in the merchant’s store, basic details for that customer.
transaction_datestring
requiredISO 8601 formatted date the shopper placed this order. Dates will be provided in UTC.
documentsarray[object]
requiredOne or more consignments containing items being purchased by the shopper, including shipping and handling fees that are charged for each consignment. Most orders will contain a single consignment (to a single shipping address), however the BigCommerce platform also supports "Multi-address orders" which allow shoppers to place a single order with items shipped to different addresses.
example
{ "id": "3f0c857e-2c55-443e-a89b-c3c4d8a29605", "currency_code": "USD", "customer": { "customer_id": "0", "customer_group_id": "0", "taxability_code": "" }, "transaction_date": "2019-08-13T03:17:37+00:00", "documents": [ { "id": "5d522b889d3d9", "billing_address": { "line1": "", "line2": "", "city": "", "region_name": "", "region_code": "", "country_name": "", "country_code": "", "postal_code": "", "company_name": "", "type": "RESIDENTIAL" }, "destination_address": { "line1": "", "line2": "", "city": "Van Wert", "region_name": "Ohio", "region_code": "OH", "country_name": "United States", "country_code": "US", "postal_code": "45892", "company_name": "", "type": "RESIDENTIAL" }, "origin_address": { "line1": "2139 W ANDERSON LN", "line2": "", "city": "AUSTIN", "region_name": "Texas", "region_code": "TX", "country_name": "United States", "country_code": "US", "postal_code": "78757", "company_name": "", "type": "COMMERCIAL" }, "shipping": { "id": "5d522b889d3d9", "item_code": "Flat Rate", "name": "Shipping to Van Wert, United States 45891", "price": { "amount": 10, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Shipping" }, "tax_exempt": false, "type": "shipping" }, "handling": { "id": "5d522b889d3d9", "item_code": "Flat Rate", "name": "Handling for Van Wert, United States 45891", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Handling" }, "tax_exempt": false, "type": "handling" }, "items": [ { "id": "088c7465-e5b8-4624-a220-0d9faa82e7cb", "item_code": "ABS", "name": "[Sample] Able Brewing System", "price": { "amount": 450, "tax_inclusive": false }, "quantity": 2, "tax_class": { "code": "", "class_id": "0", "name": "Default Tax Class" }, "tax_exempt": false, "type": "item", "wrapping": { "id": "d2675662-6326-4a23-9107-ab71fa6a21a1", "item_code": "", "name": "Wrapping: [Sample] Canvas Laundry Cart", "price": { "amount": 5, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Wrapping" }, "tax_exempt": false, "type": "wrapping" } }, { "id": "d2675662-6326-4a23-9107-ab71fa6a21a1", "item_code": "CLC", "name": "[Sample] Canvas Laundry Cart", "price": { "amount": 200, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "0", "name": "Default Tax Class" }, "tax_exempt": false, "type": "item", "wrapping": { "id": "d2675662-6326-4a23-9107-ab71fa6a21a1", "item_code": "", "name": "Wrapping: [Sample] Canvas Laundry Cart", "price": { "amount": 5, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Wrapping" }, "tax_exempt": false, "type": "wrapping" } } ] } ] }
Response
Noteworthy is that the estimate response does not contain an external ID since there is no expectation that an estimate will result in any persisted tax documents by the tax provider.
Body
idstring
requiredThe unique identifier of the tax quote that was requested. This must match the ID of the requested quote.
documentsarray[object]
requiredRepresents an order quote or part of an order quote of tax-relevant items fulfilled from a single origin address to a single destination address, including arrays of shipping and handling fee objects for each item. Most order quotes contain a single document; however, BigCommerce supports "multi-address orders", which may come from or go to distinct sets of addresses and thus require multiple documents per quote.
response
{ "documents": [ { "id": "5d522b889d3d9", "items": [ { "id": "088c7465-e5b8-4624-a220-0d9faa82e7cb", "price": { "amount_inclusive": 675, "amount_exclusive": 450, "total_tax": 225, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 225, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "item", "wrapping": { "id": "d2675662-6326-4a23-9107-ab71fa6a21a1", "price": { "amount_exclusive": 5, "amount_inclusive": 7.5, "sales_tax_summary": [ { "amount": 2.5, "id": "1", "name": "BRUTAL TAX", "rate": 0.5, "tax_class": { "class_id": "6", "code": "US", "name": "Wrapping" } } ], "tax_rate": 0.5, "total_tax": 2.5 }, "type": "wrapping" } }, { "id": "d2675662-6326-4a23-9107-ab71fa6a21a1", "price": { "amount_inclusive": 300, "amount_exclusive": 200, "total_tax": 100, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 100, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "item", "wrapping": { "id": "d2675662-6326-4a23-9107-ab71fa6a21a1", "price": { "amount_exclusive": 5, "amount_inclusive": 7.5, "sales_tax_summary": [ { "amount": 2.5, "id": "1", "name": "BRUTAL TAX", "rate": 0.5, "tax_class": { "class_id": "6", "code": "US", "name": "Wrapping" } } ], "tax_rate": 0.5, "total_tax": 2.5 }, "type": "wrapping" } } ], "shipping": { "id": "5d522b889d3d9", "price": { "amount_inclusive": 15, "amount_exclusive": 10, "total_tax": 5, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 5, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "shipping" }, "handling": { "id": "5d522b889d3d9", "price": { "amount_inclusive": 0, "amount_exclusive": 0, "total_tax": 0, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 0, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "handling" } } ], "id": "3f0c857e-2c55-443e-a89b-c3c4d8a29605" }
Void Tax Quote
POST /void
Request
Invalidate the persisted tax quote as identified by the given unique ID. Relevant to order cancellations or when moving an order from a paid status to an unpaid status.
Server URL
- For supporting tax providers, the server url contains the tax provider's profile field; for example,
your_profile.example.com
. - The Try it feature is not currently supported for this endpoint.
Authentication
- Authorization in - required
Parameters
- app_domain in path - string
- id in query - string - required
Unique ID identifying the existing, persisted Tax Quote that will be voided.
- X-BC-Store-Hash in header - string - required
BigCommerce will send through the Store Hash as part of all Tax Provider API operations. Each BigCommerce store on the platform has a unique Store Hash value for the store’s lifetime. This value can assist in account verification or profile matching responsibilities.
Response
OK
Commit Tax Quote
POST /commit
Request
Submit the quote request to be persisted by the enabled third-party tax provider. A commit operation is intended to be submitted once only, when the Order has been confirmed and paid.
Server URL
- For supporting tax providers, the server url contains the tax provider's profile field; for example,
your_profile.example.com
. - The Try it feature is not currently supported for this endpoint.
Authentication
- Authorization in - required
Parameters
- app_domain in path - string
- X-BC-Store-Hash in header - string - required
BigCommerce will send through the Store Hash as part of all Tax Provider API operations. Each BigCommerce store on the platform has a unique Store Hash value for the store’s lifetime. This value can assist in account verification or profile matching responsibilities.
Body
Each QuoteRequest represents an order. In addition to transaction details, it contains a documents
array of one or more DocumentRequest objects, which represent distinct combinations of origin and fulfillment addresses and the tax-relevant contents of those consignments. This is similar to an "order" in other BigCommerce APIs.
idstring
requiredUnique ID of the taxable document (order, cart, quote, etc) this tax quote request is being generated for. Will remain consistent for the lifetime of the entity being estimated.
currency_codestring
requiredISO 4217 3 character currency code that all prices on this request are in.
customerobject
requiredIf the shopper is a registered customer in the merchant’s store, basic details for that customer.
transaction_datestring
requiredISO 8601 formatted date the shopper placed this order. Dates will be provided in UTC.
documentsarray[object]
requiredOne or more consignments containing items being purchased by the shopper, including shipping and handling fees that are charged for each consignment. Most orders will contain a single consignment (to a single shipping address), however the BigCommerce platform also supports "Multi-address orders" which allow shoppers to place a single order with items shipped to different addresses.
example
{ "id": "113", "currency_code": "USD", "customer": { "customer_id": "0", "customer_group_id": "0", "taxability_code": "" }, "transaction_date": "2019-08-13T03:40:15+00:00", "documents": [ { "id": "shipping_14", "billing_address": { "line1": "402 S Vine St", "line2": "", "city": "Van Wert", "region_name": "Ohio", "region_code": "OH", "country_name": "United States", "country_code": "US", "postal_code": "45891", "company_name": "", "type": "RESIDENTIAL" }, "destination_address": { "line1": "402 S Vine St", "line2": "", "city": "Van Wert", "region_name": "Ohio", "region_code": "OH", "country_name": "United States", "country_code": "US", "postal_code": "45891", "company_name": "", "type": "RESIDENTIAL" }, "origin_address": { "line1": "2139 W ANDERSON LN", "line2": "", "city": "AUSTIN", "region_name": "Texas", "region_code": "TX", "country_name": "United States", "country_code": "US", "postal_code": "78757", "company_name": "", "type": "COMMERCIAL" }, "shipping": { "id": "shipping_14", "item_code": "Flat Rate", "name": "Shipping to Van Wert, United States 45891", "price": { "amount": 10, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Shipping" }, "tax_exempt": false, "type": "shipping" }, "handling": { "id": "handling_14", "item_code": "Flat Rate", "name": "Handling for Van Wert, United States 45891", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Handling" }, "tax_exempt": false, "type": "handling" }, "items": [ { "id": "product_13", "item_code": "ABS", "name": "[Sample] Able Brewing System", "price": { "amount": 450, "tax_inclusive": false }, "quantity": 2, "tax_class": { "code": "", "class_id": "0", "name": "Default Tax Class" }, "tax_exempt": false, "type": "item", "wrapping": { "id": "product_14", "item_code": "", "name": "Wrapping: Holiday", "price": { "amount": 5, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Wrapping" }, "tax_exempt": false, "type": "wrapping" } }, { "id": "product_14", "item_code": "CLC", "name": "[Sample] Canvas Laundry Cart", "price": { "amount": 200, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "0", "name": "Default Tax Class" }, "tax_exempt": false, "type": "item", "wrapping": { "id": "product_14", "item_code": "", "name": "Wrapping: Holiday", "price": { "amount": 5, "tax_inclusive": false }, "quantity": 1, "tax_class": { "code": "", "class_id": "6", "name": "Wrapping" }, "tax_exempt": false, "type": "wrapping" } } ] } ] }
Response
OK
Body
idstring
requiredThe unique identifier of the tax quote that was requested. This must match the ID of the requested quote.
documentsarray[object]
requiredRepresents an order quote or part of an order quote of tax-relevant items fulfilled from a single origin address to a single destination address, including arrays of shipping and handling fee objects for each item. Most order quotes contain a single document; however, BigCommerce supports "multi-address orders", which may come from or go to distinct sets of addresses and thus require multiple documents per quote.
response
{ "documents": [ { "external_id": "sample-doc-123456789", "id": "shipping_14", "items": [ { "id": "product_13", "price": { "amount_inclusive": 675, "amount_exclusive": 450, "total_tax": 225, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 225, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "item", "wrapping": { "id": "product_14", "price": { "amount_exclusive": 5, "amount_inclusive": 7.5, "sales_tax_summary": [ { "amount": 2.5, "id": "1", "name": "BRUTAL TAX", "rate": 0.5, "tax_class": { "class_id": "6", "code": "US", "name": "Wrapping" } } ], "tax_rate": 0.5, "total_tax": 2.5 }, "type": "wrapping" } }, { "id": "product_14", "price": { "amount_inclusive": 300, "amount_exclusive": 200, "total_tax": 100, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 100, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "item", "wrapping": { "id": "product_14", "price": { "amount_exclusive": 5, "amount_inclusive": 7.5, "sales_tax_summary": [ { "amount": 2.5, "id": "1", "name": "BRUTAL TAX", "rate": 0.5, "tax_class": { "class_id": "6", "code": "US", "name": "Wrapping" } } ], "tax_rate": 0.5, "total_tax": 2.5 }, "type": "wrapping" } } ], "shipping": { "id": "shipping_14", "price": { "amount_inclusive": 15, "amount_exclusive": 10, "total_tax": 5, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 5, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "shipping" }, "handling": { "id": "handling_14", "price": { "amount_inclusive": 0, "amount_exclusive": 0, "total_tax": 0, "tax_rate": 0.5, "sales_tax_summary": [ { "name": "Brutal Tax", "rate": 0.5, "amount": 0, "tax_class": { "class_id": "0", "name": "Brutal Tax", "code": "US" }, "id": "Brutal Tax" } ] }, "type": "handling" } } ], "id": "113" }
Adjust Tax Quote
POST /adjust
Request
Replace the persisted tax quote (identified by the given unique ID) with the provided quote request (represented by the AdjustRequest).
Relevant for partial refunds, full refunds, returns, and other Order modifications where there have been changes to the tax liabilities.
The returned Tax Quote response is expected to be the same to a response returned by an equivalent response to estimate or commit methods.
Server URL
- For supporting tax providers, the server url contains the tax provider's profile field; for example,
your_profile.example.com
. - The Try it feature is not currently supported for this endpoint.
Authentication
- Authorization in - required
Parameters
- app_domain in path - string
- X-BC-Store-Hash in header - string - required
BigCommerce will send through the Store Hash as part of all Tax Provider API operations. Each BigCommerce store on the platform has a unique Store Hash value for the store’s lifetime. This value can assist in account verification or profile matching responsibilities.
- id in query - string - required
Unique ID identifying the existing, persisted Tax Quote that will be adjusted.
Body
An AdjustRequest contains the same data as a standard QuoteRequest with added detail of the adjustment operation.
adjust_descriptionstring
Specifies the reason for the adjustment operation, for auditing purposes. May be a custom, user-entered description.
idstring
requiredUnique ID of the taxable document (order, cart, quote, etc) this tax quote request is being generated for. Will remain consistent for the lifetime of the entity being estimated.
currency_codestring
requiredISO 4217 3 character currency code that all prices on this request are in.
customerobject
requiredIf the shopper is a registered customer in the merchant’s store, basic details for that customer.
transaction_datestring
requiredISO 8601 formatted date the shopper placed this order. Dates will be provided in UTC.
documentsarray[object]
requiredOne or more consignments containing items being purchased by the shopper, including shipping and handling fees that are charged for each consignment. Most orders will contain a single consignment (to a single shipping address), however the BigCommerce platform also supports "Multi-address orders" which allow shoppers to place a single order with items shipped to different addresses.
example
{ "adjust_description": "string", "id": "string", "currency_code": "string", "customer": { "customer_id": "string", "customer_group_id": "0", "taxability_code": "string" }, "transaction_date": "2019-08-24T14:15:22Z", "documents": [ { "id": "string", "billing_address": { "line1": "string", "line2": "string", "city": "Sydney", "region_name": "New South Wales", "region_code": "NSW", "country_name": "Australia", "country_code": "AU", "postal_code": "2007", "company_name": "string", "type": "RESIDENTIAL" }, "destination_address": { "line1": "string", "line2": "string", "city": "Sydney", "region_name": "New South Wales", "region_code": "NSW", "country_name": "Australia", "country_code": "AU", "postal_code": "2007", "company_name": "string", "type": "RESIDENTIAL" }, "origin_address": { "line1": "string", "line2": "string", "city": "Sydney", "region_name": "New South Wales", "region_code": "NSW", "country_name": "Australia", "country_code": "AU", "postal_code": "2007", "company_name": "string", "type": "RESIDENTIAL" }, "shipping": { "id": "string", "item_code": "string", "item_reference": "string", "name": "string", "price": { "amount": 1.5, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "tax_properties": [ { "code": "alcohol-percentage", "value": "4.9" } ], "type": "item" }, "handling": { "id": "string", "item_code": "string", "item_reference": "string", "name": "string", "price": { "amount": 1.5, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "tax_properties": [ { "code": "alcohol-percentage", "value": "4.9" } ], "type": "item" }, "items": [ { "id": "string", "item_code": "string", "item_reference": "string", "name": "string", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "tax_properties": [ { "code": "alcohol-percentage", "value": "4.9" } ], "type": "item", "wrapping": { "id": "string", "item_code": "string", "item_reference": "string", "name": "string", "price": { "amount": 1.5, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "tax_properties": [ { "code": "alcohol-percentage", "value": "4.9" } ], "type": "item" } } ] } ] }
Response
Returned Tax Quote response matches the updated QuoteRequest provided to the service method.
Body
An AdjustRequest contains the same data as a standard QuoteRequest with added detail of the adjustment operation.
adjust_descriptionstring
Specifies the reason for the adjustment operation, for auditing purposes. May be a custom, user-entered description.
idstring
requiredUnique ID of the taxable document (order, cart, quote, etc) this tax quote request is being generated for. Will remain consistent for the lifetime of the entity being estimated.
currency_codestring
requiredISO 4217 3 character currency code that all prices on this request are in.
customerobject
requiredIf the shopper is a registered customer in the merchant’s store, basic details for that customer.
transaction_datestring
requiredISO 8601 formatted date the shopper placed this order. Dates will be provided in UTC.
documentsarray[object]
requiredOne or more consignments containing items being purchased by the shopper, including shipping and handling fees that are charged for each consignment. Most orders will contain a single consignment (to a single shipping address), however the BigCommerce platform also supports "Multi-address orders" which allow shoppers to place a single order with items shipped to different addresses.
example-1
{ "adjust_description": "string", "id": "string", "currency_code": "string", "customer": { "customer_id": "string", "customer_group_id": "0", "taxability_code": "string" }, "transaction_date": "2019-08-24T14:15:22Z", "documents": [ { "id": "string", "billing_address": { "line1": "string", "line2": "string", "city": "Sydney", "region_name": "New South Wales", "region_code": "NSW", "country_name": "Australia", "country_code": "AU", "postal_code": "2007", "company_name": "string", "type": "RESIDENTIAL" }, "destination_address": { "line1": "string", "line2": "string", "city": "Sydney", "region_name": "New South Wales", "region_code": "NSW", "country_name": "Australia", "country_code": "AU", "postal_code": "2007", "company_name": "string", "type": "RESIDENTIAL" }, "origin_address": { "line1": "string", "line2": "string", "city": "Sydney", "region_name": "New South Wales", "region_code": "NSW", "country_name": "Australia", "country_code": "AU", "postal_code": "2007", "company_name": "string", "type": "RESIDENTIAL" }, "shipping": { "id": "string", "item_code": "Flat Rate", "item_reference": "12345678", "name": "string", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "type": "item" }, "handling": { "id": "string", "item_code": "Flat Rate", "item_reference": "12345678", "name": "string", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "type": "item" }, "items": [ { "id": "string", "item_code": "Flat Rate", "item_reference": "12345678", "name": "string", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "type": "item", "wrapping": { "id": "string", "item_code": "Flat Rate", "item_reference": "12345678", "name": "string", "price": { "amount": 0, "tax_inclusive": false }, "quantity": 0, "tax_class": { "code": "string", "class_id": "string", "name": "string" }, "tax_exempt": false, "type": "item" } } ] } ] }