1. Overview

API for configuring the outbound synchronization channel and cronjob trigger.

1.1. Version information

Version : 1.0.0

1.2. URI scheme

Host : localhost:9002
BasePath : /odata2webservices/OutboundChannelConfig
Schemes : HTTPS

1.3. Tags

  • Metadata : Requests for the metadata which is an Entity Data Model XML (EDMX) schema that describes the entity types and their properties.

  • OutboundChannelConfigurations : Requests for creating, updating, or getting information about Outbound Channel Configurations.

  • Triggers : Requests for creating, or getting information about Triggers to cronjobs.

1.4. Consumes

  • application/json

1.5. Produces

  • application/json

1.6. External Docs

2. Paths

2.1. Get the metadata for the OutboundChannelConfig Integration Object

GET /$metadata

2.1.1. Description

The metadata is an Entity Data Model XML (EDMX) schema that describes the data models of the Integration Object. The schema provides information on the properties associated to the entities, and the relationships with each other.

2.1.2. Responses

HTTP Code Description Schema

200

An EDMX for the requested service

No Content

401

Unauthorized exception responses

403

Forbidden exception responses

2.1.3. Produces

  • application/xml

2.1.4. Tags

  • Metadata

2.2. Create/update an OutboundChannelConfiguration

POST /OutboundChannelConfigurations

2.2.1. Description

Create an OutboundChannelConfiguration and all its related items, such as the cronjob, stream container, and stream, automatically by setting autoCreate = true. The consumed destination and endpoint can be pre-existing, or created along with the rest of the channel configuration. If creating the consumed destination with the request, the user should choose between using basic or oauth credential. For more information about post behavior see Creating Outbound Sync Configurations

2.2.2. Parameters

Type Name Description Schema

Header

Post-Persist-Hook
optional

The execute method for the PostPersistHook invokes right after the item persists in the SAP Commerce platform. For more details see Persistence Hooks

string

Header

Pre-Persist-Hook
optional

The execute method for the PrePersistHook invokes right before the Integration Object sent in the POST or PATCH request persists in the SAP Commerce platform. For more details see Persistence Hooks

string

Header

integrationMessageId
optional

The integrationMessageId header allows the user to trace any InboundRequest back to the original POST, PATCH or DELETE request.

string

Body

body
required

2.2.3. Responses

HTTP Code Description Schema

201

Success response with a single OutboundChannelConfiguration

400

Error responses that may occur when sending a POST request in an attempt to create a new Item.

401

Unauthorized exception responses

403

Forbidden exception responses

415

Provided Media-Type is not supported

2.2.4. Consumes

  • application/json

2.2.5. Produces

  • application/json

2.2.6. Tags

  • OutboundChannelConfigurations

2.2.7. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "Key [payloadKey] in the payload does not match the key [pathKey] in the path."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 415
{
  "error" : {
    "code" : "null",
    "message" : {
      "lang" : "en",
      "value" : "Media type [application/x-www-form-urlencoded] is not supported."
    }
  }
}

2.3. Get all OutboundChannelConfigurations

GET /OutboundChannelConfigurations

2.3.1. Description

Get all the OutboundChannelConfigurations. Users can specify paging with $skip and $top, $expand deferred properties, and $filter results. For more information about get behavior see Retrieving Outbound Sync Configurations

2.3.2. Parameters

Type Name Description Schema

Query

$expand
optional

Specifies navigation properties for associated entries that will be inlined in the response body. By default, these navigation properties are represented as deferred links pointing to the item resource. See $expand

string

Query

$filter
optional

A predicate expression for selecting a subset of the items identified by the resource path. See $filter

string

Query

$inlinecount
optional

Specifies if the total number of items should be included in the response. See $inlinecount

enum (allpages, none)

Query

$skip
optional

The number of matching items to skip over before returning the result set. If skip is larger than the number of matching items then no items will be returned. See $skip

