OroCommerce Integration API Endpoints
The OroCommerce integration communicates with your OroCommerce store through the OroCommerce REST JSON API. The API uses the JSON:API media type (application/vnd.api+json) and is served under your store instance's admin path.
The base URL pattern is your API URL combined with the Admin Base Path configured in the subscription settings. Throughout this article, the placeholder [Base URL] represents that combined value, for example:
[Base URL] = https://yourdomain.oro-cloud.com/admin/api
Both the API URL and the Admin Base Path are instance-specific. The Admin Base Path defaults to admin when it is not set. Every endpoint listed below is shown relative to [Base URL], so a documented path such as [Base URL]/products/{id} resolves to https://yourdomain.oro-cloud.com/admin/api/products/{id} for the example above.
The endpoints in this article are the complete set of OroCommerce calls the integration makes, grouped by entity. Use it to assess deprecation impact, configure firewall whitelisting, and support troubleshooting. Path and query parameters are shown in {curly braces} where the integration substitutes values at sync time.
Table of Contents
Product Endpoints
These endpoints cover simple products, configurable products, product variants, and product kits. Product variants and kits are stored as products in OroCommerce, so they share the /products resource.
Get Product (GET)
[Base URL]/products/{id}Create Product (POST)
[Base URL]/products
Used to create simple products, configurable products, product variants, and product kits.
Update Product (PATCH)
[Base URL]/products/{id}Used to update simple products, configurable products, product variants, and product kits.
Delete Product (DELETE)
[Base URL]/products/{id}Get Product Variant Link (GET)
[Base URL]/productvariantlinks/{variantLinkId}/productRetrieves the product associated with a configurable product's variant link.
Get Product Kit Items by Product (GET)
[Base URL]/products/{productId}/kitItemsGet Kit Item Products (GET)
[Base URL]/productkititems/{kitItemId}/kitItemProductsGet Product Kit Item Labels (GET)
[Base URL]/productkititems/{productKitItemId}/labelsGet Product Primary Unit Precision (GET)
[Base URL]/products/{productId}/primaryUnitPrecisionGet Product Unit Precisions (GET)
[Base URL]/products/{productId}/unitPrecisionsGet Product Shipping Options (GET)
[Base URL]/products/{productId}/productShippingOptionsGet Product Unit Precision by Precision and Product (GET)
[Base URL]/productunitprecisions?filter[id][eq]={precisionId}&filter[product][eq]={productId}Product Price Endpoints
Product prices are managed alongside products and price lists. OroCommerce stores each price as a separate productprices record.
Get Product Price by ID (GET)
[Base URL]/productprices/{productPriceId}Search Product Prices (GET)
[Base URL]/productprices?filter[priceList]={priceListId}&filter[product]={productId}&filter[unit]={unit}The integration applies the price list, product, and unit filters as needed to locate the matching price record.
Create Product Price (POST)
[Base URL]/productprices
Update Product Price (PATCH)
[Base URL]/productprices/{productPriceId}Delete Product Price (DELETE)
[Base URL]/productprices/{productPriceId}Customer Endpoints
In OroCommerce, the company-level customer record is the customers resource.
Get Customer (GET)
[Base URL]/customers/{customerId}Search Customer by Name (GET)
[Base URL]/customers?filter[name]={name}Create Customer (POST)
[Base URL]/customers
Update Customer (PATCH)
[Base URL]/customers/{customerId}Get Customer Addresses (GET)
[Base URL]/customers/{customerId}/addressesCustomer User Endpoints
Customer users are the buyer contacts that belong to a company customer, stored as the customerusers resource.
Get Customer User (GET)
[Base URL]/customerusers/{customerUserId}Search Customer User by Email (GET)
[Base URL]/customerusers?filter[email]={email}Get Customer User Email by ID (GET)
[Base URL]/customerusers/{id}?fields[customerusers]=emailCreate Customer User (POST)
[Base URL]/customerusers
Update Customer User (PATCH)
[Base URL]/customerusers/{customerUserId}Get Customer User Addresses (GET)
[Base URL]/customerusers/{customerUserId}/addressesCustomer Group Endpoints
Customer groups are stored as the customergroups resource.
Get Customer Group (GET)
[Base URL]/customergroups/{id}Search Customer Group by Name (GET)
[Base URL]/customergroups?filter[name][eq]={groupName}Create Customer Group (POST)
[Base URL]/customergroups
Update Customer Group (PATCH)
[Base URL]/customergroups/{id}Address Endpoints
OroCommerce stores addresses in two separate resources depending on the owner. Company customer addresses use the customeraddresses resource, and customer user addresses use the customeruseraddresses resource. The integration selects the matching resource based on the address owner, so the {addressResource} segment below resolves to either customeraddresses or customeruseraddresses at sync time.
Get Address (GET)
[Base URL]/{addressResource}/{addressId}Search Addresses by Owner and Detail (GET)
[Base URL]/{addressResource}?filter[customer]={customerId}&filter[country]={countryId}&filter[region]={regionId}For company customer addresses the owner filter is filter[customer]. For customer user addresses it is filter[customerUser]. The country and region filters are appended only when those values are present.
Create Address (POST)
[Base URL]/{addressResource}Update Address (PATCH)
[Base URL]/{addressResource}/{addressId}Price List Endpoints
Price lists and their assignment to customer groups are managed through the pricelists and pricelisttocustomergroups resources.
Get Price List by ID (GET)
[Base URL]/pricelists/{priceListId}Get All Price Lists (GET)
[Base URL]/pricelists?page[number]={pageNumber}&page[size]={pageSize}Search Price Lists by Name (GET)
[Base URL]/pricelists?filter[searchText][eq]={priceListName}Create Price List (POST)
[Base URL]/pricelists
Update Price List (PATCH)
[Base URL]/pricelists/{priceListId}Get Price List to Customer Group by ID (GET)
[Base URL]/pricelisttocustomergroups/{priceListsCustomerGroupId}Search Price List to Customer Groups (GET)
[Base URL]/pricelisttocustomergroups?filter[customerGroup]={customerGroupId}&filter[priceList]={priceListId}Create Price List to Customer Group (POST)
[Base URL]/pricelisttocustomergroups
Update Price List to Customer Group (PATCH)
[Base URL]/pricelisttocustomergroups/{priceListsCustomerGroupId}Order Endpoints
Sales orders flow from OroCommerce into iPaaS.com. The integration reads orders, their line items, and order subtotals.
Get Sales Order by ID (GET)
[Base URL]/orders?filter[id]={orderId}&include=billingAddress,shippingAddressThe include parameter returns the related billing and shipping addresses with the order.
Poll Orders by Updated Date (GET)
[Base URL]/orders?filter[updatedAt][gte]={lastModifiedDT}Used to retrieve orders updated on or after the last polling timestamp. Results are paged, and the integration follows the API's paging links until all matching orders are retrieved.
Get Sales Order Line Items by Order (GET)
[Base URL]/orderlineitems?filter[orders]={orderId}&page[number]={page}&page[size]={batchSize}Get Sales Order Subtotals by Order (GET)
[Base URL]/ordersubtotals?filter[order]={orderId}Shipment Tracking Endpoints
Shipment tracking records flow from iPaaS.com into OroCommerce as the ordershippingtrackings resource.
Get Shipping Tracking by ID (GET)
[Base URL]/ordershippingtrackings/{shippingTrackingId}Get All Shipping Tracking (GET)
[Base URL]/ordershippingtrackings
Create Shipping Tracking (POST)
[Base URL]/ordershippingtrackings
Update Shipping Tracking (PATCH)
[Base URL]/ordershippingtrackings/{shippingTrackingId}Lookup and Reference Endpoints
These read-only endpoints resolve names, codes, and labels into the internal OroCommerce identifiers that other records reference. They support dynamic relationship resolution during transfers and are typically called as part of preparing a create or update.
Get Organization by Name (GET)
[Base URL]/organizations?filter[name][eq]={organizationName}Get User by Username (GET)
[Base URL]/users?filter[username][eq]={userName}Get Business Unit by Name (GET)
[Base URL]/businessunits?filter[searchText][eq]={businessUnitName}Get Customer User Role List (GET)
[Base URL]/customeruserroles
OroCommerce does not support label search on roles, so the integration retrieves the role list and matches the role name in code.
Get Customer Tax Code by Code (GET)
[Base URL]/customertaxcodes?filter[searchText][eq]={taxCode}Get Product Tax Code by Code (GET)
[Base URL]/producttaxcodes?filter[searchText][eq]={taxCode}Get Payment Term by Term (GET)
[Base URL]/paymentterms?filter[searchText][eq]={paymentTerm}Get Attribute Families (GET)
[Base URL]/attributefamilies?page[number]=1&page[size]=100
Get Product Unit by Label (GET)
[Base URL]/productunits?filter[id][eq]={productUnitLabel}Get Length Unit by Short Code (GET)
[Base URL]/lengthunits?filter[id][eq]={lengthUnitShortCode}Get Weight Unit by Short Code (GET)
[Base URL]/weightunits?filter[id][eq]={weightUnitShortCode}Get Catalog Category by Title (GET)
[Base URL]/categories?filter[searchText][eq]={catalogCategoryTitle}Get Catalog Category Titles by ID (GET)
[Base URL]/categories/{catalogCategoryId}/titlesGet Product Brand by Name (GET)
[Base URL]/brands?filter[searchText][eq]={productBrandName}Get Product Brand Names by ID (GET)
[Base URL]/brands/{productBrandId}/namesGet Product by SKU (GET)
[Base URL]/products?filter[sku][eq]={sku}Get Country by Name (GET)
[Base URL]/countries?filter[name]={countryName}Get Region by Name (GET)
[Base URL]/regions?filter[name]={regionName}Get Website by Name (GET)
[Base URL]/websites?filter[searchText]={websiteName}Get Entity Structure by Module (GET)
[Base URL]/entitystructures/{moduleName}Returns the entity schema for a module. The integration uses this to validate and create custom fields. The {moduleName} segment resolves to values such as product, productprice, productkititem, customeruser, customeraddress, and customeruseraddress.
Get Entity Relationship Data (GET)
[Base URL]/{entityName}/{entityId}/{relationshipName}A generic relationship lookup. The integration resolves {entityName}, {entityId}, and {relationshipName} at sync time to retrieve related records for an entity.
Get Product Relationship Data (GET)
[Base URL]/products/{productId}/{relationshipName}A product-specific relationship lookup, with {relationshipName} resolved at sync time.
Get Attribute Options by Entity Type (GET)
[Base URL]/{relatedEntityType}Retrieves the supported options for a related entity type, where {relatedEntityType} is resolved at sync time.
Authorization Endpoint
The integration authenticates with OroCommerce using OAuth 2.0 with the Authorization Code grant and PKCE (S256 code challenge method). Authorization is performed against your store instance's OAuth endpoint, which is served from the API URL without the admin API path. In the placeholders below, [Base URL without /api] represents your API URL, for example https://yourdomain.oro-cloud.com.
Authorize (GET)
[Base URL without /api]/oauth2-token/authorize
The user is directed to this endpoint to grant access. The integration supplies the client ID, redirect URI, requested scope, and a PKCE code challenge (S256). On success, OroCommerce redirects back to the configured redirect URL with an authorization code.
Token Exchange (POST)
[Base URL without /api]/oauth2-token
The integration exchanges the authorization code for an access token and a refresh token at this endpoint, and later uses the same endpoint to exchange a refresh token for a new access token. The request body carries the grant type (authorization_code for the initial exchange, refresh_token for renewals) along with the client ID, client secret, and the code or refresh token. The resulting access token is sent as a Bearer token on all subsequent API requests.
Related Documents
External References
These are OroCommerce's own published developer API documents.
