Webhook Edit the file on GitHub

Important update: From 5/7/2021 onwards, more order state updates will be sent via Webhook requests. Read more

Smart Cart webhook allows Skroutz Merchants to automatically receive order details to their platform when a new Smart Cart order is placed or an existing one is updated.

You may find a high level overview of the service and descriptive guides for its activation in the merchant support guidelines.

Table of Contents

Setup

In order to be able to use the webhook, a webhook URL should be registered by the merchant from within Smart Cart settings page in merchant's panel (Merchants > Υπηρεσίες > Έξυπνο Καλάθι).

The webhook URL should match the shop's domain and it should follow secure HTTP (HTTPS)

Webhook URL example
Shop URL Webhook URL
https://shop.gr https://shop.gr/smart_cart_orders

Webhook requests

Requests to your endpoints will always originate from IP addresses within Skroutz's address space 185.6.76.0/22 2a03:e40::/32

An HTTP POST request is sent to the predefined webhook URL once an event has been triggered.

Handling failures / retries

Any failed request (including server timeouts or non -200 responses) would be retried automatically within the next 20 minutes. There is a retry limit of 4 requests in total for every order/event.

The merchant can also trigger sending (or retrying the latest) an order webhook request at any time from within the order page.

The expected request payload would be the same in both scenarios.

The anatomy of a request

Request
POST {webhook_url}
Request headers
Header Value
Content-Type application/json; charset=utf-8
User-Agent Skroutz OrderNotifier v1
Expected request response
200

Webhook events

The available webhook events for which a request is performed are:

  • new order events
  • order update events

New order

A new order webhook request is triggered upon the placement of a new order.

Order updates

An order update event is triggered upon the update of an order. As of right now, an update event notification is sent for the following cases:

  • When an order is cancelled (either by the user or our support team).
  • When an order is extended (allowing more time to handle the order).
  • When an order's courier voucher is created (for the associated shipment).
  • From 5/7/2021 onwards: When an order's state changes to one of the following states [:accepted, :rejected, :expired, :dispatched, :cancelled, :partially_returned, :returned] (either by the user, our support team, or the merchant)

Request payload

Name Type Value Description
event_type String new_order, order_updated Order event type
event_time Date String in format
YYYY-MM-DDTHH:MM:SS+HH:M
  Event creation time
order Object   Order details
changes Object   Order changes with old and new values (optional)

Order changes object