integer (int32)

Query

$top
optional

The maximum number of items to return. If it’s greater than or equal to the number of matching items existing in the platform, then all items will be returned. If it’s less than the number of matching items in the platform, a subset containing top number of items will be returned. See $top

integer (int32)

2.3.3. Responses

HTTP Code Description Schema

200

A collection of 0 or more OutboundChannelConfigurations

400

Error responses that may occur due to an exception related to the filter query parameter

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for GET operations.

2.3.4. Produces

  • application/json

2.3.5. Tags

  • OutboundChannelConfigurations

2.3.6. Example HTTP response

Response 400
{
  "error" : {
    "code" : "filter_not_supported",
    "message" : {
      "lang" : "en",
      "value" : "Nested filter [catalogVersion/catalog] of more than one level is not supported."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "null",
    "message" : {
      "lang" : "en",
      "value" : "Could not find property with name: 'nonExistingItemAttributeName'."
    }
  }
}

2.4. Get a single OutboundChannelConfiguration

GET /OutboundChannelConfigurations('{integrationKey}')

2.4.1. Description

Get a single OutboundChannelConfiguration by providing the integration key in the request. Users can expand deferred properties by specifying them as values to $expand.

2.4.2. Parameters

Type Name Description Schema

Path

integrationKey
required

key: integrationKey

string

Query

$expand
optional

Specifies navigation properties for associated entries that will be inlined in the response body. By default, these navigation properties are represented as deferred links pointing to the item resource. See $expand

string

2.4.3. Responses

HTTP Code Description Schema

200

Success response with a single OutboundChannelConfiguration

400

Error responses that may occur when a DELETE request is made in an attempt to delete an item.

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for GET operations.

2.4.4. Produces

  • application/json

2.4.5. Tags

  • OutboundChannelConfigurations

2.4.6. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "The integration key [0215CStaged%7CDefault%7C] is invalid. Please consult the IntegrationKey definition of [Product] for configuration details."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "null",
    "message" : {
      "lang" : "en",
      "value" : "Could not find property with name: 'nonExistingItemAttributeName'."
    }
  }
}

2.5. Delete an OutboundChannelConfiguration

DELETE /OutboundChannelConfigurations('{integrationKey}')

2.5.1. Description

Delete an OutboundChannelConfiguration given its integration key in the request. For more information about delete behavior see Deleting Outbound Sync Configurations

2.5.2. Parameters

Type Name Description Schema

Header

integrationMessageId
optional

The integrationMessageId header allows the user to trace any InboundRequest back to the original POST, PATCH or DELETE request.

string

Path

integrationKey
required

key: integrationKey

string

2.5.3. Responses

HTTP Code Description Schema

200

Indicates the OutboundChannelConfiguration was deleted successfully

No Content

400

Error responses that may occur when a DELETE request is made in an attempt to delete an item.

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for PATCH and DELETE operations.

2.5.4. Produces

  • application/json

2.5.5. Tags

  • OutboundChannelConfigurations

2.5.6. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "The integration key [0215CStaged%7CDefault%7C] is invalid. Please consult the IntegrationKey definition of [Product] for configuration details."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "not_found",
    "message" : {
      "lang" : "en",
      "value" : "[Product] with integration key [Staged%7CDefault%7Cprod2] was not found."
    }
  }
}

2.6. Update an existing OutboundChannelConfiguration

PATCH /OutboundChannelConfigurations('{integrationKey}')

2.6.1. Description

Update an existing OutboundChannelConfiguration given its integration key in the request. For more information about patch behavior see Updating Outbound Sync Configurations

2.6.2. Parameters

Type Name Description Schema

Header

Post-Persist-Hook
optional

The execute method for the PostPersistHook invokes right after the item persists in the SAP Commerce platform. For more details see Persistence Hooks

string

Header

Pre-Persist-Hook
optional

