Manage configurations programmatically with Redwood Configurator
Interact with Redwood Configurator using the Configuration Runtime REST service to create, update, validate, and complete configurations from external applications and integration flows. The service helps developers and system integrators automate option selection and quantity updates, test model changes, and support scalable, API-driven configuration scenarios without requiring users to open the Configurator runtime UI.
Realize these benefits
- Use a third-party UI to capture configuration requirements in any format (PDF, UI form, and so on) and then pass those requirements directly to the Configurator service to create the configuration, make selections, and validate the configuration.
- Use the REST service to automatically select configuration options.
- Use the service to programmatically test changes between production and updated versions of a Configurator model to ensure backward compatibility of selections.
- Use an agentic interface to interact with the configuration through this service.
- Use the service for released versions of models or in the context of a commercial change order.
Supported Operations
| Operation | Description |
|---|---|
| Create Configuration | Creates a new configuration session for a configurable item using the specified model, organization, and effective date. This isn't an explicit operation by name. |
| Select | Selects a configurable component or option within the active configuration. |
| Deselect | Removes the selection of a configurable component or option from the active configuration. |
| Set Quantity | Sets the quantity of a quantity-enabled component, automatically adding or removing it as needed. |
| Set Value | Assigns a value to a transactional item attribute, text, integer, or decimal feature. |
| Validate | Evaluates the current configuration for rule, attribute, quantity, and selection validity without modifying user intent. |
| Finish | Performs final validation, saves the configuration, and closes the configuration session. |
| Query | Retrieves properties and state for provided components without changing the configuration. |
| Restore Configuration | Although not an explicit operation, the service can restore an existing configuration using its configuration header identifier and configuration revision identifier, allowing additional operations to be performed on the restored configuration. |
Additional Business Benefits
- Lightweight, JSON-based communication: Reduces development effort and improves performance for web and mobile-centric clients.
- Broad language and platform support: Any platform capable of making HTTP requests—such as JavaScript, Python, Java, or .NET—can consume the service without requiring a SOAP stack, broadening the range of supported integrations.
- Stateless interactions: Each REST request contains all the information required to process the operation, supporting horizontal scaling and simplifying the caching of configuration data across multiple nodes.
- Fine grained resource modeling: REST’s resource-oriented design maps naturally to Configurator entities such as selecting product options, evaluating validation rules, setting attribute values, and so on.
- Improved performance for high volume scenarios: The stateless nature makes REST services well-suited for handling large numbers of concurrent configuration requests from ecommerce sites, partner portals, or IoT devices.
- Easier integration with modern front ends: Front end frameworks (React, Angular, and Vue) commonly consume RESTful endpoints, allowing seamless integration of real time Configurator capabilities directly into web applications.
Try it yourselves
Use the following sample payload. This example request creates a new configuration for SampleATO model. Using the Select operation, select the SampleOption1 component in the configuration and then Finish the configuration.
{
"configurationRequest": {
"requestId": 1000,
"requestName": "MyModelRequest",
"requestDescription": "Configuration for my model SampleATO",
"callingApplicationCode": "FOM",
"inventoryItemNumber": "SampleATO",
"inventoryOrganizationCode": "V1",
"sessionEffectiveDate": "2026-05-13T00:00:01-07:00",
"lineQuantity": 1,
"executionSteps": [
{
"stepId": 1,
"stepType": "OPERATION",
"nodePath": "SampleATO.SampleOptionClass.SampleOption1",
"operation": "Select"
},
{
"stepId": 2,
"stepType": "OPERATION",
"operation": "Finish"
}
]
}
}
Sample response:
{
"configurationResponse": {
"requestId": 1000,
"status": "SUCCESS",
"message": "Execution steps processed successfully.",
"validationMode": "COLLECT_ALL_RESULTS",
"configurationDetails": {
"inventoryItemId": 100100008595008,
"inventoryOrganizationId": 204,
"inventoryItemNumber": "SampleATO",
"inventoryOrganizationCode": "V1",
"rootQuantity": 1,
"lineQuantity": 1,
"sessionEffectiveDate": "2026-05-25T00:00:01-07:00",
"callingApplicationId": 10500,
"callingApplicationCode": "FOM",
"configHeaderId": 300100745764896,
"configRevisionId": 300100745764897,
"configurationId": "300100745764896_300100745764897",
"configurationName": "SampleATO (Tue, 14 Jul 2026 15:42:32 GMT)",
"stepResults": [
{
"stepId": 1,
"stepType": "OPERATION",
"operation": "Select",
"nodePath": "SampleATO.SampleOptionClass.SampleOption1",
"status": "SUCCESS",
"resultCode": "SELECTED",
"message": "Component selected successfully.",
"changeApplied": true,
"configuratorPath": "100100008595008.100100008595009.100100008595010.100100008595011",
"alreadySelected": false
},
{
"stepId": 2,
"stepType": "OPERATION",
"operation": "Finish",
"nodePath": null,
"status": "SUCCESS",
"resultCode": "SAVED",
"message": "Configuration saved successfully.",
"changeApplied": true,
"headerId": 300100745764896,
"revisionNumber": 300100745764897
}
],
"configurationState": {
"isValid": true,
"configState": "Finished"
},
"messages": []
}
}
Steps to enable and configure
You don't need to do anything to enable this feature.
Tips and considerations
The service provides programmatic access to the Configurator runtime, enabling applications to create and interact with configurations. Applications can perform operations such as selecting or deselecting options, setting quantities and values, validating configurations, and completing configuration sessions. The service is designed primarily for configurator modelers and system integrators.
- Start with the required create inputs: callingApplicationCode, inventoryItemNumber, inventoryOrganizationCode, sessionEffectiveDate, and lineQuantity.
- Use execution steps for the workflow: Create, then apply operations such as Select, Deselect, SetQuantity, SetValue, Validate, and Finish.
- Include query steps when you need to inspect results: Queries can return values such as Selected, Quantity, Value, State, and child collections.
- Choose validation behavior carefully: COLLECT_ALL_RESULTS is the default, while FAIL_FAST and STRICT_NO_SIDE_EFFECTS are useful for stronger control.
- COLLECT_ALL_RESULTS: Runs all operations. and returns per-operation success or failure in OperationResults.
- FAIL_FAST: Stops at the first operation error and returns failure immediately.
- STRICT_NO_SIDE_EFFECTS: Runs validation and fails if processing causes any additional or unrequested changes.
- Plan for finish and restore: Finish closes the session and prevents further changes, while configurationHeaderId and configurationRevisionId can be used later to restore an existing configuration.
- Use change order context when testing in-flight model changes: Pass changeOrderNumber so the runtime evaluates the configuration against pending commercial change order revisions, rather than only the currently published model.
Key resources
Refer to the REST API for Oracle Fusion Cloud SCM guide, available on the Oracle Help Center.
Access requirements
If you're using custom job roles, then you need to add privileges identified as new in this update as well as validate that you've the previously delivered privileges listed.
| Privilege status | Privilege name and code |
|---|---|
| Previously Delivered |
Access Configurator Runtime CZ_CONFIGURATOR_RUNTIME_ACCESS_PRIV |