Name Type Value Description
state Object { "old": "open", "new": "cancelled" } The state changed values (optional)
expires_at Object { "old": "2019-11-02T13:15:43+02:00", "new": "2019-11-04T13:15:00+02:00" } The order's current expiration time changes (optional)
dispatch_until Object { "old": "2019-11-03T12:00:00+02:00", "new": "2019-11-04T18:00:00+02:00" } The order's current time until dispatching changes (optional)
courier_voucher Object { "old": null, "new": "https://b.scdn.gr/path-to/voucher.pdf" } The order's shipment courier voucher URL (optional)
courier_tracking_codes Object { "old": [], "new": ["123456789"] } The order's shipment courier tracking codes (optional)
fbs_delivery_note Object { "old": null, "new": "ΤΛΑΠΟ0454022" } The order's fulfilled by Skroutz warehouse delivery note (optional)
pickup_window Object { "old": null, "new: { from: "2019-11-02T15:00:00+02:00", "to": "2019-11-02T16:00:00+02:00" } } The order's shipment pickup window (optional). It is sent when the order is accepted.
number_of_parcels Integer { "old": null, "new": 2 } The order's shipment number of parcels (optional). It is sent when the order is accepted.
pickup_address String { "old": null, "new": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική" } The order's pickup address (optional).

The order object included in webhook payload is the sames as the one when retrieving a single order via the orders API.

Order object

Name Type Value Description
code String   Order code
state String open, accepted, rejected, cancelled, expired,
dispatched, delivered, partially_returned, returned, for_return
Order state
customer Object   Customer details
invoice Boolean   Invoice requested
invoice_details Object   Invoice details (available when invoice is requested)
comments String   Order comments
courier String ACS, Speedex, ELTA Courier, Easy Mail, COURIER CENTER, DHL, SendX Order's shipment courier
courier_voucher String   Order's shipment courier voucher URL
courier_tracking_codes Array   Order's shipment courier tracking codes
line_items Array   Order line items (products)
created_at Date String in format
YYYY-MM-DDTHH:MM:SS+HH:M
  Order creation date
expires_at Date String in format
YYYY-MM-DDTHH:MM:SS+HH:M
  Order expiration date
dispatch_until Date String in format
YYYY-MM-DDTHH:MM:SS+HH:M
  Order maximum dispatch date
express Boolean   Whether the order is marked as express delivery
gift_wrap Boolean   Whether gift wrap was requested
rejection_info Object   Rejection info (available for orders rejected with other reason)
accept_options Object   Accept options (available for orders with state "open")
reject_options Object   Reject options (available for orders with state "open")
fulfilled_by_skroutz Boolean   Whether the order is fulfilled by skroutz
fbs_delivery_note String   Order's delivery note from warehouse for orders that are fulfilled by Skroutz
pickup_window Object   Selected Pickup window
pickup_address String   Pickup location address
number_of_parcels Integer   Number of parcels

Customer details

Name Type Description
customer.id String Unique customer ID
customer.first_name String First name
customer.last_name String Last name
customer.address Object Customer shipping address

Customer shipping address

Name Type Description
customer.address.street_name String Address street
customer.address.street_number String Address number
customer.address.zip String Address postal code
customer.address.city String Address city
customer.address.region String Address region
customer.address.country_code String Address country code
customer.address.pickup_from_collection_point Boolean Pickup from collection point
customer.address.collection_point_address String Collection point address (available when pickup address is a collection point)

Invoice details

This attribute is present only when a user requests an invoice for the order.

Name Type Description
invoice_details.company String Company's name
invoice_details.profession String Company's profession
invoice_details.vat_number String Company's VAT number
invoice_details.doy String Company's public economic service
invoice_details.address Object Billing address
invoice_details.vat_exclusion_requested Boolean VAT exclusion requested (Υπηρεσία άρθρου 39α)
invoice_details.vat_exclusion_representative Object 39α representative details (when VAT exclusion is requested)

Billing address

Name Type Description
invoice_details.address.street_name String Address street
invoice_details.address.street_number String Address number
invoice_details.address.zip String Address postal code
invoice_details.address.city String Address city
invoice_details.address.region String Address region

Vat exclusion representative

Name Type Description
invoice_details.vat_exclusion_representative.id_type String Provided ID document type
invoice_details.vat_exclusion_representative.id_number String Provided ID document number (last 5 digits)
invoice_details.vat_exclusion_representative.otp String Provided representative one-time password

Rejection info

Name Type Description
rejection_info.reason String The rejection reason text
rejection_info.actor String The actor who performed the rejection. Possible values: skroutz, merchant

Pickup window

Name Type Description
pickup_window.from Date String in format
YYYY-MM-DDTHH:MM:SS+HH:M
Pickup window starting date/time
pickup_window.to Date String in format
YYYY-MM-DDTHH:MM:SS+HH:M
Pickup window ending date/time

Order line items array

Name Type Description
line_items[_].id String Unique item ID
line_items[_].shop_uid String Item ID in shop
line_items[_].shop_variation_uid String Variation ID in shop (optional for items with size)
line_items[_].product_name String Item product name
line_items[_].quantity Integer Item quantity
line_items[_].size Object Item size values (optional)
line_items[_].unit_price Double Price per item in euros
line_items[_].total_price Double Total item price in euros: unit_price * quantity
line_items[_].price_includes_vat Boolean Price includes VAT (could be false for invoice with VAT exclusion)
line_items[_].island_vat_discount_applied Boolean VAT discount applied (could be true for invoice orders, billed to customers in 5 specific Greek islands)
line_items[_].ean String EAN code of product (optional)
line_items[_].extra_info String Additional information for item, eg. color preference or prescription details for contact lenses (optional) webhook example
line_items[_].rejection_reason String Rejection reason (possible values: limited_stock, no_stock, discontinuation, wrong_price)
line_items[_].return_reason String User return reason (possible values: faulty, wrong_product, withdrawal, wrong_size)
line_items[_].serial_numbers String Serial numbers for item, concatenated by ',', e.g. SN12345,SN56789

Line item size

Name Type Value Description
line_items[_].size.label String Νούμερο, Μέγεθος, Ηλικία Item size label
line_items[_].size.value String   Item size value
line_items[_].size.shop_value String   Item original size as provided by the shop
line_items[_].size.shop_variation_uid String   Variation ID in shop for an item

Accept options

These are valid values to POST to the corresponding keys when accepting a single order (only available for orders with state "open").

Name Type Example Description
accept_options.number_of_parcels Array [1, 2, 3] Valid values to post on number_of_parcels
accept_options.pickup_location Array   Pickup location
accept_options.pickup_window Array   Pickup window

Accept option: Pickup location

Valid pickup locations to post when accepting a single order (use id).

Name Type Description
pickup_location.id String The location ID to use
pickup_location.label String A human readable address

Accept option: Pickup window

Valid pickup windows to post when accepting a single order (use id).

Name Type Description
pickup_window.id Integer The pickup window ID to use
pickup_window.label String A human readable time range

Reject options

These are possible values to POST to the corresponding keys when rejecting a single order (only available for orders with state "open").

Name Type Description
reject_options.line_item_rejection_reasons Array Line item rejection reason

Reject option: Line item rejection reason

Available reasons to post along line_item IDs when rejecting a single order (use id).

Name Type Description
line_item_rejection_reason.id Integer The rejection reason ID to use
line_item_rejection_reason.label String A human readable label
line_item_rejection_reason.requires_available_quantity Boolean Whether or not available_quantity is required

Possible values

ID Label Requires Available Quantity
1 Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή False
2 Λάθος καταχωρημένη τιμή(ες) False
4 Περιορισμένα τεμάχια True
5 To προϊόν καταργήθηκε False

Test requests (sandbox)

For demo orders, separate API endpoints are available to trigger different kinds of Webhook requests for testing. In the following examples, :code should be replaced with one of the following values:

  • DEMO-OPEN
  • DEMO-ACCEPTED
  • DEMO-REJECTED
  • DEMO-INVOICE
  • DEMO-INVOICE39A
  • DEMO-FBS
  • DEMO-FBS-DISPATCHED

An order creation or order update event should be received at the webhook url of the shop, depending on the request action. Sending any of the following requests should request in a successful response (200 OK):

  {
    "success": true
  }

Note: Demo webhook requests are not executed instantly, so they may take from a few seconds up to a few minutes to be processed and sent. After getting a successful response (200 OK), you would just have to wait a bit, before trying another one. All requests will be sent to the live Webhook URL that is already set-up in the Merchants panel for your shop.

New order

This sends a Webhook request payload just like if the order is new, with "event_type": "new_order".

  POST /merchants/ecommerce/orders/:code/trigger_webhook_request/creation

Courier voucher issued

This sends a Webhook request payload just like if the order was updated with a PDF voucher file, with "event_type": “order_updated”.

  POST /merchants/ecommerce/orders/:code/trigger_webhook_request/voucher_update

Order extended

This sends a Webhook request payload just like if the order acceptance period was extended by Skroutz support, with "event_type": “order_updated”.

  POST /merchants/ecommerce/orders/:code/trigger_webhook_request/extension

Order cancelled

Would send a Webhook request payload just like if the order was cancelled by the user, with "event_type": “order_updated”.

  POST /merchants/ecommerce/orders/:code/trigger_webhook_request/cancellation

Payload Examples

Example 1

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqxqwe",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqxqh2",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}
{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191025-0111363",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqzp2a",
        "shop_uid": "405753",
        "shop_variation_uid": "40575312-14",
        "product_name": "adidas Perormance Badge of Sport Swimsuit PS/GS ( DQ3375 )",
        "quantity": 2,
        "size": {
            "label": "Ηλικία",
            "value": "14 χρονών",
            "shop_value": "12-14",
            "shop_variation_uid": "40575312-14"
        },
        "unit_price": 17.99,
        "total_price": 35.98,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqzpll",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}

Example 3 (cancellation)

{
  "event_type": "order_updated",
  "event_time": "2019-10-29T10:39:23+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "cancelled",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqwezt",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqzpll",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-10-29T10:39:23+02:00",
    "expires_at": "2019-10-29T16:39:23+02:00",
    "dispatch_until": "2019-10-30T15:00:00+02:00"
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null
  },
  "changes": {
    "state": {
      "old": "open",
      "new": "cancelled"
    }
  }
}

Example 4 (extension)

{
  "event_type": "order_updated",
  "event_time": "2019-10-29T10:39:23+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "qw3rtyab34",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqzpll",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-10-29T10:39:23+02:00",
    "expires_at": "2019-10-29T16:39:23+02:00",
    "dispatch_until": "2019-10-30T15:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 30/10/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 31/10/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 31/10/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 31/10/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  },
  "changes": {
    "expires_at": {
      "old": "2019-11-02T13:15:43+02:00",
      "new": "2019-11-04T13:15:00+02:00"
    },
    "dispatch_until": {
      "old": "2019-11-03T12:00:00+02:00",
      "new": "2019-11-04T18:00:00+02:00"
    }
  }
}

Example 5 (courier voucher creation)

{
  "event_type": "order_updated",
  "event_time": "2019-10-29T10:39:23+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "accepted",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": "https://b.scdn.gr/path-to/voucher.pdf",
    "courier_tracking_codes": ["123456789"],
    "line_items": [
      {
        "id": "l39vpqzZ1l",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqzpll",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-10-29T10:39:23+02:00",
    "expires_at": "2019-10-29T16:39:23+02:00",
    "dispatch_until": "2019-10-30T15:00:00+02:00"
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null
    "pickup_window": { from: "2019-11-02T15:00:00+02:00", "to": "2019-11-02T16:00:00+02:00" },
    "number_of_parcels": 1,
    "pickup_address": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
  },
  "changes": {
    "courier_voucher": {
      "old": null,
      "new": "https://b.scdn.gr/path-to/voucher.pdf"
    },
    "courier_tracking_codes": {
      "old": [],
      "new": ["123456789"]
    }
  }
}

Example 6 (invoice requested, without VAT exclusion)

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": true,
    "invoice_details": {
      "company":"ACME",
      "profession":"Internet Services",
      "vat_number":"111119191",
      "doy":"ΙΒ Αθηνών",
      "address": {
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής"
      },
      "vat_exclusion_requested":false
    },
    "comments": "Παράδοση στο γραφείο",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqxqwe",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqxqh2",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}

Example 7 (invoice requested, with VAT exclusion)

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": true,
    "invoice_details": {
      "company":"ACME",
      "profession":"Internet Services",
      "vat_number":"111119191",
      "doy":"ΙΒ Αθηνών",
      "address": {
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής"
      },
      "vat_exclusion_requested":true,
      "vat_exclusion_representative": {
        "id_type":"ΑΤ Αστυνομική Ταυτότητα",
        "id_number":"12345",
        "otp":"123456"
      }
    },
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqxqwe",
        "shop_uid": "100",
        "product_name": "Smartphone 123",
        "quantity": 2,
        "unit_price": 100,
        "total_price": 200,
        "price_includes_vat": false,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqxqh2",
        "shop_uid": "10",
        "product_name": "Smartphone case Silver",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}