The execute method for the PrePersistHook invokes right before the Integration Object sent in the POST or PATCH request persists in the SAP Commerce platform. For more details see Persistence Hooks

string

Header

integrationMessageId
optional

The integrationMessageId header allows the user to trace any InboundRequest back to the original POST, PATCH or DELETE request.

string

Path

integrationKey
required

key: integrationKey

string

Body

body
required

Note: the OutboundChannelConfiguration’s code can’t be modified as it is the integration key, but can be included in the payload.

2.6.3. Responses

HTTP Code Description Schema

200

Success response with a single OutboundChannelConfiguration

400

Error responses with a 400 status code that may occur when an attempt is made to PATCH an existing Item.

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for PATCH and DELETE operations.

415

Provided Media-Type is not supported

2.6.4. Consumes

  • application/json

2.6.5. Produces

  • application/json

2.6.6. Tags

  • OutboundChannelConfigurations

2.6.7. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "The integration key [0215CStaged%7CDefault%7C] is invalid. Please consult the IntegrationKey definition of [Product] for configuration details."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "not_found",
    "message" : {
      "lang" : "en",
      "value" : "[Product] with integration key [Staged%7CDefault%7Cprod2] was not found."
    }
  }
}
Response 415
{
  "error" : {
    "code" : "null",
    "message" : {
      "lang" : "en",
      "value" : "Media type [application/x-www-form-urlencoded] is not supported."
    }
  }
}

2.7. Get the count of OutboundChannelConfigurations

GET /OutboundChannelConfigurations/$count

2.7.1. Description

Get only the count of OutboundChannelConfigurations, and not the configurations themselves.

2.7.2. Responses

HTTP Code Description Schema

200

A success response displaying the total count of OutboundChannelConfigurations.

string

2.7.3. Produces

  • text/plain

2.7.4. Tags

  • OutboundChannelConfigurations

2.8. Get the count of Triggers

GET /Trigger/$count

2.8.1. Description

Get only the count of Triggers, and not the triggers themselves.

2.8.2. Responses

HTTP Code Description Schema

200

A success response displaying the total count of Triggers.

string

2.8.3. Produces

  • text/plain

2.8.4. Tags

  • Triggers

2.9. Create/update a Trigger

POST /Triggers

2.9.1. Description

Create a Trigger providing the cronjob and a cron expression. The cronjob code, by convention, is the OutboundChannelConfiguration code + CronJob. For example, if the OutboundChannelConfiguration code is myChannelConfig, the cronjob code will be myChannelConfigCronJob.

2.9.2. Parameters

Type Name Description Schema

Header

Post-Persist-Hook
optional

The execute method for the PostPersistHook invokes right after the item persists in the SAP Commerce platform. For more details see Persistence Hooks

string

Header

Pre-Persist-Hook
optional

The execute method for the PrePersistHook invokes right before the Integration Object sent in the POST or PATCH request persists in the SAP Commerce platform. For more details see Persistence Hooks

string

Header

integrationMessageId
optional

The integrationMessageId header allows the user to trace any InboundRequest back to the original POST, PATCH or DELETE request.

string

Body

body
required

2.9.3. Responses

HTTP Code Description Schema

201

Success response with a single Trigger

400

Error responses that may occur when sending a POST request in an attempt to create a new Item.

401

Unauthorized exception responses

403

Forbidden exception responses

415

Provided Media-Type is not supported

2.9.4. Consumes

  • application/json

2.9.5. Produces

  • application/json

2.9.6. Tags

  • Triggers

2.9.7. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "Key [payloadKey] in the payload does not match the key [pathKey] in the path."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 415
{
  "error" : {
    "code" : "null",
    "message" : {
      "lang" : "en",
      "value" : "Media type [application/x-www-form-urlencoded] is not supported."
    }
  }
}

2.10. Get all Triggers

GET /Triggers

2.10.1. Description

