curl --request POST \
--url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/sync/plan/dry-run' \
--header "x-stateset-api-key: $STATESET_SYNC_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"tenantId": "acme-outdoors",
"salesChannel": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"fulfillmentSystem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"erpSystem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"controlPlane": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"includeInventory": true
}'
{
"planId": "string",
"tenantId": "acme-outdoors",
"status": "planned",
"startedAt": "2026-08-31T14:22:05Z",
"finishedAt": "2026-08-31T14:22:05Z",
"totalSteps": 1,
"succeeded": 1,
"failed": 1,
"skipped": 1,
"planned": 1,
"steps": [
{
"stepId": "string",
"operation": "order_ingest",
"from": "string",
"to": "string",
"status": "planned",
"startedAt": "2026-08-31T14:22:05Z",
"finishedAt": "2026-08-31T14:22:05Z",
"evidence": {},
"error": "string"
}
]
}
Build and dry-run a typed commerce sync plan without side effects.
Dry-run plan execution (steps are planned, not executed)
POST
/
v1
/
tenants
/
{tenant_id}
/
sync
/
plan
/
dry-run
curl --request POST \
--url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/sync/plan/dry-run' \
--header "x-stateset-api-key: $STATESET_SYNC_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"tenantId": "acme-outdoors",
"salesChannel": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"fulfillmentSystem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"erpSystem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"controlPlane": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"includeInventory": true
}'
{
"planId": "string",
"tenantId": "acme-outdoors",
"status": "planned",
"startedAt": "2026-08-31T14:22:05Z",
"finishedAt": "2026-08-31T14:22:05Z",
"totalSteps": 1,
"succeeded": 1,
"failed": 1,
"skipped": 1,
"planned": 1,
"steps": [
{
"stepId": "string",
"operation": "order_ingest",
"from": "string",
"to": "string",
"status": "planned",
"startedAt": "2026-08-31T14:22:05Z",
"finishedAt": "2026-08-31T14:22:05Z",
"evidence": {},
"error": "string"
}
]
}
Path parameters
string
required
Tenant identifier
Request body
object
string
required
object
required
object
required
object
object
boolean
Default false
Response
object
string
required
string
required
string
required
string (date-time)
required
string (date-time)
required
integer
required
integer
required
integer
required
integer
required
integer
required
Steps that ran only in dry-run mode and were not actually executed
object[]
required
Status codes
| Code | Meaning |
|---|---|
200 | Dry-run plan execution (steps are planned, not executed) |
401 | Unauthorized |
422 | Validation error |
curl --request POST \
--url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/sync/plan/dry-run' \
--header "x-stateset-api-key: $STATESET_SYNC_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"tenantId": "acme-outdoors",
"salesChannel": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"fulfillmentSystem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"erpSystem": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"controlPlane": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "Replacement tent pole set",
"systemKind": "sales_channel",
"capabilities": [
"pull_orders"
]
},
"includeInventory": true
}'
{
"planId": "string",
"tenantId": "acme-outdoors",
"status": "planned",
"startedAt": "2026-08-31T14:22:05Z",
"finishedAt": "2026-08-31T14:22:05Z",
"totalSteps": 1,
"succeeded": 1,
"failed": 1,
"skipped": 1,
"planned": 1,
"steps": [
{
"stepId": "string",
"operation": "order_ingest",
"from": "string",
"to": "string",
"status": "planned",
"startedAt": "2026-08-31T14:22:05Z",
"finishedAt": "2026-08-31T14:22:05Z",
"evidence": {},
"error": "string"
}
]
}
Last modified on August 31, 2026