What changed per resource
New
data_type values for product-scoped attributessingle_select_swatch— single-select, shown as image swatches on the storefront.multi_select_swatch— multi-select, shown as image swatches.color— single-select backed by a hex colour code, shown as a colour swatch.
configuration.options[]image_url— image for this option, used by the swatch data types.color_code— hex colour such as#FF5733, used by thecolordata type.
options[]Each option is now an object with label, value, image_url, and color_code instead of a plain string, on list, create, and update.New query parameters — list
ids— filter by customer UUID. Repeatable:?ids=<uuid>&ids=<uuid>.source— return only customers from these sources, such asopenapiorsales_rep. Repeatable.exclude_source— the inverse. Repeatable.
tax_rate— customer-level tax rate applied at order time. Send0to clear it.customer_type— free-text classification such asretailorwholesale.
status—activeorinactive. v1 could not change status throughPATCH.
primary_contact_id,default_shipping_address_id,default_billing_address_id— removed. Use the nestedaddressesandcontactsobjects instead.- Nested
addresses[].idandcontacts[].idare now optional. Omitidto create inline, include it to update. v1 requiredid, so creating meant a second call.
tax_rate,customer_type, andsourceon list, create, detail, and update.
- Addresses gain
state_infoandcountry_info(each withcode,short_code,name). - Addresses no longer return
customer_idorstatus; contacts no longer returnstatus.
Route mapping
Contacts follow the same pattern under
/v2/customers/contacts and /v2/customers/{customer_id}/contacts.What changed- List is no longer scoped to one customer.
customer_idmoves from the path to an optional query parameter, so you can page through every address or contact in the account, or filter with?customer_id=<uuid>. - Get by ID no longer needs
customer_idin the path. - Update is
PATCH. Same body as v1, but send only the fields you are changing. - Create and delete keep the nested route.
customer_id— optional filter that replaces the old path segment.reference_ids— filter by your own external IDs. Repeatable.
state_infoandcountry_info(code,short_code,name) on addresses.customer_id, since the route no longer carries it.
statuson both addresses and contacts.
New and changed query parameters — list
ids,customer_ids,customer_reference_ids— filter by order UUID, customer UUID, or your own customer IDs. All repeatable.type— return onlyorderor onlyquoterecords.exclude_source— omit orders from these sources. Repeatable.order_status— now also acceptssubmitted, alongsidedraft,confirmed, andcancelled. Still defaults toconfirmed.source— now repeatable; v1 took a single value.
payment_method— set the payment method on the order.reference_idonbilling_address,shipping_address, andprimary_contact— link inline records to your own system.attributeson the same three objects — customname/valuepairs, both required on each entry.
reference_idis no longer required onPUT /v2/orders/{id}.
type—orderorquote.entity_source— where the order originated.reference_id,state_info, andcountry_infoon the addresses and primary contact.
customer_reference_idandcustomer_name— resolved inline, so no second customer call.price_list— the full object (id,name,reference_id) alongside the existingprice_list_id.cart_total.created_byandupdated_by— user objects withidandemail. v1 did not return these.- Line items gain
id,reference_id,parent_sku_id,final_unit_price,applied_promotion(id,name,reference_id,promo_code), andapplied_modifiers(id,name,unique_id, plus avaluesarray ofid,value,price,quantity,suffix). - Addresses and the primary contact gain an
attributesarray (id,name,value,created_at,updated_at). - Charges gain
applied_promotion.
New query parameters — list
idsandreference_ids— filter by product UUID or your own product IDs. Both repeatable.
brand— associate the product with a brand for filtering and storefront display. Product-level on create; the fields below are per variant.tags— free-form string tags for search and categorisation.seo_info—primary_title,title,description,keywords.url_slug— readable URL path, for examplered-wool-rug-5x8.channel_visibility.website—DontShow,ShowForLoggedInUsersOnly, orShowForLoggedInAndNonLoggedInUsers.volume— physical volume per variant ascftorcbm. If both are sent,cftwins.
grouping_attributes— attributes such as colour or size that group variants under one listing. v1 accepted this on create only.
product_prices[]sale_price— promotional price alongside the regular price.default_order_quantity— quantity pre-filled when a buyer adds the product to an order.volume_tiers— tiered pricing by quantity. Each tier takesstart_quantityandprice(both required) and an optionalstep_increment, the multiple that ordered quantities must follow within the tier.
priority— display order in a listing; lower values surface first.channel_visibility,volume(cft/cbm), andmedias[].order.
categories, tags, brand, url_slug, and seo_info. Each price_lists entry also returns sale_price, default_order_quantity, and volume_tiers, where price is the base amount and sale_price the promotional one.Multiple orders per invoice
order_ids(array, required) replaces v1’sorder_id(string, required) in requests and responses.
total_amountis no longer accepted. The total comes fromitemsandcharges, and is returned in the response.
idsandinvoice_statuses— filter by invoice UUID or detailed status. Both repeatable.status— nowPAIDorPENDING; v1 usedPAIDorUNPAID.
invoice_status—DRAFT,OPEN,SENT,PARTIALLY_PAID,CLOSED,OVERDUE,CANCELLED, orCREDIT_NOTE_ISSUED.payment_method,payment_terms,po_number,shipping_method,shipped_date,sales_rep_id— commercial and fulfilment details that previously lived outside the invoice.charges— invoice-level charges:nameandtyperequired (discount,tax, orshipping), plusvalue_type(valueorpercentage) andamount.attributes— custom metadata:nameandvaluerequired, optionallabel.items[].tax_charges— per-line breakdown of tax, discount, shipping, and additional charges. Each amount has a matching*_typeofvalueorpercentage.items[].item_status— per-line fulfilment:ordered_quantity,shipped_quantity,open_quantity,ship_date,delivered_date,requested_ship_date,requested_delivery_date.
items[].sku and items[].final_unit_price. Returned attributes also include id, created_by, updated_by, created_at, and updated_at.