Get all the Triggers. Users can specify paging with $skip and $top, $expand deferred properties, and $filter results.

2.10.2. Parameters

Type Name Description Schema

Query

$expand
optional

Specifies navigation properties for associated entries that will be inlined in the response body. By default, these navigation properties are represented as deferred links pointing to the item resource. See $expand

string

Query

$filter
optional

A predicate expression for selecting a subset of the items identified by the resource path. See $filter

string

Query

$inlinecount
optional

Specifies if the total number of items should be included in the response. See $inlinecount

enum (allpages, none)

Query

$skip
optional

The number of matching items to skip over before returning the result set. If skip is larger than the number of matching items then no items will be returned. See $skip

integer (int32)

Query

$top
optional

The maximum number of items to return. If it’s greater than or equal to the number of matching items existing in the platform, then all items will be returned. If it’s less than the number of matching items in the platform, a subset containing top number of items will be returned. See $top

integer (int32)

2.10.3. Responses

HTTP Code Description Schema

200

A collection of 0 or more Triggers

400

Error responses that may occur due to an exception related to the filter query parameter

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for GET operations.

2.10.4. Produces

  • application/json

2.10.5. Tags

  • Triggers

2.10.6. Example HTTP response

Response 400
{
  "error" : {
    "code" : "filter_not_supported",
    "message" : {
      "lang" : "en",
      "value" : "Nested filter [catalogVersion/catalog] of more than one level is not supported."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "null",
    "message" : {
      "lang" : "en",
      "value" : "Could not find property with name: 'nonExistingItemAttributeName'."
    }
  }
}

2.11. Get a single Trigger

GET /Triggers('integrationKey')

2.11.1. Description

Get a single Trigger by providing the integration key in the request. Users can expand deferred properties by specifying them as values to $expand.

2.11.2. Parameters

Type Name Description Schema

Query

$expand
optional

Specifies navigation properties for associated entries that will be inlined in the response body. By default, these navigation properties are represented as deferred links pointing to the item resource. See $expand

string

2.11.3. Responses

HTTP Code Description Schema

200

Success response with a single Trigger

400

Error responses that may occur when a DELETE request is made in an attempt to delete an item.

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for GET operations.

2.11.4. Produces

  • application/json

2.11.5. Tags

  • Triggers

2.11.6. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "The integration key [0215CStaged%7CDefault%7C] is invalid. Please consult the IntegrationKey definition of [Product] for configuration details."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "not_found",
    "message" : {
      "lang" : "en",
      "value" : "[Product] with integration key [Staged%7CDefault%7Cprod2] was not found."
    }
  }
}

2.12. Delete an Trigger

DELETE /Triggers('integrationKey')

2.12.1. Description

Delete an Trigger given its integration key in the request.

2.12.2. Parameters

Type Name Description Schema

Header

integrationMessageId
optional

The integrationMessageId header allows the user to trace any InboundRequest back to the original POST, PATCH or DELETE request.

string

2.12.3. Responses

HTTP Code Description Schema

200

Indicates the Trigger was deleted successfully

No Content

400

Error responses that may occur when a DELETE request is made in an attempt to delete an item.

401

Unauthorized exception responses

403

Forbidden exception responses

404

Not Found exception responses for PATCH and DELETE operations.

2.12.4. Produces

  • application/json

2.12.5. Tags

  • Triggers

2.12.6. Example HTTP response

Response 400
{
  "error" : {
    "code" : "invalid_key",
    "message" : {
      "lang" : "en",
      "value" : "The integration key [0215CStaged%7CDefault%7C] is invalid. Please consult the IntegrationKey definition of [Product] for configuration details."
    }
  }
}
Response 401
{
  "error" : {
    "code" : "unauthorized",
    "message" : {
      "lang" : "en",
      "value" : "user must be authenticated"
    }
  }
}
Response 403
{
  "error" : {
    "code" : "forbidden",
    "message" : {
      "lang" : "en",
      "value" : "user is not authorized for the operation"
    }
  }
}
Response 404
{
  "error" : {
    "code" : "not_found",
    "message" : {
      "lang" : "en",
      "value" : "[Product] with integration key [Staged%7CDefault%7Cprod2] was not found."
    }
  }
}

