Skip to content

Orders – API methods 

The Orders API lets you automate tasks related to your customers’ orders. Think of it as a direct line between your system and ours – no manual data entry required.

We offer 4 HTTP methods to work with order data:

  1. POST – add new orders or update existing order information.
  2. GET – retrieve order details using the order ID.
  3. PUT – register orders that haven’t been added to the platform yet.

DELETE – mark orders as deleted (sets the IsDeleted status).

POST method – adding order information 

This method handles both new orders and updates to existing ones. You can choose from 3 different modes:

  • Add – adds a completely new order to your account.
  • AddOrReplace – adds a new order or replaces existing data if the order is already in the system.
  • Replace – updates the information for an existing order.

Endpoint

The endpoint for POST requests is:: https://api.ecdp.app/orders

Request parameters

Parameter RequiredType Category Min/max length (characters)Description 
x-api-keyyesstring header Your API key, which you can find in Settings > API. 
modeyesstringbodyAdd, AddOrReplace, Replace – choose what do you want to do with the order data.
idyesstring body min:1
max: 128
Order ID number.
dateyesstring($date-time) body When the order was placed.
timeZonenostringbodymax: 100The timezone the order was placed in. See: Supported time zones for orders for parameter values.
websiteIdnointeger($int32) bodyWebsite ID number where the order was placed.
statusnostringbodyOne of four order statuses: placed, paid, completed, canceled.
currencynostringbodymin: 3
max: 3
Order currency.
totalValueyesnumber($double) body min: 0Total order value.
customer yes body Customer information – see Customer parameters.
productsyes body Product details – see Product parameters.
orderAttributenobodyOptional product attributes – see Product attribute parameters.

The customer, products, and orderAttributes parameters contain their own sub-parameters for more detailed information.

Customer parameters

Parameter RequiredType Min/max length (characters)Description 
email nostring min: 0
max: 320
Customer’s email address – required if email is set as the default matching mode in Settings > Customers.
phone nostring min:0
max: 20
Customer’s phone number – required if phone is set as the default matching mode in Settings > Customers.
crmId nostring min: 0
max: 128
Customer’s CRM ID – required if CRM ID is set as the default matching mode in Settings > Customers.

Product parameters

Parameter Required Type  Min/max length (characters)Description 
id* yesstring min: 1
max:128
Product ID.
name* yesstring min: 1
max: 2048
Product name.
price* yesnumber($double) min: 0
Product price.
quantity* yesinteger($int32) min:1
max: 2147483647
Quantity of purchased product.
returned nointeger($int32) min: 0
max: 2147483647
Number of returned products. 
url nostring min: 0
max: 2048
Product page URL.
imageUrl nostring min: 0
max: 2048
Product image URL.
category nostring min: 0
max: 2048
Product category.
productAttributes no Product attributes – see Order attribute parameters.

Product attribute parameters 

Parameter RequiredType  Min/max length (characters)Description 
name* yesstring min: 0
max: 256
Product attribute name.
value nostring Product attribute value. 

Order attribute parameters 

Parameter RequiredType  Min/max length (characters)Description 
name* yesstring min: 0
max: 256
Order attribute name.
value nostring Order attribute value.

Request body syntax

Here’s what a request looks like when you want to add a new order:

{
  "mode": "Add",
  "data": [
    {
      "id": "12345",
      "date": "2024-11-06T10:10:00.055Z",
      "timeZone": "Pacific Standard Time",
      "websiteId": 1,
      "status": "Completed",
      "currency": "USD",
      "totalValue": 150.00,
      "returnsValue": 0,
      "customer": {
        "email": "customer@example.com",
        "phone": "+15551234567",
        "crmId": "67890"
      },
      "products": [
        {
          "id": "p001",
          "name": "Wireless Earbuds",
          "price": 75.00,
          "quantity": 2,
          "returned": 0,
          "url": "https://example.com/products/wireless-earbuds",
          "imageUrl": "https://example.com/images/wireless-earbuds.jpg",
          "category": "Electronics",
          "productAttributes": [
            {
              "name": "Color",
              "value": "Black"
            },
            {
              "name": "Warranty",
              "value": "1 Year"
            }
          ]
        }
      ],
      "orderAttributes": [
        {
          "name": "Shipping Method",
          "value": "Express"
        },
        {
          "name": "Gift Wrap",
          "value": "Yes"
        }
      ]
    }
  ]
}