Example 8 (invoice requested, with reduced VAT applied in a line item)

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": true,
    "invoice_details": {
      "company":"ACME",
      "profession":"Internet Services",
      "vat_number":"111119191",
      "doy":"Χίου",
      "address": {
        "street_name":"25ης Μαρτίου",
        "street_number":"1",
        "zip":"82100",
        "city":"Χίος",
        "region":"Χίου"
      },
      "vat_exclusion_requested":false
    },
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqxqwe",
        "shop_uid": "100",
        "product_name": "Smartphone 123",
        "quantity": 2,
        "unit_price": 100,
        "total_price": 200,
        "price_includes_vat": true,
        "island_vat_discount_applied": true,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqxqh2",
        "shop_uid": "10",
        "product_name": "Smartphone case Silver",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}

Example 9 (pickup from collection point selected)

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"",
        "street_number":"",
        "zip":"",
        "city":"",
        "region":"",
        "country_code": "",
        "pickup_from_collection_point": true,
        "collection_point_address": "Κατάστημα ACS: ΠΕΤΡΟΥ ΡΑΛΛΗ 45, ΤΑΥΡΟΣ, 17778"
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqxqwe",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      },
      {
        "id": "l39vKqxqh2",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}

Example 10 (with extra_info in line_items)

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Πανεπιστημίου",
        "street_number":"4",
        "zip":"12345",
        "city":"Αθήνα",
        "region":"Αττικής",
        "country_code": "GR",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "courier": "ACS",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "RPJJ8gG5Pg",
        "shop_uid": "768",
        "product_name": "AIR OPTIX COLORS MHNIAIOI",
        "quantity": 2,
        "unit_price": 25.5,
        "total_price": 51,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "extra_info": "Χρώμα: Πράσινο\nΒαθμοί SPH: -6.50",
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}