3. Definitions

3.1. $inlinecount

Type : enum (allpages, none)

3.2. BasicCredential

Specifies the information for basic authentication

Name Description Schema

id
required

The user identifier
Example : "johndoe"

string

password
required

The user password
Example : "pass123"

string

3.3. CollectionofOutboundChannelConfigurations

Name Schema

results
optional

3.4. CollectionofTriggers

Name Schema

results
optional

< Trigger > array

3.5. ConsumedDestination

The destination to send the items being synchronized. If creating a new ConsumedDestination, all the attributes are required. Choose one of basic credential or oauth credential.

Name Description Schema

additionalProperties
optional

Map containing any additional properties required by the destination

< string, string > map

credentialBasic
optional

credentialConsumedOauth
optional

destinationTarget
optional

endpoint
optional

id
required

The destination’s unique identifier
Example : "myDestination"

string

url
optional

The URL of the destination
Example : "https://mydestination.com"

string

3.6. CronJob

The outbound synchronization cronjob

Name Description Schema

code
required

The cronjob’s unique identifier. If the OutboundChannelConfiguration was auto generated, the cronjob’s code will be the OutboundChannelConfiguration’s code + CronJob.
Example : "myChannelConfigCronJob"

string

3.7. DestinationTarget

A container for events and destinations.

Name Description Schema

id
required

The destination target’s unique identifer
Example : "myDestinationTarget"

string

3.8. Endpoint

The webservice specification

Name Description Schema

id
required

The endpoint’s unique identifier
Example : "myEndPoint"

string

name
required

The endpoint’s name
Example : "MyEndpoint"

string

specUrl
required

The specification URL
Example : "https://localhost:9002/odata2webservices/MyProduct/$metadata"

string

version
required

The endpoint’s version
Example : "v1"

string

3.9. Error

Name Schema

code
optional

string

innererror
optional

string

message
required

3.10. IntegrationObject

The IntegrationObject to synchronize

Name Description Schema

code
required

The Integration Object code
Example : "MyProduct"

string

3.11. Message

Name Schema

lang
optional

string

value
optional

string

3.12. OauthCredential

Specifies the information for oauth authentication

Name Description Schema

clientId
required

The client’s identifier
Example : "myClientId"

string

clientSecret
required

The client’s secret
Example : "a093kas*)(#@)"

string

3.13. OutboundChannelConfiguration

Provides the specification on how to synchronize with an external system. By setting autoCreate = true all the related items to enable outbound synchronization to work will be generated automatically.

Name Description Schema

autoGenerate
optional

Indicates whether to auto generate related items. It is recommended to set this value to true.
Example : true

boolean

code
optional

The unique identifier for the configuration
Example : "myChannelConfig"

string

destination
optional

integrationKey
optional

The unique key that represents this configuration
Example : "myChannelConfig"

string

integrationObject
optional

synchronizeDelete
optional

Indicates if item deletions will be sent to an external system; otherwise they will be ignored
Example : true

boolean

3.14. Trigger

Triggers a cronjob to execute at the interval indicated by a cron expression

Name Description Schema

cronExpression
required

Cron expression specifying when to the trigger should execute
Example : "0/15 * * ? * *"

string

cronJob
required

3.15. Wrapper

Name Schema

d
optional

3.16. Wrapper1

Name Schema

d
optional

3.17. Wrapper2

Name Schema

d
optional

3.18. Wrapper3

Name Schema

d
optional

3.19. errorResponseObj

This is an internal representation of an error, and should not be used as part of the API.

Name Schema

error
optional

4. Security

4.1. auth

Type : basic