Not sure if an order already exists in your database? Simply change the “mode” parameter to “AddOrReplace” and let the system handle it for you.

Response codes 

201: Created

Your request was successful, and the order has been created.

400: Bad request

Something went wrong with your request – usually a missing or incorrect parameter.

Sample response:

{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    "string"
  ]

401: Unauthorized

Your API key is missing or you don’t have permission to access this information. Sample response:

{
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}

GET{id} method – retrieving order information using order ID

Use the GET method when you need to pull order details from the system using order ID. A successful request returns read-only order data.

Endpoint

The endpoint for GET requests is: https://api.ecdp.app/orders/{id}

Request parameters

ParameterRequiredTypeUsed inDescription
idyesstringURL pathThe ID number of the order whose data you want.
x-api-keyyesstringheaderYour API key, which you can find in Settings > API.

Proper request format

The correct API request for order number 12 looks like this: https://client.ecdp.app/orders/{12}

Response codes

200: Success

Your request was processed successfully.

Sample response:

{
  "status": 0,
  "data": {
    "id": "string",
    "date": "2024-07-25T10:08:59.197Z",
    "timeZone": "string",
    "websiteId": 0,
    "status": "string",
    "currency": "str",
    "totalValue": 0,
    "returnsValue": 0,
    "customer": {
      "id": 0,
      "email": "string",
      "phone": "string",
      "crmId": "string"
    },
    "products": [
      {
        "id": "string",
        "name": "string",
        "price": 0,
        "quantity": 2147483647,
        "returned": 2147483647,
        "url": "string",
        "imageUrl": "string",
        "category": "string",
        "productAttributes": [
          {
            "name": "string",
            "value": "string"
          }
        ]
      }
    ],
    "orderAttributes": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  }
}

401: Unauthorized

Your API key is missing, or you don’t have permission to access this information.

Sample response:

{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}

404: Not found

The order you’re looking for doesn’t exist in the system.

Sample response:

{  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}

PUT method – updating order status

This method handles orders that haven’t been given a status in the platform yet, or which status you want to update. When you send a successful PUT request, you’ll get a read-only response confirming the order status has been updated.

Endpoint

The endpoint for PUT method is:https://api.ecdp.app/orders/status

Request parameters

ParameterRequiredTypeUsed inDescription
orderIdyesstringbodyThe ID number of the order whose status you want to update.
orderStatusyesstringbodyOne of the following order statuses available in ECDP: paid, completed, placed, canceled.
x-api-keyyesstringheaderYour API key, which you can find in Settings > API.

Proper request format

The correct API request for order number 12 and looks like this: 

{
  "orderId": "12",
  "orderStatus": placed"
}

Response codes

200: Success

Your request was processed, and the order status has been updated.

400: Bad request

Something went wrong – usually a missing or incorrect parameter.

Sample response:

{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string",
  "errors": [
    "string"
  ]
}

401: Unauthorized

Your API key is missing or you don’t have permission to access this information.

Sample response:

{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}

DELETE{id} method – marking orders as deleted

Use the DELETE method to change an order’s status to IsDeleted. This doesn’t actually remove the order from your system – it just marks it as deleted. A successful request returns a read-only response.

Endpoint

The endpoint for DELETE method is:https://api.ecdp.app/orders/{id}

Request parameters

ParameterRequiredTypeUsed inDescription
idyesstringURL pathThe ID number of the order you want to mark as deleted.
x-api-keyyesstringheaderYour API key, which you can find in Settings > API.

Response codes

200: Success

The order status has been updated to deleted. Sample response:

{
  "status": 0,
  "data": {
    "id": "string",
    "date": "2024-07-25T10:10:53.036Z",
    "timeZone": "string",
    "websiteId": 0,
    "status": "string",
    "currency": "str",
    "totalValue": 0,
    "returnsValue": 0,
    "customer": {
      "id": 0,
      "email": "string",
      "phone": "string",
      "crmId": "string"
    },
    "products": [
      {
        "id": "string",
        "name": "string",
        "price": 0,
        "quantity": 2147483647,
        "returned": 2147483647,
        "url": "string",
        "imageUrl": "string",
        "category": "string",
        "productAttributes": [
          {
            "name": "string",
            "value": "string"
          }
        ]
      }
    ],
    "orderAttributes": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  }
}

401: Unauthorized

Your API key is missing or you don’t have permission to access this information. Sample response:

{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}

404: Not found

The order you’re trying to delete doesn’t exist in the system.

Sample response:

{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}