This is a html view of the json schema please take the json schema as reference DOWNLOAD THE JSON SCHEMA

DocumentExport

Type: object

Internal This schema is used internally by Spark, not for OpCo integration.
Object that will be enriched for document export

Type: object

Type: string

The unique identifier for the document to export


Example:

"1097632349443"

Type: string

Id of the user

Must match regular expression: ^[0-9]+$
Example:

"776544"

Type: string

OpCo internal system's unique identifier for the account.

Must match regular expression: ^(?=\s*\S).*$
Example:

"776544"

Type: string

Operating company's unique identifier


Example:

"BEL-CEBEO"

Type: string

Commercial organization identifier

Must match regular expression: ^(?=\s*\S).*$
Example:

"CO1"

Type: string

Locale intended to identify current user language


Example:

"fr-BE"

Type: enum (of string)

format of the exported document

Must be one of:

  • "PDF"
  • "CSV"

Example:

"PDF"

Type: array

Set of permissions of customer requiring document export

No Additional Items

Each item of this array must be:

permission

Type: enum (of string)

Enumeration of permission available in the Spark platform.

Must be one of:

  • "MANAGE_USERS"
  • "VIEW_NET_PRICE"
  • "VIEW_GROSS_PRICE"
  • "VIEW_ORDER_LIST"
  • "CONTRIBUTE_CART"
  • "VALIDATE_CART"
  • "EXPORT_INVOICE"
  • "PLACE_ORDER_WITHOUT_VALIDATION"

Example:

"VIEW_NET_PRICE"

Examples:

"MANAGE_USERS"
"CONTRIBUTE_CART"

Type: object

This object contains all the optional fields that could be needed in input

Type: string

Cart identifier

Must match regular expression: ^[0-9]+$
Example:

"17050283147243520"

Type: array of string

An array of product identifiers that will be used as input to fill the product section

No Additional Items

Each item of this array must be:

Type: array of string

An array of the opco identifier of the credit note or the invoice.

No Additional Items

Each item of this array must be:

Type: array of string

Order identifier

Must match regular expression: ^[0-9]+$ No Additional Items

Each item of this array must be:

Type: string

Example:

"17050283147243520"

Type: array of string

An array Facility identifier that will be used as input to fill the facility section

No Additional Items

Each item of this array must be:

Type: array of string

An array User identifier that will be used as input

No Additional Items

Each item of this array must be:

Type: string

Type: array of string

An array User identifier that will be used as input

No Additional Items

Each item of this array must be:

Cart

Type: object

Type: string

Cart id. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code

Must match regular expression: ^[0-9]+$
Example:

"17050283147243520"

Type: string

Cart name. If the name is not filled in, its value will be set to "Shopping Cart".


Example:

"Shopping Cart."

Type: enum (of string)

Cart status:
* IN_PROGRESS - The most common status for a cart during most of its ‘lifecycle'. The cart can be modified.
* APPROVAL_REQUIRED - Short term status. A contributor will request the approval for the cart once she/he has finished the constitution. If the cart approval request is declined the cart go back to in progress. When approval is requested, the cart cannot be modified by the contributor, however, it could be modified by the validator.
* APPROVED - The cart has been approved by a user - which allows to progress to the payment process in checkout for a user with appropriate permissions. The cart cannot be modified.
* TRANSACTION_IN_PROGRESS - The cart is submitted to a transaction which will lead to payment and order propagation or alternatively to a failed payment. The cart cannot be modified.
* BULK_ADD_IN_PROGRESS - a bulk add of items to the cart is in progress. The cart cannot be modified.
* AT_COUNTER - The cart is submitted to sales rep when the mode is IN_STORE. The cart cannot be modified.

Must be one of:

  • "IN_PROGRESS"
  • "APPROVAL_REQUIRED"
  • "APPROVED"
  • "TRANSACTION_IN_PROGRESS"
  • "BULK_ADD_IN_PROGRESS"
  • "AT_COUNTER"

Example:

"IN_PROGRESS"

Type: string

OpCo account's identifier from which the cart is created.

Must match regular expression: ^(?=\s*\S).*$
Example:

"4999569661752721026"

Type: string

Commercial organization identifier. Only present if the account includes one.

Must match regular expression: ^(?=\s*\S).*$
Example:

"4999569661752721026"

Type: stringFormat: date-time

Creation date time of the cart


Example:

"2020-10-12T08:30:22.804528Z"

Type: stringFormat: date-time

Last modification date time of the cart


Example:

"2020-10-12T08:30:22.804528Z"

Type: stringFormat: date-time

Last date-time of cart rich synchronization with Opco ERP


Example:

"2020-10-12T08:30:22.804528Z"

Address

Type: object

Address to which the billing information would be sent


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

The city name


Example:

"Bruges"

Type: string

The region name


Example:

"Frandre"

Type: string

The department name


Example:

"N/A"

Type: string

Country code


Example:

"Belgium"

Type: string

Postal code


Example:

"0287"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's last name


Example:

"Doe"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"

LogisticDetails

Type: object

Information about the logistic details of the current cart (logistic method, logistic preferences, logistic options, delivery address, facility id)

Type: enum (of string)

Logistic method chosen for the cart

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"PICK_UP"

Type: array of enum (of string)

List of supported logistic methods for the current cart. This field is temporary and should only be used in agreement with the C&C team

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Examples:

"PICK_UP"
"DELIVERY"

Type: string

Unique identifier of the consolidated distribution center facility from which the order will be delivered


Example:

"cdc_erp_id_1"

Type: string

Unique identifier of the facility


Example:

"395"

Type: string

description: Name of the facility used


Example:

"SONEPAR Facility"

Type: string

Id of the marketplace seller


Example:

"2012"

Type: string

Name of the marketplace seller


Example:

"Ampoules Cools"

Type: string

Id of the opco seller


Example:

"2010"

Address

Type: object

The address used for delivery when logistic method is 'DELIVERY'


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

The city name


Example:

"Bruges"

Type: string

The region name


Example:

"Frandre"

Type: string

The department name


Example:

"N/A"

Type: string

Country code


Example:

"Belgium"

Type: string

Postal code


Example:

"0287"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's last name


Example:

"Doe"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"

Type: array

the list of logistic options available for the selected logistic method

No Additional Items

Each item of this array must be:

LogisticOption

Type: object

A logistic option available for the selected logistic method

Type: boolean

This boolean will be true if the logistic option was selected by the customer or it was selected by the opco as the recommended one


Examples:

true
false

Type: string

The code of the logistic option


Example:

"STANDARD"

Type: string

The title of the logistic option to be displayed to the end user


Example:

"STANDARD delivery"

Type: string

The description of the logistic option to be displayed to the end user


Example:

"choose this option if you want a fast delivery"

Price

Type: object

The cost of this logistic option

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

this is a list of logistic scenarios available for the current logistic option.(e.g deliver all the products at the same time is a logistic scenario)

No Additional Items

Each item of this array must be:

LogisticScenario

Type: object

logistic scenario available for the current logistic option

Type: boolean

This boolean will be true if the logistic option was selected by the customer or it was selected by the opco as the recommended one


Examples:

true
false

Type: string

The code of the logistic option


Example:

"1_DELIVERY"

Type: string

The title of the logistic option to be displayed to the end user


Example:

"1_DELIVERY"

Type: string

The description of the logistic option to be displayed to the end user


Example:

"choose this scenario if you want all your products to be delivered at the same time"

Type: enum (of string)

The pick up mode of the current scenario. This field could be filled when the logisticMethod is PICK_UP

Must be one of:

  • "COUNTER"
  • "LOCKER"

Example:

"LOCKER"

Price

Type: object

The cost of this logistic scenario


Example:

{
    "amount": 5,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

A list of groups of line items corresponding to the way the cart will be fulfilled

No Additional Items

Each item of this array must be:

ShippingIntentGroup

Type: object

logistic scenario available for the current logistic option

Type: integerFormat: int32

The id of the shippingIntentGroup


Example:

1

Type: string

Additional information about the shipping intent group


Example:

"Pick up available 24/7, call the lobby 1 hour before"

Type: stringFormat: date

The expected pickup/delivery date in ISO-8601 format of this shipping group proposed by the opco


Example:

"2021-07-23"

Type: stringFormat: time

The expected delivery time in ISO-8601 format of this shipping group proposed by the opco. The time is in UTC timezone


Example:

"08:30:00.804528Z"

Type: stringFormat: date

The custom pickup/delivery date in ISO-8601 format chosen by the user for this shipping group


Example:

"2021-07-24"

AlternativeLogisticDetails

Type: object

This object contains the logistic details of the facility in cases where additional logistic details are applicable current option. e.g Facility for each shipping intent group to support multi-cdc delivery

Type: enum (of string)

The logistic method in case when this logistic information is to be shown to the end user even if the logistic method choice made is different e.g - User chooses delivery but also sees the express PICK UP option and vice versa

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"DELIVERY"

Address

Type: object

The alternative delivery address


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: array

a list of line items part of this shipping group

No Additional Items

Each item of this array must be:

ShippingIntentGroupLineItem

Type: object

a line item belonging to a shippingIntentGroup

Type: string

a reference to a line item. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code


Example:

"2196602318024039368"

Type: string

Unique product identifier for a product. Could be a gtin, EAN, UPC, skuid ...


Example:

"3675925"


Example:

{
    "lineItemId": "2196602318024039368",
    "productId": "3675925",
    "quantity": 2
}

Example:

{
    "id": 1,
    "expectedAvailabilityDate": "2021-07-23",
    "expectedAvailabilityTime": "08:30:00.804528Z",
    "customAvailabilityDate": "2021-07-24",
    "lineItems": [
        {
            "lineItemId": "2196602318024039368",
            "productId": "3675925",
            "quantity": 2
        }
    ]
}

Price

Type: object

The total price of all items added to the cart after applying promotions, including surcharges and shipping costs related to current scenario. This field is included in the response only if it is calculated by the opcos when performing a rich synchronization

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items added to the cart after applying promotions, including surcharges, taxes and shipping costs related to current scenario. This field is included in the response only if it is calculated by the opcos when performing a rich synchronization

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

AlternativeLogisticDetails

Type: object

This object contains the alternative logistic details of the current option. e.g Express pick up at CDC requires facility id etc

Type: enum (of string)

The logistic method in case when this logistic information is to be shown to the end user even if the logistic method choice made is different e.g - User chooses delivery but also sees the express PICK UP option and vice versa

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"DELIVERY"

Type: string

The alternative facility id


Example:

"205987"

Address

Type: object

The alternative delivery address


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"

Type: array

list of logistic details regarding marketplace products

No Additional Items

Each item of this array must be:

LogisticDetails

Type: object

Information about the logistic details of the current cart (logistic method, logistic preferences, logistic options, delivery address, facility id)

Type: enum (of string)

Logistic method chosen for the cart

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"PICK_UP"

Type: array of enum (of string)

List of supported logistic methods for the current cart. This field is temporary and should only be used in agreement with the C&C team

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Examples:

"PICK_UP"
"DELIVERY"

Type: string

Unique identifier of the consolidated distribution center facility from which the order will be delivered


Example:

"cdc_erp_id_1"

Type: string

Unique identifier of the facility


Example:

"395"

Type: string

description: Name of the facility used


Example:

"SONEPAR Facility"

Type: string

Id of the marketplace seller


Example:

"2012"

Type: string

Name of the marketplace seller


Example:

"Ampoules Cools"

Type: string

Id of the opco seller


Example:

"2010"

Address

Type: object

The address used for delivery when logistic method is 'DELIVERY'


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

The city name


Example:

"Bruges"

Type: string

The region name


Example:

"Frandre"

Type: string

The department name


Example:

"N/A"

Type: string

Country code


Example:

"Belgium"

Type: string

Postal code


Example:

"0287"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's last name


Example:

"Doe"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"

Type: array

the list of logistic options available for the selected logistic method

No Additional Items

Each item of this array must be:

LogisticOption

Type: object

A logistic option available for the selected logistic method

Type: boolean

This boolean will be true if the logistic option was selected by the customer or it was selected by the opco as the recommended one


Examples:

true
false

Type: string

The code of the logistic option


Example:

"STANDARD"

Type: string

The title of the logistic option to be displayed to the end user


Example:

"STANDARD delivery"

Type: string

The description of the logistic option to be displayed to the end user


Example:

"choose this option if you want a fast delivery"

Price

Type: object

The cost of this logistic option

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

this is a list of logistic scenarios available for the current logistic option.(e.g deliver all the products at the same time is a logistic scenario)

No Additional Items

Each item of this array must be:

LogisticScenario

Type: object

logistic scenario available for the current logistic option

Type: boolean

This boolean will be true if the logistic option was selected by the customer or it was selected by the opco as the recommended one


Examples:

true
false

Type: string

The code of the logistic option


Example:

"1_DELIVERY"

Type: string

The title of the logistic option to be displayed to the end user


Example:

"1_DELIVERY"

Type: string

The description of the logistic option to be displayed to the end user


Example:

"choose this scenario if you want all your products to be delivered at the same time"

Type: enum (of string)

The pick up mode of the current scenario. This field could be filled when the logisticMethod is PICK_UP

Must be one of:

  • "COUNTER"
  • "LOCKER"

Example:

"LOCKER"

Price

Type: object

The cost of this logistic scenario


Example:

{
    "amount": 5,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

A list of groups of line items corresponding to the way the cart will be fulfilled

No Additional Items

Each item of this array must be:

ShippingIntentGroup

Type: object

logistic scenario available for the current logistic option

Type: string

Additional information about the shipping intent group


Example:

"Pick up available 24/7, call the lobby 1 hour before"

Type: stringFormat: date

The expected pickup/delivery date in ISO-8601 format of this shipping group proposed by the opco


Example:

"2021-07-23"

Type: stringFormat: time

The expected delivery time in ISO-8601 format of this shipping group proposed by the opco. The time is in UTC timezone


Example:

"08:30:00.804528Z"

Type: stringFormat: date

The custom pickup/delivery date in ISO-8601 format chosen by the user for this shipping group


Example:

"2021-07-24"

AlternativeLogisticDetails

Type: object

This object contains the logistic details of the facility in cases where additional logistic details are applicable current option. e.g Facility for each shipping intent group to support multi-cdc delivery

Type: enum (of string)

The logistic method in case when this logistic information is to be shown to the end user even if the logistic method choice made is different e.g - User chooses delivery but also sees the express PICK UP option and vice versa

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"DELIVERY"

Address

Type: object

The alternative delivery address


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: array

a list of line items part of this shipping group

No Additional Items

Each item of this array must be:

ShippingIntentGroupLineItem

Type: object

a line item belonging to a shippingIntentGroup

Type: string

a reference to a line item. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code


Example:

"2196602318024039368"


Example:

{
    "lineItemId": "2196602318024039368",
    "productId": "3675925",
    "quantity": 2
}

Example:

{
    "id": 1,
    "expectedAvailabilityDate": "2021-07-23",
    "expectedAvailabilityTime": "08:30:00.804528Z",
    "customAvailabilityDate": "2021-07-24",
    "lineItems": [
        {
            "lineItemId": "2196602318024039368",
            "productId": "3675925",
            "quantity": 2
        }
    ]
}

Price

Type: object

The total price of all items added to the cart after applying promotions, including surcharges and shipping costs related to current scenario. This field is included in the response only if it is calculated by the opcos when performing a rich synchronization

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items added to the cart after applying promotions, including surcharges, taxes and shipping costs related to current scenario. This field is included in the response only if it is calculated by the opcos when performing a rich synchronization

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

AlternativeLogisticDetails

Type: object

This object contains the alternative logistic details of the current option. e.g Express pick up at CDC requires facility id etc

Type: enum (of string)

The logistic method in case when this logistic information is to be shown to the end user even if the logistic method choice made is different e.g - User chooses delivery but also sees the express PICK UP option and vice versa

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"DELIVERY"

Address

Type: object

The alternative delivery address


Example:

{
    "addressLine1": "chaussée Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

The cart or the open order identifier at opco system level


Example:

"cart-1615220019126"

Type: array

Special price agreements

No Additional Items

Each item of this array must be:


SpecialPriceAgreement

Type: object

Special price agreement

Type: string

Identifier of the special price agreement


Example:

"47384781"

Type: string

Title of the special price agreement


Example:

"SPA 1 cheaper than base and SPA 2"
Type: object

The following properties are required:

  • title

Examples:

{
    "id": "47384781",
    "title": "SPA 1 cheaper than base and SPA 2"
}
{
    "id": "47384782",
    "title": "SPA 2 cheaper than base but more expensive than SPA 2"
}

Project

Type: object

The project associated to the cart

Type: string

Unique identifier of the project


Example:

"47384783"

Type: string

The name of the project


Example:

"StandElec project"

Quote

Type: object

The quote associated to the cart

Type: string

Unique identifier of the quote


Example:

"quote-001"

Type: string

The name of the quote


Example:

"Quote 001"

Type: string

The quote code provided by the OpCo for the Customer. If this field is provided, spark will display it to the customer instead of the quoteId


Example:

"49995666"

Type: string

The version of this quote. Used by some opco system to select the right version of the quote.


Example:

"1"

Type: array

list of items added to the cart. Last added item is in the top

No Additional Items

Each item of this array must be:

Item

Type: object

This object represent a product item into cart

Type: string

Unique Id to identify an item's occurrence in the cart. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code

Must match regular expression: ^[0-9]+$
Example:

"2196602318024039368"

Type: string

The identifier of the line item within the quote in the OpCo system. It can be an alpha numeric value.


Example:

"4999569661752721026"

Type: enum (of string)

Different types of line items :
* PRODUCT - when the item contains a product available in spark catalog
* OFFLINE_PRODUCT - when the item contains a product not available in spark catalog
* PROMOTION - when the line item is a cart promotion

Must be one of:

  • "PRODUCT"
  • "OFFLINE_PRODUCT"
  • "PROMOTION"

Example:

"PRODUCT"

Type: array of string

A list of item ids related to the current item. In case of promotion, they refer to the items that triggered the promotion

No Additional Items

Each item of this array must be:


Example:

"1234"

Type: enum (of string)

A flag to identify whether the item was added from spark or during the synchronization with opco. An item with null source should be considered as an item added from spark

Must be one of:

  • "SPARK"
  • "OPCO"

Example:

"SPARK"

Type: string

Unique product identifier for a product. Could be a gtin, EAN, UPC, skuid ...


Example:

"3675925"

OfflineProduct

Type: object

Details of the offline product. This property exists only if itemType is OFFLINE_PRODUCT


Example:

{
    "brandName": "Legrand",
    "productTitle": "BATTERY CABINETS"
}

Type: string

The brand of the offline product


Example:

"Legrand"

Type: string

The title of the offline product, according the selected language of the customer (Accept-Language)


Example:

"BATTERY CABINETS"

Type: integer

number of units added to the cart.


Example:

2

Prices

Type: object

Contains the detail of prices related to the current product and line item

Price

Type: object

This is the product unit price that the customer will pay to the OPCO, without taxes, before applying promotion.


Example:

{
    "amount": 1000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Promotion percentage for the net price. No promotion percentage means there is either no promotion, or the promotion is not based on a promotion percentage.


Example:

10

Price

Type: object

This is the product unit price that the customer will pay to the OPCO, without taxes, after applying promotion. No promotional net price on the response means that no promotion is applied to the product


Example:

{
    "amount": 900,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

PromotionDetails

Type: object

Details of the promotion applied to this item


Example:

{
    "campaignId": "7575785",
    "title": "10% de réduction jusqu'à épuisement du stock",
    "alternateProductId": "9898989"
}

Type: string

Campaign id to which this promotion is associated


Example:

"7575785"

Type: string

A human readable description explaining the promotions eligibility according to chosen language


Example:

"Achetez 3 articles et obtenez 10% de réduction"

Type: string

the alternate product id (Since promotions in cebeo is handled by maintaining 2 different id for normal and promotional product), might not be required by other opcos


Example:

"9898989"

Price

Type: object

This is the product unit price that the customer will pay, without taxes, after applying the quote discount.


Example:

{
    "amount": 900,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

SpecialPriceAgreement

Type: object

Special price agreement applied to this item


Example:

{
    "id": "47384781",
    "title": "SPA 1 cheaper than base and SPA 2"
}

Type: string

Identifier of the special price agreement


Example:

"47384781"

Type: string

Title of the special price agreement


Example:

"SPA 1 cheaper than base and SPA 2"

PriceContext

Type: object

Details about the type of this price.


Example:

{
    "id": "47384781",
    "title": "SPA 1 cheaper than base and SPA 2",
    "type": "SPECIAL_PRICE_AGREEMENT"
}

Type: string

an identifier of the contract or project related to this price


Example:

"7575785"

Type: string

A short title for this price according the selected language of the customer (Accept-Language)


Example:

"Contract schneider"

Type: enum (of string)

The type of this price when set to
- SPECIALPRICEAGREEMENT the id field should contains the contractId
- PROJECT the id field should contains the projectId
- STANDARD the id field can contains any identifier of this price, example the contractId (DEFAULT)

Must be one of:

  • "SPECIAL_PRICE_AGREEMENT"
  • "PROJECT"
  • "STANDARD"

Example:

"SPECIAL_PRICE_AGREEMENT"

Type: array

List of taxes to be applied to net price or promotional net price in case of promotion

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains information about a tax. May contain a percentage or a taxAmount or both.

Type: string

The type of the tax.


Example:

"VAT"

Type: boolean

Is the tax applied as a surcharge or not (non-surcharge taxes apply to the price including surcharges).


Example:

false

Price

Type: object

Amount of the tax


Example:

{
    "amount": "2160",
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Percentage of the tax


Example:

20

Example:

{
    "type": "VAT",
    "surcharge": false,
    "percentage": 20
}

Price

Type: object

This is the line item price that the customer will pay to the OPCO, without taxes, after applying promotion. Equals (netPrice * quantity) for items without promotion or (promotionalNetPrice * quantity) for items with promotion


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

List of taxes to be applied to item price

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains information about a tax. May contain a percentage or a taxAmount or both.

Type: string

The type of the tax.


Example:

"VAT"

Type: boolean

Is the tax applied as a surcharge or not (non-surcharge taxes apply to the price including surcharges).


Example:

false

Price

Type: object

Amount of the tax


Example:

{
    "amount": "2160",
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Percentage of the tax


Example:

20

Example:

{
    "type": "VAT",
    "surcharge": false,
    "taxAmount": {
        "amount": 360,
        "scale": 2,
        "currency": "EUR"
    },
    "percentage": 20
}

Price

Type: object

This is the line item price that the customer will pay to the OPCO, including taxes, after applying promotion. Equals (netPrice * quantity + taxes) for items without promotion or (promotionalNetPrice * quantity + taxes) for items with promotion


Example:

{
    "amount": 2160,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Examples:

{
    "id": "47138067260809216",
    "productId": "3675925",
    "itemType": "PRODUCT",
    "source": "SPARK",
    "quantity": 2,
    "prices": {
        "netPrice": {
            "amount": 1000,
            "scale": 2,
            "currency": "EUR"
        },
        "promotionalNetPercentage": 10,
        "promotionalNetPrice": {
            "amount": 900,
            "scale": 2,
            "currency": "EUR"
        },
        "promotionDetails": {
            "campaignId": "7575785",
            "title": "10% de réduction jusqu'à épuisement du stock",
            "alternateProductId": "9898989"
        },
        "specialPriceAgreement": {
            "id": "47384781",
            "title": "SPA 1 cheaper than base and SPA 2"
        },
        "context": {
            "type": "SPECIAL_PRICE_AGREEMENT",
            "id": "47384781",
            "title": "SPA 1 cheaper than base and SPA 2"
        },
        "taxes": [
            {
                "type": "VAT",
                "surcharge": false,
                "percentage": 20
            },
            {
                "type": "BEBAT",
                "surcharge": true,
                "taxAmount": {
                    "amount": 100,
                    "scale": 2,
                    "currency": "EUR"
                },
                "percentage": 10
            }
        ],
        "itemPrice": {
            "amount": 1800,
            "scale": 2,
            "currency": "EUR"
        },
        "itemTaxes": [
            {
                "type": "VAT",
                "surcharge": false,
                "taxAmount": {
                    "amount": 400,
                    "scale": 2,
                    "currency": "EUR"
                },
                "percentage": 20
            },
            {
                "type": "BEBAT",
                "surcharge": true,
                "taxAmount": {
                    "amount": 200,
                    "scale": 2,
                    "currency": "EUR"
                },
                "percentage": 10
            }
        ],
        "itemPriceIncludingTaxes": {
            "amount": 2400,
            "scale": 2,
            "currency": "EUR"
        }
    }
}
{
    "id": "47138067260809230",
    "productId": "3675921",
    "itemType": "PRODUCT",
    "source": "OPCO",
    "quantity": 3,
    "prices": {
        "netPrice": {
            "amount": 4000,
            "scale": 2,
            "currency": "EUR"
        },
        "taxes": [
            {
                "type": "VAT",
                "surcharge": false,
                "percentage": 30
            }
        ],
        "itemPrice": {
            "amount": 12000,
            "scale": 2,
            "currency": "EUR"
        },
        "itemTaxes": [
            {
                "type": "VAT",
                "surcharge": false,
                "taxAmount": {
                    "amount": 3600,
                    "scale": 2,
                    "currency": "EUR"
                },
                "percentage": 30
            }
        ],
        "itemPriceIncludingTaxes": {
            "amount": 15600,
            "scale": 2,
            "currency": "EUR"
        }
    }
}
{
    "id": "47138067260809450",
    "productId": "3675934",
    "itemType": "OFFLINE_PRODUCT",
    "source": "OPCO",
    "offlineProduct": {
        "brandName": "Legrand",
        "productTitle": "BATTERY CABINETS"
    },
    "quantity": 1,
    "prices": {
        "netPrice": {
            "amount": 500,
            "scale": 2,
            "currency": "EUR"
        },
        "taxes": [
            {
                "type": "VAT",
                "surcharge": false,
                "percentage": 30
            }
        ],
        "itemPrice": {
            "amount": 500,
            "scale": 2,
            "currency": "EUR"
        },
        "itemTaxes": [
            {
                "type": "VAT",
                "surcharge": false,
                "taxAmount": {
                    "amount": 150,
                    "scale": 2,
                    "currency": "EUR"
                },
                "percentage": 30
            }
        ],
        "itemPriceIncludingTaxes": {
            "amount": 650,
            "scale": 2,
            "currency": "EUR"
        }
    }
}

Type: array

List of coupons applied to the cart.

No Additional Items

Each item of this array must be:

Coupon

Type: object

This object represents a coupon into cart

Type: string

Unique Id to identify a coupon occurrence in the cart. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code

Must match regular expression: ^[0-9]+$
Example:

"2196602318024039368"

Type: string

The coupon code


Example:

"SONEPAR_BIRTHDAY23"

Type: string

A description of the coupon


Example:

"50€ discount on cart because it is our birthday"

Price

Type: object

The discount provided by the coupon


Example:

{
    "amount": 5000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: boolean

A flag showing whether or not the presence of other coupons is tolerated


Example:

true

Type: array of string

A list of item ids related to the coupon.

No Additional Items

Each item of this array must be:


Examples:

"1234"
"5647"

Type: array

Information about the coupon

No Additional Items

Each item of this array must be:

Message

Type: object

This object represents a business message to show to the end user. A message could contain either a code or a text.

Type: object

Type: enum (of string)

the severity of the message that could be used to decide on message formatting

Must be one of:

  • "INFO"
  • "WARN"
  • "ERROR"

Example:

"INFO"

Type: boolean

A 'blocker' message prevents the redirection to the checkout page. This flag is set to 'true' when the message requires customer attention.


Example:

true

MessageCode

Type: object

Type: enum (of string)

the code of the message

Must be one of:

  • "ITEM_REMOVED"
  • "ITEM_ADDED"
  • "ITEM_PRICES_CHANGED"
  • "ITEM_QUANTITY_CHANGED"
  • "COUPON_REMOVED"

Example:

"ITEM_REMOVED"

MessageText

Type: object

Type: string

the text of the message


Example:

"we would aim to provide all products to you by tomorrow"

Examples:

{
    "severity": "WARN",
    "isBlocker": false,
    "text": "15€ stil remaining before applying coupon"
}
{
    "severity": "WARN",
    "isBlocker": false,
    "text": "The coupon will expire soon"
}

Example:

{
    "id": "47138067260809216",
    "code": "WINTER_2022",
    "description": "Winter is coming! 50€ special discount!",
    "discount": {
        "amount": 5000,
        "scale": 2,
        "currency": "EUR"
    },
    "exclusive": true,
    "relatedLineItemsIds": [],
    "messages": [
        {
            "type": "COUPON",
            "severity": "WARN",
            "text": "This coupon cannot be combined with other"
        }
    ]
}

Type: array

The list of cart contributors

No Additional Items

Each item of this array must be:

Contributor

Type: object

Type: string

Id of the user. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code


Example:

"14569778234085376"

Type: string

The contributor's email


Example:

"john.doe@sonepar.com"

Type: string

The contributor's full name


Example:

"John Doe"

Type: boolean

A flag to define whether the contributor is the creator of the cart or not


Example:

true

Type: boolean

A flag to define whether the contributor is a validator of the cart or not


Example:

false

Type: boolean

A flag to define whether the contributor is using an onbehalf session on or not


Example:

false

Example:

{
    "userId": "14569778234085376",
    "email": "john.doe@sonepar.com",
    "fullName": "John Doe",
    "creator": true,
    "validator": false,
    "onBehalf": false
}

Type: array

List of errors returned by cart synchronization api during BASIC or RICH sync, having items within this list must blocks placing an order for the current cart

No Additional Items

Each item of this array must be:

SynchronizationError

Type: object

Type: enum (of string)

Error code

Must be one of:

  • "TECHNICAL_FAILURE"
  • "UNAUTHORIZED"
  • "FORBIDDEN"
  • "OPCO_NOT_FOUND"
  • "CART_NOT_FOUND"
  • "ADDRESS_NOT_FOUND"
  • "FACILITY_NOT_FOUND"
  • "ACCOUNT_NOT_FOUND"
  • "USER_NOT_FOUND"
  • "INPUT_ERROR"
  • "ORG_NOT_FOUND"
  • "SCENARIO_NOT_FOUND"
  • "INVALID_SHIPPING_ADDRESS"
  • "INVALID_BILLING_ADDRESS"
  • "QUOTE_NOT_FOUND"
  • "QUOTE_CART_MISMATCH"

Example:

"INPUT_ERROR"

Type: string

The error message


Example:

"Postal number non-existent or municipality incorrect"

Example:

{
    "code": "INPUT_ERROR",
    "message": "Postal number non-existent or municipality incorrect"
}

Price

Type: object

The total price of all the items added to the cart after applying promotions and coupons, without taxes. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 13800,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all the items added to the cart before applying promotions and coupons, without taxes. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 1400,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total discount (Promotions + Coupons) applied to the cart. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 7000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The surchage taxes of items added to the cart. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items added to the cart after applying promotions and coupons, including surcharges. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 14000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items added to the cart after applying promotions and coupons, including taxes except the VAT tax, and shipping cost relative to the logistic choices. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 14015,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total of shipping cost relative to the selected option and scenario. This field is calculated by summing the cost related to the option to the cost related to the scenario. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 15,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items added to the cart after applying promotions and coupons, including all taxes. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 18000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items added to the cart after applying promotions and coupons, including shipping cost, surcharges, and taxes. This field is included in the response only if the cart contains items.


Example:

{
    "amount": 18015,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

Total amount of vat applied to items aggregated and sorted in ascending order by vat percentage. This field is included in the response only if the cart contains items and VAT taxes are applied to one or more items.

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains information about a tax. May contain a percentage or a taxAmount or both.

Type: string

The type of the tax.


Example:

"VAT"

Type: boolean

Is the tax applied as a surcharge or not (non-surcharge taxes apply to the price including surcharges).


Example:

false

Price

Type: object

Amount of the tax


Example:

{
    "amount": "2160",
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Percentage of the tax


Example:

20

Examples:

{
    "type": "VAT",
    "surcharge": false,
    "taxAmount": {
        "amount": 360,
        "scale": 2,
        "currency": "EUR"
    },
    "percentage": 20
}
{
    "type": "VAT",
    "surcharge": false,
    "taxAmount": {
        "amount": 3600,
        "scale": 2,
        "currency": "EUR"
    },
    "percentage": 30
}

Type: array

Give the detail of all discounts applied to the cart

No Additional Items

Each item of this array must be:

DiscountDetail

Type: object

Type: string

code identifying the discount. Equivalent to 'productId' when the discount is given by a COUPON and 'title' when it is given by PROMOTION


Example:

"WINTER_2022"

Type: enum (of string)

Indicating the type of the discount

Must be one of:

  • "COUPON"
  • "PROMOTION"

Example:

"COUPON"

Price

Type: object

amount of the discount, in absolute value


Example:

{
    "amount": 25000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Example:

{
    "code": "WINTER_2022",
    "type": "COUPON",
    "discount": {
        "amount": 5000,
        "scale": 2,
        "currency": "EUR"
    }
}

Type: array

An array of message to display to the end user related to the cart

No Additional Items

Each item of this array must be:

Message

Type: object

This object represents a business message to show to the end user. A message could contain either a code or a text.

Type: object

Type: enum (of string)

the severity of the message that could be used to decide on message formatting

Must be one of:

  • "INFO"
  • "WARN"
  • "ERROR"

Example:

"INFO"

Type: boolean

A 'blocker' message prevents the redirection to the checkout page. This flag is set to 'true' when the message requires customer attention.


Example:

true

MessageCode

Type: object

Type: enum (of string)

the code of the message

Must be one of:

  • "ITEM_REMOVED"
  • "ITEM_ADDED"
  • "ITEM_PRICES_CHANGED"
  • "ITEM_QUANTITY_CHANGED"
  • "COUPON_REMOVED"

Example:

"ITEM_REMOVED"

MessageText

Type: object

Type: string

the text of the message


Example:

"we would aim to provide all products to you by tomorrow"

Type: array

An array of persistent messages to display to the end user related to the cart

No Additional Items

Each item of this array must be:

PersistentMessage

Type: object

This object contains all mandatory information to show to the end user persistent message. A persistent message is showed to the user until this last acknowledges it

Type: string

Identifier used to access to the persistent message


Example:

"123456789"

Type: enum (of string)

The operation performed which has raised the message

Must be one of:

  • "BULK_ADD_ITEMS"

Example:

"BULK_ADD_ITEMS"

Type: enum (of string)

The error code

Must be one of:

  • "ITEMS_NOT_ADDED"

Example:

"ITEMS_NOT_ADDED"

Type: enum (of string)

The reason that has made the error happened

Must be one of:

  • "PRODUCT_NOT_FOUND"
  • "PRICE_NOT_FOUND"
  • "TECHNICAL_FAILURE"
  • "PRODUCT_BAD_QUANTITY"
  • "CART_NOT_FOUND"
  • "BULK_ADD_ITEMS_NOT_FOUND"

Example:

"PRODUCT_NOT_FOUND"

Type: string

A short text dealing additional information about the message


Example:

"related products : [4789651], [9820367], [39852330]"

Type: array

An array of bills

No Additional Items

Each item of this array must be:

Bill

Type: object

Details of a bill that would either represent an invoice or a credit note

Type: string

The opco identifier of the credit note or the invoice.


Example:

"4999569661752721026"

Type: enum (of string)

Type of the document, invoice or credit notes

Must be one of:

  • "CREDIT_NOTE"
  • "INVOICE"

Type: stringFormat: date-time

The creation date and time of this credit notes.


Examples:

"2021-10-12T08:30:22.804Z"
"2021-10-12T08:30:22.804+01:00"

Price

Type: object

The total amount that should be credited to the customer


Example:

{
    "amount": 2000000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"


Invoice

Type: object

Details of an invoice. This document describe invoice meta informations, Invoice complete informations can be downloaded by the customer throught the get document endpoint of the order history api

Type: enum (of string)

The status of the bill document. These statuses will not be validated within Spark but will be displayed to the user as CMS label mapped to the status.

Must be one of:

  • "PENDING"
  • "PARTIALLY_PAID"
  • "PAID"

Example:

"PENDING"

Type: stringFormat: date-time

The due date and time where the total amount the should be payed by the customer


Examples:

"2021-10-12T08:30:22.804Z"
"2021-10-12T08:30:22.804+01:00"

Type: array of string

The list of order ids concerned by this invoice

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Examples:

[
    "order1"
]
[
    "order1",
    "order2"
]

CreditNote

Type: object

Details of a credit note; It's sort of a negative bill. It is an amount credited generally during a product return, but also to correct a price or invoicing error. It affects the value of customer invoices and credit line limit.

Type: enum (of string)

The status of the bill document. These statuses will not be validated within Spark but will be displayed to the user as CMS label mapped to the status.

Must be one of:

  • "PARTIALLY_USED"
  • "USED"
  • "UNUSED"

Example:

"PARTIALLY_USED"

Type: array of string

An optional list of order ids concerned by this credit note.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Examples:

[
    "order1"
]
[
    "order1",
    "order2"
]

Type: array of string

An optional list of invoice numbers concerned by this credit note.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Examples:

[
    "4999569661752721026"
]
[
    "4999569661752721027",
    "4999569661752721028"
]

Price

Type: object

The amount due in case the bill is partially processed.


Example:

{
    "amount": 500000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

ProductResponse

Type: object

An array of products


Example:

{
    "productsNotFound": [
        "456789765999",
        "987678987877"
    ],
    "gtinsNotFound": [
        "0000228",
        "0000229"
    ],
    "products": [
        {
            "productId": "9554961192345",
            "opcoId": "NOR-OTRA",
            "identifier": {
                "gtin": "0000228",
                "productTitle": "LIGHT 274498 Metal Halide Lamp",
                "opcoProductId": "274498",
                "manufacturerRefId": "1360168",
                "manufacturerName": "PHILIPS ELECTRONICS",
                "manufacturerRef": "Metal Lamp",
                "customerReference": "9554961192345C",
                "brandName": "SASS",
                "tags": [
                    "NEW"
                ],
                "stockIndicator": "L",
                "keywords": [
                    "Halide Lamp"
                ]
            },
            "orderingDetail": {
                "orderUnit": "CR62",
                "contentUnit": "MLT",
                "packingQuantity": 200,
                "minQuantity": 6,
                "isSoldLoose": true,
                "quantitySteps": 6
            },
            "description": {
                "additionalInfo": [
                    "The product shall be shipped with extra care (e.g horizontal aligned)"
                ],
                "longDescription": "High performance, Long life and Superior light quality A compact, energy efficient metal halide lamp that provides crisp, sparkling light with long life and high efficiency.",
                "specialInstructions": [
                    "MSDS or ECCN info 1",
                    "MSDS or ECCN info 2"
                ],
                "legalDisclaimer": [
                    "WARNING: Certain home improvement projects are inherently dangerous, and even the most benign tool can cause serious injury or death if not used properly"
                ],
                "erpShortDescription": "pressure clamp nylon"
            },
            "categorisation": [
                "S01"
            ],
            "features": [
                {
                    "name": "EF000007",
                    "value": "EF000080",
                    "unit": "",
                    "detail": "azure blue",
                    "rank": 1
                },
                {
                    "name": "EF000007",
                    "value": "EF000080",
                    "unit": "",
                    "detail": "azure blue",
                    "rank": 2
                }
            ],
            "references": [
                {
                    "type": "accessory",
                    "productIdTo": "6787867575768"
                },
                {
                    "type": "similar",
                    "productIdTo": "6787867575999"
                }
            ],
            "packingInfo": [
                {
                    "code": "consumer",
                    "count": 6,
                    "minQuantity": 2,
                    "maxQuantity": 12,
                    "isPackageBreak": true,
                    "length": 2.4,
                    "width": 1.2,
                    "depth": 3.5,
                    "weight": 2.2,
                    "diameter": 5.2,
                    "volume": 1.2,
                    "packingGtin": "7756465775751",
                    "dimensionUnit": "mm",
                    "weightUnit": "kg",
                    "volumeUnit": "mm^3"
                }
            ],
            "warranty": 1,
            "series": "JUSSI",
            "expectedDeliveryTime": 2,
            "isEcommerceReady": true,
            "lifecycle": {
                "expirationDate": "2023-01-25T10:22:00.116697Z",
                "manufactureDate": "2017-01-25T10:22:00.116697Z"
            },
            "greenOffer": {
                "carbonFootprint": {
                    "value": 34.93,
                    "unit": "KGM"
                },
                "greenRating": "A"
            }
        },
        {
            "productId": "9554961192233",
            "opcoId": "BEL-CEBEO",
            "identifier": {
                "gtin": "0000229",
                "opcoProductId": "274638",
                "productTitle": "Switch 274638 Plastic",
                "manufacturerRefId": "1360167",
                "manufacturerName": "LEGRAND",
                "manufacturerRef": "plastic switch",
                "customerReference": "9554961192233C",
                "brandName": "SASS",
                "tags": [
                    "NEW"
                ],
                "stockIndicator": "C",
                "keywords": [
                    "interrupteur",
                    "Plastique"
                ]
            },
            "orderingDetail": {
                "orderUnit": "PA",
                "contentUnit": "C62",
                "packingQuantity": 12,
                "minQuantity": 6,
                "isSoldLoose": true,
                "quantitySteps": 6
            },
            "description": {
                "additionalInfo": [
                    "The product shall be shipped with extra care (e.g horizontal aligned)"
                ],
                "longDescription": "High performance switch, Long life and Superior quality A compact, energy efficient that provides stability",
                "specialInstructions": [
                    "MSDS or ECCN info",
                    "MSDS or ECCN info"
                ],
                "legalDisclaimer": [
                    "WARNING: Certain home improvement projects are inherently dangerous, and even the most benign tool can cause serious injury or death if not used properly"
                ],
                "erpShortDescription": "iC60a 3P 25A  C"
            },
            "categorisation": [
                "S01"
            ],
            "features": [
                {
                    "name": "EF000007",
                    "value": "EF000080",
                    "unit": "",
                    "detail": "azure blue",
                    "rank": 1
                },
                {
                    "name": "EF000008",
                    "value": "EF000081",
                    "unit": "",
                    "detail": "azure green",
                    "rank": 2
                }
            ],
            "references": [
                {
                    "type": "spare part",
                    "productIdTo": "2763757293902"
                },
                {
                    "type": "accessories",
                    "productIdTo": "2763757293978"
                }
            ],
            "packingInfo": [
                {
                    "code": "consumer",
                    "count": 6,
                    "minQuantity": 2,
                    "maxQuantity": 12,
                    "isPackageBreak": true,
                    "length": 2.4,
                    "width": 1.2,
                    "depth": 3.5,
                    "weight": 2.2,
                    "diameter": 5.2,
                    "volume": 1.2,
                    "packingGtin": "7537686286863",
                    "dimensionUnit": "mm",
                    "weightUnit": "kg",
                    "volumeUnit": "mm^3"
                }
            ],
            "warranty": 1,
            "series": "JUSSI",
            "expectedDeliveryTime": 2,
            "isEcommerceReady": true,
            "lifecycle": {
                "expirationDate": "2023-01-25T10:22:00.116697Z",
                "manufactureDate": "2017-01-25T10:22:00.116697Z"
            },
            "greenOffer": {
                "carbonFootprint": {
                    "value": 34.93,
                    "unit": "KGM"
                },
                "greenRating": "A"
            }
        }
    ]
}

ProductsNotFound

Type: array of string

An array of not found products

No Additional Items

Each item of this array must be:

ProductsNotFound

Type: array of string

An array of not found products

No Additional Items

Each item of this array must be:

Type: array

An array of products

No Additional Items

Each item of this array must be:

Product

Type: object

a product object description

Type: string

unique Spark product identifier.


Example:

"9554961192345"

Type: string

Deprecated - The caller knows its opcoId, this field is useless.
Sub-Identifier for particular Opco


Example:

"BEL-CEBEO"

Type: object

product identifier attributes


Example:

{
    "gtin": "0000228",
    "opcoProductId": "65",
    "productTitle": "Switch 274638 Plastic",
    "manufacturerRefId": "1360167",
    "manufacturerName": "LEGRAND",
    "manufacturerRef": "2742037 12-20 LGR638",
    "customerReference": "9554961192345C",
    "brandName": "SASS",
    "tags": [
        "NEW",
        "PROMO"
    ],
    "stockIndicator": "B",
    "keywords": [
        "Plastique"
    ]
}

Type: string

global trade identifier number e.g EAN, UPC, etc.


Example:

"4012196097579"

Type: string

This is the local product id could be specific to opcos, most cases it is same as manufacturer id but could be different as well


Example:

"$1"

Type: string

Deprecated - Manufacturer fields are used instead.
This is the supplier ID


Example:

"1234456"

Type: string

This is the manufacturer reference id and is always used for search and identifying the product


Example:

"1360167"

Type: string

This is the custom reference used by a customer to identify the product in their system. Not defined in case of anonymous navigation or if the customer didn't set one for this product.


Example:

"$1"

Type: string

short description of the product


Example:

"LIGHT 274498 Metal Halide Lamp"

Type: string

manufacturer name and brand name are the same


Example:

"PHILIPS ELECTRONICS"

Type: string

Construction type, number of cores and nominal cross section from manufacturer


Example:

"2037 12-20 LGR"

Type: string

Brand name


Example:

"$1"

Type: string

Deprecated - Assets are used directly.
This is the primary image url to the product


Example:

"https://pl.eaton.com/image?doc_name=40071354241&type=preview"

Type: enum (of string)

Use ABCL code A= branch (+CDC) B= CDC C= OnDemand L = end of life (product is sold until our stock runs out, no backorders allowed, no longer available from the supplier)

Must be one of:

  • "A"
  • "B"
  • "C"
  • "L"

Example:

"$1"

Type: array of enum (of string)

The tags of the product, which can include status information, defining characteristics, etc.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "NEW"
  • "PROMO"
  • "END_OF_LIFE"
  • "SUSTAINABLE"
  • "CIRCULAR"
  • "OUTLET"

Example:

"NEW"

Type: array of string

array of keywords used for seo and search readiness

No Additional Items

Each item of this array must be:

Type: object

ordering detail comprising packing and quantity details


Example:

{
    "orderUnit": "CR62",
    "contentUnit": "MLT",
    "packingQuantity": 200,
    "minQuantity": 6,
    "isSoldLoose": true,
    "quantitySteps": 6
}

Type: string

order unit are the units in which a product is being sold, e.g TN - tin


Example:

"$1"

Type: string

content unit is the exact measurable unit e.g MLT - milliliter


Example:

"$1"

Type: integerFormat: int32

It is number of content unit per order unit e.g 200 (Spray tin 200 ML)


Example:

200

Type: integerFormat: int32

minimum quantity which could be ordered


Example:

6

Type: boolean

Is it sold in loose apart from packing


Example:

true

Type: integerFormat: int32

sold in steps or quantity intervals


Example:

6

Type: array of string

Deprecated - Assets are used directly.
This contains all the alternative images of the product

No Additional Items

Each item of this array must be:


Examples:

"https://pl.eaton.com/image?doc_name=40071354241&type=preview"
"https://pl.eaton.com/image?doc_name=40071354242&type=preview"

Type: array

An array containing all the asset items related to the product

No Additional Items

Each item of this array must be:

AssetItem

Type: object

An asset detail.


Example:

{
    "type": "DOCUMENT",
    "sourceUrl": "https://eshop.schneider-electric.com/product.aspx?productid=ZC2JY41&dist=616&org=30&lang=1",
    "externalUrl": "https://neweshop-preprod.cebeo.be/caas/v1/media/13258630/data/2921f90a2a830b702626dc421e6ee71a",
    "title": "61212886_technical_data_sheet_ZC2JY41.pdf",
    "order": 22
}

Type: enum (of string)

Asset type.

Must be one of:

  • "DOCUMENT"
  • "IMAGE"
  • "VIDEO"
  • "WEB_LINK"

Type: integerFormat: int32

Order in which the image should be displayed.


Example:

1

Type: string

Deprecated - The field is not used anymore.
Original OpCo url from which the asset is accessible.


Example:

"https://pl.eaton.com/image?doc_name=40071354241&type=preview"

Source URL

Type: string

url from which the asset is accessible from the digital asset management (DAM) solution.


Example:

"https://neweshop-preprod.cebeo.be/caas/v1/media/39855944/data/7770df2e814920da1287ab5a9301a27d"

Type: string

Asset's title.


Example:

"Fluke_brand_icon"

Type: enum (of string)

Asset category.

Must be one of:

  • "BRANDS"
  • "CAMPAIGNS"
  • "CATEGORIES"
  • "PRODUCTS"

Type: object

This object contains all available information of the product


Example:

{
    "additionalInfo": [
        "The product shall be shipped with extra care (e.g horizontal aligned)"
    ],
    "longDescription": "High performance, Long life and Superior light quality A compact, energy efficient metal halide lamp that provides crisp, sparkling light with long life and high efficiency.",
    "specialInstructions": [
        "MSDS or ECCN info",
        "MSDS or ECCN info"
    ],
    "legalDisclaimer": [
        "WARNING: Certain home improvement projects are inherently dangerous, and even the most benign tool can cause serious injury or death if not used properly"
    ],
    "erpShortDescription": "pressure clamp nylon"
}

Type: array of string

contains any additional remarks or info for the product

No Additional Items

Each item of this array must be:


Example:

"The product shall be shipped with extra care (e.g horizontal aligned)"

Type: string

contains detailed 1-2 lines of description for the product


Example:

"High performance, Long life and Superior light quality A compact, energy efficient metal halide lamp that provides crisp, sparkling light with long life and high efficiency."

Type: array of string

contains any special instructions based on special treatment class such as hazardous goods

No Additional Items

Each item of this array must be:


Examples:

"MSDS or ECCN info"
"MSDS or ECCN info"

Type: array of string

contains the list of legal disclaimers associated with a product

No Additional Items

Each item of this array must be:


Example:

"WARNING: Certain home improvement projects are inherently dangerous, and even the most benign tool can cause serious injury or death if not used properly"

Type: string

A very short ERP description to be shown on PDP and also used while generating invoices


Example:

"pressure clamp nylon"

Type: array of string

contains the list of category Ids that the product belongs to

No Additional Items

Each item of this array must be:


Examples:

"S01C0100580"
"S01C0100660"

Type: array

features based generic classification standards defined as catalog -> categories/sub-Categories -> sub-categories -> products -> features

No Additional Items

Each item of this array must be:

Feature

Type: object

features of the product belonging to a catalog under a category

Type: string

name of the feature based on etim code


Example:

"$1"

Type: string

value of the feature, some cases it could be multiple value e.g (50 mm-50 mm)


Example:

"20"

Type: string

the unit of the technical characteristic


Example:

"$1"

Type: string

specific description of value details of the feature if any


Example:

"azure blue"

Type: integerFormat: int32

This is the order of the features. Top 5 ranks to be shown as essential or most important specification

Value must be greater or equal to 1


Example:

1

Examples:

{
    "name": "color",
    "value": "blue",
    "unit": "",
    "detail": "azure blue",
    "rank": 1
}
{
    "name": "voltage",
    "value": "220",
    "unit": "watts",
    "detail": "",
    "rank": 2
}

Type: array

Deprecated - Assets are used directly.
contains all the mime info for the product except images such as data sheets, videos, weblinks

No Additional Items

Each item of this array must be:

Mime info

Type: object

array of available assets except images like pdf documents, web links, videos etc

Type: string

the type of mime , whether it is pdf, web link, safety data sheet etc


Example:

"$1"

Type: string

this is the source of the mime, generally a url to the resource


Example:

"https://pl.eaton.com/image?doc_name=40071354241&type=preview"

Examples:

{
    "type": "pdf",
    "source": "http://www.ceag.de/sites/ceag.de/files/products/datasheets/cooper-ceag-datasheet-71011-71021-led-zweiseitig-32-m_8.pdf?locale=en"
}
{
    "type": "weblink",
    "source": "https://pl.eaton.com/image?doc_name=40071354241&type=preview"
}

Type: array

references to similar products, accessories, spare parts, mandatory essentials, component parts etc

No Additional Items

Each item of this array must be:

Reference

Type: object

references to the current product e.g accessories, spare parts etc

Type: string

the reference type of the product such as accessory, mandatory essential


Example:

"$1"

Type: string

the reference product id to which this product belongs


Example:

"6787867575768"

Examples:

{
    "type": "accessories",
    "productIdTo": "6787867575768"
}
{
    "type": "similar",
    "productIdTo": "6787867575879"
}

Type: array

list of detailed information for packing of the product

No Additional Items

Each item of this array must be:

PackingInfo

Type: object

detailed information for packing of the product

Type: string

packing code of the product such as distributor or consumer


Example:

"$1"

Type: integerFormat: int32

no of products being packaged in a packing


Example:

6

Type: integerFormat: int32

min quantity which is compliant to packing units (crate or box)


Example:

2

Type: integerFormat: int32

max quantity which is compliant to packing units (crate or box)


Example:

12

Type: boolean

This determines if the packing is mandatory or not based on min-max quantity


Example:

true

Type: numberFormat: double

length of packing object


Example:

2.4

Type: numberFormat: double

width of packing object


Example:

1.2

Type: numberFormat: double

depth of packing object


Example:

3.5

Type: numberFormat: double

weight of packing object


Example:

2.2

Type: numberFormat: double

diameter of packing object


Example:

5.2

Type: numberFormat: double

volume of packing object


Example:

1.2

Type: string

unique code of the packing


Example:

"7756465775751"

Type: string

the dimension unit of measure


Example:

"$1"

Type: string

the weight unit of measure


Example:

"$1"

Type: string

the volume unit of measure


Example:

"mm^3"

Example:

{
    "code": "consumer",
    "count": 6,
    "minQuantity": 2,
    "maxQuantity": 12,
    "isPackageBreak": true,
    "length": 2.4,
    "width": 1.2,
    "depth": 3.5,
    "weight": 2.2,
    "diameter": 5.2,
    "volume": 1.2,
    "packingGtin": "7756465775751",
    "dimensionUnit": "mm",
    "weightUnit": "kg",
    "volumeUnit": "mm^3"
}

Type: integerFormat: int32

Deprecated - Use warranty instead.
guarantee of a product varying with different opcos


Example:

1

Type: integerFormat: int32

warranty of a product varying with different opcos


Example:

1

Type: string

The series to which the product belongs to depending on opco


Example:

"$1"

Type: integer

Deprecated - Use expectedDeliveryTime instead.
the average time of delivery from the date of order, in days

Value must be greater or equal to 0


Example:

2

Type: integer

the average time of delivery from the date of order, in days

Value must be greater or equal to 0


Example:

2

Type: boolean

Is the current product e-commerce ready. To be used for analytics to prioritise enriching the product data based on its demand and make it ready for e-commerce


Example:

false

Type: object

product validity range when it became active and when it expires


Example:

{
    "expirationDate": "2023-01-25T10:22:00.116697Z",
    "manufactureDate": "2017-01-25T10:22:00.116697Z"
}

Type: stringFormat: date-time

date until when the product is active or when it is due to expire, in ISO 8601 standard


Example:

"2023-01-25T10:22:00.116697Z"

Type: stringFormat: date-time

date when the product is manufactured and becomes active, in ISO 8601 standard


Example:

"2017-01-25T10:22:00.116697Z"

Type: boolean

This determines if the product is considered as returnable or not.


Example:

true

Type: object

green offer information


Example:

{
    "carbonFootprint": {
        "value": 34.93,
        "unit": "KGM"
    },
    "greenRating": "A"
}

Type: object

This determines the carbon footprint of the product.

Type: number

This determines the co2 footprint value.


Example:

34.93

Type: enum (of string)

This determines the product's co2 footprint unit of measure. Values are gs1 codes of mass units of Kilogram and Gram.

Must be one of:

  • "GRM"
  • "KGM"

Example:

"$1"

Type: enum (of string)

This determines the SONEPAR's green rating of the product. Values are A, B and C with A representing the best rating.

Must be one of:

  • "A"
  • "B"
  • "C"

Example:

"$1"

UserResponse

Type: object

Model used to represent a user.

Type: string

unique identifier of the user

Must match regular expression: ^[0-9]+$
Example:

"234564567898789"

Type: string

User's honorific title.


Example:

"Mr"

Type: string

email address of the user. Will be use to authenticate the user


Example:

"john.doe@ge.com"

Type: string

User's first name.


Example:

"John"

Type: string

User's last name.


Example:

"Doe"

Type: string

User's phone number.


Example:

"+3265150833"

Type: string

User's fixed phone number.


Example:

"+3265150833"

Type: array

Set of accounts attached to the user.

No Additional Items

Each item of this array must be:

AttachedAccountResponse

Type: object

Model used to create user permissions

Type: string

technical unique id of the attached account

Must match regular expression: ^[0-9]+$
Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the account.

Must match regular expression: ^(?=\s*\S).*$
Example:

"776544"

Type: string

user's job denomination code. This is the reference code for the value provided in jobTitle field


Example:

"M01"

Type: string

User's job denomination.


Example:

"Manager"

Type: string

User status in the erp


Example:

"ACTIVE"

Type: boolean

Determines whether or not the user is allowing associates to impersonate him in order to perform some actions in the web shop (placing an order, creating a quote...)


Example:

false

Type: array

Set of permissions

No Additional Items

Each item of this array must be:

permission

Type: enum (of string)

Enumeration of permission available in the Spark platform.

Must be one of:

  • "MANAGE_USERS"
  • "VIEW_NET_PRICE"
  • "VIEW_GROSS_PRICE"
  • "VIEW_ORDER_LIST"
  • "CONTRIBUTE_CART"
  • "VALIDATE_CART"
  • "EXPORT_INVOICE"
  • "PLACE_ORDER_WITHOUT_VALIDATION"

Example:

"VIEW_NET_PRICE"

Examples:

"MANAGE_USERS"
"CONTRIBUTE_CART"

PricePreference

Type: enum (of string)

The price preference of the user

Must be one of:

  • "ONLY_GROSS_PRICE"
  • "ONLY_NET_PRICE"
  • "GROSS_AND_NET_PRICES"
  • "NO_PRICE"

Example:

"ONLY_GROSS_PRICE"

Preference

Type: object

user preference for a specific account.


Example:

{
    "spa": "ALL"
}

Type: enum (of string)

User's SPA preferences.

Must be one of:

  • "NONE"
  • "ALL"

Example:

"NONE"

Price

Type: object

Max amount of a cart that the user can order without validation. This configuration is only applicable when the permission PLACEORDERWITHOUT_VALIDATION is activated.


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

Max amount that the user can order without validation during a month. This configuration is only applicable when the permission PLACEORDERWITHOUT_VALIDATION is activated.


Example:

{
    "amount": 3000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The remaining amount that the user can order without validation. The field is calculated by deducting the amount the user orders from the monthly purchase limit. The remaining monthly purchase balance Is reset at the beginning of each month.


Example:

{
    "amount": 500,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Example:

{
    "accountId": "345678",
    "id": "3456789",
    "opCoUserStatus": "ACTIVE",
    "jobCode": "M01",
    "jobTitle": "Manager",
    "permissions": [
        "MANAGE_USERS",
        "EXPORT_INVOICE"
    ],
    "cartLimit": {
        "amount": 1000,
        "scale": 2,
        "currency": "EUR"
    },
    "monthlyPurchaseLimit": {
        "amount": 10000,
        "scale": 2,
        "currency": "EUR"
    },
    "remainingMonthlyPurchaseBalance": {
        "amount": 5000,
        "scale": 2,
        "currency": "EUR"
    }
}

Type: integer

Number of attached accounts to the user


Example:

2

Type: enum (of string)

PENDING is the default status when a new object is created.

Must be one of:

  • "PENDING"
  • "ACTIVATION_EXPIRED"
  • "ACTIVE"
  • "DISABLE"
  • "CREATION_PENDING_AT_MASTER"

Type: string

Locale intended to identify user's preferred language for a given country.


Example:

"fr-BE"

Type: array

An array of messages

No Additional Items

Each item of this array must be:

Message

Type: object

This object represents a business message to show to the end user. A message could contain either a code or a text.

Type: object

Type: enum (of string)

the severity of the message that could be used to decide on message formatting

Must be one of:

  • "INFO"
  • "WARN"
  • "ERROR"

Example:

"INFO"

Type: boolean

A 'blocker' message prevents the redirection to the checkout page. This flag is set to 'true' when the message requires customer attention.


Example:

true

MessageCode

Type: object

Type: enum (of string)

the code of the message

Must be one of:

  • "ITEM_REMOVED"
  • "ITEM_ADDED"
  • "ITEM_PRICES_CHANGED"
  • "ITEM_QUANTITY_CHANGED"
  • "COUPON_REMOVED"

Example:

"ITEM_REMOVED"

MessageText

Type: object

Type: string

the text of the message


Example:

"we would aim to provide all products to you by tomorrow"

Type: array

An array of orders

No Additional Items

Each item of this array must be:

Order

Type: object

An order as created by spark

Type: string

The order id generated by the spark plateform.


Example:

"4999569661752721026"

Type: string

The order id known by the opco and the customer. Two orders can't have the same Id


Examples:

"4999569661752721026"
"49995696_ORG1"

Type: string

The order id generated by the spark plateform.


Example:

"4999569661752721026"

Type: string

The parent order id generated by the spark plateform, used to group spark orders associated to the same customer order.


Example:

"315627244210393088"

SalesChannel

Type: enum (of string)

The sales channel where the order is placed

Must be one of:

  • "ESHOP"
  • "MOBILE_APP"
  • "SYSTEM_TO_SYSTEM"
  • "STORE"
  • "BY_PHONE"

Example:

"ESHOP"

Type: string

The status of the order. The OpCo can send any status codes that are associated with the order in their systems. The status codes sent will need to be mapped to labels in the CMS.


Examples:

"OPENED"
"VALIDATED"
"IN_PROGRESS"
"CLOSED"

Type: stringFormat: date-time

The date when the order was placed


Example:

"2021-10-12T08:30:22.804Z"

Type: stringFormat: date-time

The date when the order was last modified. This field will be used to ensure that only the latest update are being integrated to order history.


Example:

"2021-10-12T08:30:22.804Z"

Type: string

The opco account id of the customer.


Example:

"12345"

Type: array of object

The list of users that contribute on the creation if the cart and the order. The creator of the cart, the validator of the cart ...

No Additional Items

Each item of this array must be:

Type: object

Example:

[
    {
        "fullName": "John Smith",
        "email": "john.smith@mycompany.com",
        "creator": true
    },
    {
        "fullName": "John Validator",
        "email": "john.validator@mycompany.com"
    }
]

Type: string

The full name of a contributor.


Example:

"John Smith"

Type: string

The email of a contributor. this is the identifier of the user on spark


Example:

"john.smith@mycompany.com"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor is the creator of the cart from where this order is created.


Example:

"false"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor has placed the order (transformed the cart to an order).


Example:

"false"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor has validated the cart during the approval workflow.


Example:

"false"

Type: boolean Default: "false"

A boolean that when is true means that the current contributor is an associate doing the action on behalf of the end user.


Example:

"false"

Address

Type: object

Model used to describe addresses

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

The city name


Example:

"Bruges"

Type: string

The region name


Example:

"Frandre"

Type: string

The department name


Example:

"N/A"

Type: string

Country code


Example:

"Belgium"

Type: string

Postal code


Example:

"0287"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's last name


Example:

"Doe"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"

Type: array

Line items that are ordered.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

LineItem

Type: object

The order line item

Type: string

The ID of the line item.

Must match regular expression: ^[0-9]+$
Example:

"4999569661752721026"

Type: integer

Number of items ordered.


Example:

10

Type: object

Product data as seen by customer from the time of the order placement.

Type: string

A unique identifier of the product.
- In case of promotion lineItem this should contain the id of the promotion.


Example:

"9554961192345"

Type: string

global trade identifier number e.g EAN, UPC etc


Example:

"4012196097579"

Type: string

This is the local product id could be specific to opcos, most cases it is same as manufacturer id but could be different as well


Examples:

"732D16"
"9554961192345"

Type: string

This is the equivalent of manufacturer PID and used for search and identifying the product


Example:

"1360167"

Type: string

manufacturer type description identifier, represents the references


Example:

"2037 12-20 LGR"

Type: string

the customer ref for the product, Supported by all special chars respecting the pattern

Must match regular expression: [a-zA-Z0-9_.+@() /$"=#,;'£\\:°*&%-]+

Type: string

Short description of the product.

For PRODUCT lineItems, it is sourced from the product.identifier.productTitle field.


Example:

"LIGHT 274498 Metal Halide Lamp"

Type: string

Brand name.

For PRODUCT lineItems, it is sourced from the product.identifier.brandName field.


Example:

"SASS"

Prices

Type: object

Contains the detail of prices related to the current product and line item

Price

Type: object

This is the product unit price that the customer will pay to the OPCO, without taxes, before applying promotion.


Example:

{
    "amount": 1000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Percentage of discount on net price, If we have this value then promotionalNetPrice is needed also


Example:

10.0

Price

Type: object

Precomputed promotional price on top of netPrice, This is the case when promotional percentage is not present and the promotional price is directly computed and available to show


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

List of taxes to be applied to net price or promotional net price in case of promotion

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains information about a tax. May contain a percentage or a taxAmount or both.

Type: string

The type of the tax.


Example:

"VAT"

Type: boolean

Is the tax applied as a surcharge or not (non-surcharge taxes apply to the price including surcharges).


Example:

false

Price

Type: object

Amount of the tax


Example:

{
    "amount": "2160",
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Percentage of the tax


Example:

20

Example:

[
    {
        "type": "VAT",
        "isSurcharge": false,
        "percentage": 20.0
    }
]

Example:

[
    {
        "id": "4999569661752721000",
        "orderedQuantity": 10,
        "product": {
            "productId": "4999569661752721000",
            "productTitle": "SIEMENS Circuit Breaker",
            "brandName": "Siemens"
        },
        "prices": {
            "netPrice": {
                "amount": 1000,
                "scale": 2,
                "currency": "EUR"
            },
            "promotionalNetPrice": {
                "amount": 900,
                "scale": 2,
                "currency": "EUR"
            },
            "taxes": [
                {
                    "type": "VAT",
                    "isSurcharge": false,
                    "percentage": 20.0
                }
            ]
        }
    }
]

Type: array

The list of logistic details related to this order

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

OrderLogisticDetails

Type: object

Information about the logistic details of the current order (logistic method, logistic preferences, logistic options, delivery address, facility id)

Type: enum (of string)

Logistic method chosen for the cart

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Example:

"PICK_UP"

Type: string

Unique identifier of the locker related to the facilityId where the customer want pick up his order. The facilityId still the place where the order will be prepared


Example:

"395"

Type: string

Unique identifier of the facility used when logistic method is 'PICK_UP'.

Address

Type: object

The address used for delivery when logistic method is 'DELIVERY'


Example:

{
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2",
    "companyName": "Easy Electric",
    "contactFirstName": "John",
    "contactLastName": "Doe",
    "contactPhoneNumber": "+333746573829",
    "deliveryIndication": "Please leave the parcel next the front door.",
    "customerReference": "Ref 364361"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

The city name


Example:

"Bruges"

Type: string

The region name


Example:

"Frandre"

Type: string

The department name


Example:

"N/A"

Type: string

Country code


Example:

"Belgium"

Type: string

Postal code


Example:

"0287"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's last name


Example:

"Doe"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"

LogisticOption

Type: object

The logistic option chosen for the selected logistic method (e.g a standard delivery is a logistic option).

Type: string

The code of the logistic option


Example:

"STANDARD"

Type: string

The title of the logistic option to be displayed to the end user.


Example:

"STANDARD delivery"

Type: string

The description of the logistic option to be displayed to the end user.


Example:

"choose this option if you want a fast delivery"

Price

Type: object

The cost of this logistic option


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

LogisticScenario

Type: object

This is the chosen logistic scenarios from the ones available for the current logistic option.(e.g deliver all the products at the same time is a logistic scenario)


Example:

{
    "selected": true,
    "code": "1_DELIVERY",
    "title": "1 DELIVERY",
    "description": "Choose this scenario if you want all your products to be delivered at the same time",
    "cost": {
        "amount": 0,
        "scale": 2,
        "currency": "EUR"
    },
    "totalPrice": {
        "amount": 2300,
        "scale": 2,
        "currency": "EUR"
    },
    "totalPriceIncludingSurchargesAndShipping": {
        "amount": 1900,
        "scale": 2,
        "currency": "EUR"
    },
    "shippingGroups": [
        {
            "status": "SHIPPED",
            "deliveryDate": "2021-10-12T08:30:22.804Z",
            "trackAndTraceInfo": {
                "numberOfPackages": 5,
                "totalWeight": 200,
                "weightUnit": "GRM",
                "lastMessageUpdate": {
                    "type": "INFORMATION",
                    "message": {
                        "fr-BE": "Votre commande est en cours de livraison et devrait être livrée d'ici 15h aujourd'hui",
                        "nl-BE": "Je bestelling is klaar voor bezorging en zou vandaag om 15u bezorgd moeten zijn"
                    }
                },
                "additionalInfo": [
                    {
                        "name": "receivers ref",
                        "value": "5236776"
                    },
                    {
                        "name": "Sales Rep Message",
                        "value": "Your Order is in preparation and we dont see any issues"
                    },
                    {
                        "name": "carrier info",
                        "value": "APOLLO AS"
                    }
                ]
            },
            "lineItems": [
                {
                    "quantity": 1,
                    "lineItemId": "1",
                    "itemPrice": {
                        "amount": 1800,
                        "scale": 2,
                        "currency": "EUR"
                    }
                }
            ]
        }
    ]
}

Type: string

The code of the logistic scenario


Example:

"1_DELIVERY"

Type: string

The title of the logistic scenario to be displayed to the end user.


Example:

"1 DELIVERY"

Type: string

The description of the logistic scenario to display to the end user.


Example:

"choose this scenario if you want all your products to be delivered at the same time"

Price

Type: object

The cost of this logistic scenario


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

Total price of the logistic scenario including promotions, surcharges, shipping cost and taxes (vat)


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

Total price of the logistic scenario including promotions, surcharges, shipping cost without taxes (vat)


Example:

{
    "amount": 0,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array of object

A list of groups of line items corresponding to the way the order will be fulfilled

No Additional Items

Each item of this array must be:

Type: object

Order shipment

Type: string

The status of the shipping group.
This status is to be used for tracking and tracing the order.
The OpCos have to send a normalised status as listed in below examples.
These new status codes are applicable for new orders only.
Using legacy status codes (not part of the examples) won't break anything but the track and trace wont reflect order status changes.
The status codes sent are mapped to labels in the CMS.
For orders first validation or acceptance by opco the status would be ACCEPTED.
For orders in preparartion until they are shipped, the status would be IN_PREPARATION.
For all orders shipped and in Transit, the status would be SHIPPED.
For all orders delivered at source the status would be DELIVERED
For cancelled lineItems, the shipping group with a status value CANCELLED is expected.
For back ordered lineItems, the shipping group with a status value BACK_ORDERED is expected.

The OPENED status should only be used in OpCoOrders for Marketplace orders (where opcos delegate order lifecycle management to sellers).
The AVAILABLE_FOR_PICKUP status should be used in PICKUP when the order is ready to be picked up in branch.
The AVAILABLE_IN_LOCKER status should be used in PICKUP when the order is ready to be picked up in locker.
The COLLECTED status should be used in PICKUP when the order hass been collected from branch or locker.


Examples:

"ACCEPTED"
"IN_PREPARATION"
"SHIPPED"
"DELIVERED"
"CANCELLED"
"BACK_ORDERED"
"OPENED"
"AVAILABLE_FOR_PICKUP"
"AVAILABLE_IN_LOCKER"
"COLLECTED"

Type: boolean Default: "false"

Will be true if the delivery date is selected by the customer. It will be false is the date is the one computed by the opco backend system.

Type: stringFormat: date-time

[Deprecated - Use instead expectedDeliveryDate and expectedDeliveryTime].
Date on which the shipment expected to be delivered.


Example:

"2021-10-12T08:30:22.804Z"

Type: object

This object contains the details of tracking the delivery

Type: enum (of string)

The units in which the weights are computed and displayed following the GS1 units of measure

Must be one of:

  • "GRM"
  • "KGM"
  • "LBS"

Example:

"KGM"

Type: object

A type and message object, where type is Info or Warning and message is the actual update

Type: enum (of string)

The type of the message whether its info or warning

Must be one of:

  • "INFORMATION"
  • "WARNING"

Example:

"INFORMATION"

Multilingual Object

Type: object

The actual message for the last update


Example:

{
    "fr-BE": "Votre commande est en cours de livraison et devrait être livrée d'ici 15h aujourd'hui",
    "nl-BE": "Je bestelling is klaar voor bezorging en zou vandaag om 15u bezorgd moeten zijn"
}

Type: stringFormat: date-time

If there is an issue or delay then last message update is an apology message with new estimated delivery date


Example:

"2021-10-12T08:30:22.804Z"

Type: array of object

Any additional info related to this delivery

No Additional Items

Each item of this array must be:

Type: object

A free key value pair field to add any specific messages or details

Type: string

The name or identifier for an additional info


Examples:

"receivers ref"
"senders ref"
"carrier name"
"additional instructions"

OrderAlternativeLogisticDetails

Type: object

This object contains the logistic details associated with the shipping groupin cases where additional logistic details are applicable. e.g Logistic Details / Facility for each shipping intent group to support multi-cdc delivery.

Type: enum (of string)

OpCo internal system's unique identifier for the address.

Must be one of:

  • "DELIVERY"
  • "PICK_UP"

Type: string

The id of the facility (branch or CDC) associated with the logistic details


Example:

"AB2"

Address

Type: object

The delivery address associated to the account where the order should be delivered.


Example:

{
    "opCoAddressId": "1234567890",
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2",
    "companyName": "Easy Electric",
    "contactFirstName": "John",
    "contactLastName": "Doe",
    "contactPhoneNumber": "+333746573829",
    "deliveryIndication": "Please leave the parcel next the front door.",
    "customerReference": "Ref 364361"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: array of object

The line items that are shipped.

No Additional Items

Each item of this array must be:

Type: object

Optional. The line items that are shipped.

No Additional Properties

Type: string

A reference to a line item. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code

Must match regular expression: ^[0-9]+$
Example:

"2196602318024039368"

Price

Type: object

This is the line item price that the customer will pay to the OPCO, without taxes, after applying promotion. Equals (unitPrice * quantity) for items without promotion or (discountedUnitPrice * quantity) for items with promotion


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

This is the shipping cost for this line item, provided when known. The logistic scenario cost should be equal to the sum of all lineItems shipping cost from all (non canceled) shipping group.


Example:

{
    "amount": 200,
    "scale": 2,
    "currency": "EUR"
}

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Example:

[
    {
        "quantity": 1,
        "lineItemId": "1",
        "itemPrice": {
            "amount": 1800,
            "scale": 2,
            "currency": "EUR"
        }
    }
]

Type: array

Documents references associated with this shipping group

No Additional Items

Each item of this array must be:

DocumentReference

Type: object

Information identifying a document and potentially a line within the document for referencing purposes.

DocumentType

Type: enum (of string)

The type of the document

Must be one of:

  • "DELIVERY_NOTES"
  • "INVOICE"
  • "PROOF_OF_DELIVERY"

Example:

"INVOICE"

Type: stringFormat: date-time

Date on which the document has been created, in ISO 8601 format.


Example:

"2017-07-21T08:30:22.804Z"

Example:

[
    {
        "type": "DELIVERY_NOTES",
        "id": "4999569661752721026",
        "createdAt": "2017-07-21T17:32:28Z"
    }
]

Example:

[
    {
        "status": "SHIPPED",
        "deliveryDate": "2021-10-12T08:30:22.804Z",
        "trackAndTraceInfo": {
            "numberOfPackages": 5,
            "totalWeight": 200,
            "weightUnit": "KGM",
            "lastMessageUpdate": {
                "type": "INFORMATION",
                "message": {
                    "fr-BE": "Votre commande est en cours de livraison et devrait être livrée d'ici 15h aujourd'hui",
                    "nl-BE": "Je bestelling is klaar voor bezorging en zou vandaag om 15u bezorgd moeten zijn"
                }
            },
            "additionalInfo": [
                {
                    "name": "receiver's ref",
                    "value": "5236776"
                },
                {
                    "name": "Sales Rep Message",
                    "value": "Your Order is in preparation and we dont see any issues"
                },
                {
                    "name": "carrier info",
                    "value": "APOLLO AS"
                }
            ]
        },
        "lineItems": [
            {
                "quantity": 1,
                "lineItemId": "1",
                "itemPrice": {
                    "amount": 1800,
                    "scale": 2,
                    "currency": "EUR"
                }
            }
        ]
    }
]

Type: array

Payment terms associated with the order

No Additional Items

Each item of this array must be:

PaymentTerm

Type: object

Terms and conditions by which a payment has been or will be made.

Type: enum (of string)

The payment method type

Must be one of:

  • "CASH"
  • "CHEQUE"
  • "CREDIT_DEBIT_CARD"
  • "CREDIT_LINE"
  • "PCB_CARD"

Example:

"CREDIT_LINE"

Type: string

The transaction payment id


Example:

"PAY0001"

Price

Type: object

The amount of the payment


Example:

{
    "amount": 1800,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: stringFormat: date-time

Date on which the payment transaction has been created


Example:

"2017-07-21T08:30:22.804Z"

Example:

[
    {
        "paymentMethod": "CREDIT_LINE",
        "amount": {
            "amount": 10000,
            "scale": 2,
            "currency": "EUR"
        },
        "paymentTransactionId": "12345",
        "createdAt": "2017-07-21T17:32:28Z"
    }
]

Type: object

Additional information for the order.

Type: string

Order reference for the customer (ex: customer purchase order id).


Example:

"XDFG334322"

Type: string

The cart name.


Example:

"Site 1 Cart"

Project

Type: object

The project associated to the cart

Type: string

Unique identifier of the project


Example:

"47384783"

Type: string

The name of the project


Example:

"StandElec project"

Type: string

Contact first name for this order. This field is added by the customer to override the same field into delivery address.


Example:

"Robert"

Type: string

Contact last name for this order. This field is added by the customer to override the same field into delivery address.


Example:

"Fox"

Type: string

Contact phone number for this order. This field is added by the customer to override the same field into delivery address.


Example:

"+3333333333"

Type: string

Contact email for this order.


Example:

"john.doe@sonepar.com"

Type: boolean

Choice of showing or not the price on the logistics note.


Example:

false

Type: array

The notes related to the order.

No Additional Items

Each item of this array must be:

Note

Type: object

Object representing a note

Type: boolean

Choice of showing or not the note on the invoice.


Example:

true

Type: boolean

Choice of showing or not the note on the logistics notes.


Example:

false

Type: string

Note added to cart


Example:

"Morning delivery preference"

Example:

[
    {
        "noteOnInvoice": true,
        "noteOnLogisticsNotes": false,
        "noteText": "Morning delivery preference"
    }
]

Type: array

Additional order information filled by the customer when placing the order or added by the OpCo system during the order processing.

No Additional Items

Each item of this array must be:

AdditionalReference

Type: object

Object representing an additional reference.

Type: string

Name of the additional reference


Example:

"warehouseName"

Type: string

Value of the additional reference filled by the customer


Example:

"P570629"

Example:

[
    {
        "name": "warehouseName",
        "value": "Z.I. Fourviere"
    }
]

Price

Type: object

The total amount of all the items of the order after applying promotions and coupons, without taxes.


Example:

{
    "amount": 13800,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items of the order including promotions and including surcharges.


Example:

{
    "amount": 17760,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Price

Type: object

The total price of all items of the order applying promotions and coupons, including all taxes.


Example:

{
    "amount": 17760,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: array

The total amount of each tax.

No Additional Items

Each item of this array must be:

Tax

Type: object

Contains information about a tax. May contain a percentage or a taxAmount or both.

Type: string

The type of the tax.


Example:

"VAT"

Type: boolean

Is the tax applied as a surcharge or not (non-surcharge taxes apply to the price including surcharges).


Example:

false

Price

Type: object

Amount of the tax


Example:

{
    "amount": "2160",
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: number

Percentage of the tax


Example:

20

Example:

[
    {
        "type": "VAT",
        "isSurcharge": false,
        "taxAmount": {
            "amount": 12000,
            "scale": 4,
            "currency": "EUR"
        }
    },
    {
        "type": "ECOTAXE",
        "isSurcharge": true,
        "taxAmount": {
            "amount": 260,
            "scale": 2,
            "currency": "EUR"
        }
    }
]

Type: array

List of coupon added to the cart.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Coupon

Type: object

This object represents a coupon into cart

Type: string

Unique Id to identify a coupon occurrence in the cart. This field is a 64-bit long number represented as a string to avoid unwanted conversions to scientific notation when dealing with the model inside js code

Must match regular expression: ^[0-9]+$
Example:

"2196602318024039368"

Type: string

The coupon code


Example:

"SONEPAR_BIRTHDAY23"

Type: string

A description of the coupon


Example:

"50€ discount on cart because it is our birthday"

Price

Type: object

The discount provided by the coupon


Example:

{
    "amount": 5000,
    "scale": 2,
    "currency": "EUR"
}

Type: integerFormat: int64

Unscaled price amount


Example:

20000

Type: integerFormat: int32

the scale to be applied on the amount


Example:

2

Type: string

the currency code following ISO 4217 standard 3 letter in which the prices are being displayed


Example:

"EUR"

Type: boolean

A flag showing whether or not the presence of other coupons is tolerated


Example:

true

Type: array of string

A list of item ids related to the coupon.

No Additional Items

Each item of this array must be:


Examples:

"1234"
"5647"

Type: array

Information about the coupon

No Additional Items

Each item of this array must be:

Message

Type: object

This object represents a business message to show to the end user. A message could contain either a code or a text.

Type: object

Type: enum (of string)

the severity of the message that could be used to decide on message formatting

Must be one of:

  • "INFO"
  • "WARN"
  • "ERROR"

Example:

"INFO"

Type: boolean

A 'blocker' message prevents the redirection to the checkout page. This flag is set to 'true' when the message requires customer attention.


Example:

true

MessageCode

Type: object

Type: enum (of string)

the code of the message

Must be one of:

  • "ITEM_REMOVED"
  • "ITEM_ADDED"
  • "ITEM_PRICES_CHANGED"
  • "ITEM_QUANTITY_CHANGED"
  • "COUPON_REMOVED"

Example:

"ITEM_REMOVED"

MessageText

Type: object

Type: string

the text of the message


Example:

"we would aim to provide all products to you by tomorrow"

Examples:

{
    "severity": "WARN",
    "isBlocker": false,
    "text": "15€ stil remaining before applying coupon"
}
{
    "severity": "WARN",
    "isBlocker": false,
    "text": "The coupon will expire soon"
}

Type: integer

Type: object

This property if present acts as a flag to identify an order as a marketplace one. It contains all marketplace specific order properties.

No Additional Properties

Type: string

Identifier of the purchase order to be sent by the OpCo to the Seller.
It is not to be confused with the customer purchaseOrder defined as part of the additional order information, which is an an optional identifier of the order as referenced by the customer.

Type: object

Contains seller information

Type: string

OpCo SellerId, as provided operator internal id for this seller.

Type: string

Seller name

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string

Identifier

Type: object

Contains seller information

Type: string

OpCo SellerId, as provided operator internal id for this seller.

Type: string

Seller name

Type: array

An array of facilities

No Additional Items

Each item of this array must be:

Facility

Type: object

Object representing a facility

Type: string

The id of the facility


Example:

"AB2"

Type: string

The name of the facility


Example:

"Antwerp Branch"

Address

Type: object

The address of the facility


Example:

{
    "opCoAddressId": "1234567890",
    "addressLine1": "chaussee Verlinden 22",
    "addressLine2": "Apartment 2",
    "city": "Bruges",
    "country": "BEL",
    "postalCode": "0287",
    "addressName": "Building #2",
    "companyName": "Easy Electric",
    "contactFirstName": "John",
    "contactLastName": "Doe",
    "contactPhoneNumber": "+333746573829",
    "deliveryIndication": "Please leave the parcel next the front door.",
    "customerReference": "Ref 364361"
}

Type: string

Address unique identifier on spark. Its value must contain a 64-bit long number represented as a string.


Example:

"234564567898789"

Type: string

OpCo internal system's unique identifier for the address.


Example:

"237564557868778"

Type: string

According to ISO 19160 the 1/3 component of the street address. This usually contains the whole address though


Example:

"chaussée Verlinden 22"

Type: string

According to ISO 19160 the 2/3 component of the street address.


Example:

"1st floor"

Type: string

According to ISO 19160 the 3/3 component of the street address.


Example:

"Apparment 2"

Type: string

The city name


Example:

"Bruges"

Type: string

The region name


Example:

"Frandre"

Type: string

The department name


Example:

"N/A"

Type: string

Country code


Example:

"Belgium"

Type: string

Postal code


Example:

"0287"

Type: string

Extra description about the address


Example:

"Building site 1"

Type: string

Company name, it might differ from the account name


Example:

"Easy Electric"

Type: string

Address contact's first name


Example:

"John"

Type: string

Address contact's last name


Example:

"Doe"

Type: string

Address contact's Phone number


Example:

"+330287345678"

Type: string

Optional indications or instructions about the delivery


Example:

"Please leave the parcel next the front door"

Type: string

Optional reference about the customer


Example:

"Reference 123"