Example 11 (shipped to Cyprus)

{
  "event_type": "new_order",
  "event_time": "2019-11-28T13:24:37+02:00",
  "order": {
    "code": "191029-5130474",
    "state": "open",
    "customer": {
      "id": "PA4oqvpz8x",
      "first_name": "John",
      "last_name": "Doe",
      "address":{
        "street_name":"Αρτέμιδος",
        "street_number":"4",
        "zip":"6031",
        "city":"Λάρνακα",
        "region":"Λάρνακας",
        "country_code": "CY",
        "pickup_from_collection_point": false
      }
    },
    "invoice": false,
    "comments": "Παράδοση στο γραφείο",
    "courier": "DHL",
    "courier_voucher": null,
    "courier_tracking_codes": [],
    "line_items": [
      {
        "id": "l39vKqxqwe",
        "shop_uid": "100",
        "product_name": "L'Oreal Professionel Salon Steam Pod V2 White",
        "quantity": 2,
        "unit_price": 10.40,
        "total_price": 20.80,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "ean": "1234567890123",
        "serial_numbers": null
      },
      {
        "id": "l39vKqxqh2",
        "shop_uid": "10",
        "product_name": "Paul Mitchell Ultimate Color Repair 200ml",
        "quantity": 1,
        "unit_price": 25,
        "total_price": 25,
        "price_includes_vat": true,
        "island_vat_discount_applied": false,
        "serial_numbers": null
      }
    ],
    "created_at": "2019-11-28T13:24:37+02:00",
    "expires_at": "2019-12-04T10:24:00+02:00",
    "dispatch_until": "2019-12-04T18:00:00+02:00",
    "express": false,
    "gift_wrap": false,
    "fulfilled_by_skroutz": false,
    "fbs_delivery_note": null,
    "accept_options": {
      "number_of_parcels": [
        1
      ],
      "pickup_location": [
        {
          "id": "YlpD0KROym",
          "label": "Πανεπιστημίου 2, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "onpL6DXG4l",
          "label": "Σταδίου 1, Τ.Κ. 12345, Αθήνα, Αττική"
        },
        {
          "id": "wgO1N22OaQ",
          "label": "Κρήτης 50, Τ.Κ. 73100, Χανιά, Χανιά"
        }
      ],
      "pickup_window": [
        {
          "id": 1,
          "label": "15:00 - 18:00, Τρί 03/12/19"
        },
        {
          "id": 2,
          "label": "10:00 - 12:00, Τετ 04/12/19"
        },
        {
          "id": 3,
          "label": "12:00 - 15:00, Τετ 04/12/19"
        },
        {
          "id": 4,
          "label": "15:00 - 18:00, Τετ 04/12/19"
        }
      ]
    },
    "reject_options": {
      "line_item_rejection_reasons": [
        {
          "id": 1,
          "label": "Εκτός αποθέματος στο κατάστημα ή στον προμηθευτή",
          "requires_available_quantity": false
        },
        {
          "id": 2,
          "label": "Λάθος καταχωρημένη τιμή(ες)",
          "requires_available_quantity": false
        },
        {
          "id": 4,
          "label": "Περιορισμένα τεμάχια",
          "requires_available_quantity": true
        },
        {
          "id": 5,
          "label": "To προϊόν καταργήθηκε",
          "requires_available_quantity": false
        }
      ]
    }
  }
}