{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/deliverect/refs/heads/main/json-schema/channel-api-post-channelname-order-channellinkid-schema.json",
  "title": "PostChannelnameOrderChannellinkid",
  "description": "Deliverect Create / Cancel Order",
  "type": "object",
  "properties": {
    "channelOrderId": {
      "type": "string",
      "example": "609a1b2c3d4e5f6a7b8c9d0e",
      "description": "The full unique ID from the ordering channel."
    },
    "channelOrderDisplayId": {
      "type": "string",
      "example": "609a1b2c3d4e5f6a7b8c9d0e",
      "description": "A humanly-readable order reference."
    },
    "validationId": {
      "type": "string",
      "example": "609a1b2c3d4e5f6a7b8c9d0e",
      "description": "Validation ID returned from dispatch validation when used."
    },
    "orderType": {
      "type": "integer",
      "example": 1,
      "description": "Order type. Use 1 for pickup, 2 for delivery, 3 for eat-in, and 4 for curbside."
    },
    "deliveryIsAsap": {
      "type": "boolean",
      "example": true
    },
    "pickupTime": {
      "type": "string",
      "example": "2026-03-15T14:30:00Z"
    },
    "deliveryTime": {
      "type": "string",
      "example": "2026-03-15T14:30:00Z"
    },
    "placedTime": {
      "type": "string",
      "example": "2026-03-15T14:30:00Z"
    },
    "courier": {
      "type": "string",
      "example": "string",
      "description": "Who delivers the order."
    },
    "ageCheck": {
      "type": "boolean",
      "example": true
    },
    "deliveryAddress": {
      "type": "object",
      "properties": {
        "street": {
          "type": "string",
          "example": "string"
        },
        "streetNumber": {
          "type": "string",
          "example": "string"
        },
        "postalCode": {
          "type": "string",
          "example": "string"
        },
        "area": {
          "type": "string",
          "example": "string"
        },
        "city": {
          "type": "string",
          "example": "string"
        },
        "country": {
          "type": "string",
          "example": "BE"
        },
        "extraAddressInfo": {
          "type": "string",
          "example": "string"
        },
        "coordinates": {
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number",
              "format": "float",
              "example": 1.0
            },
            "longitude": {
              "type": "number",
              "format": "float",
              "example": 1.0
            }
          }
        },
        "verification": {
          "type": "object",
          "properties": {
            "pincode": {
              "type": "string",
              "example": "string"
            }
          }
        }
      }
    },
    "deliveryInfo": {
      "type": "object",
      "properties": {
        "packageSize": {
          "type": "string",
          "example": "string"
        },
        "transportType": {
          "type": "string",
          "example": "string"
        }
      }
    },
    "decimalDigits": {
      "type": "integer",
      "example": 1
    },
    "payment": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "integer",
          "example": 1250
        },
        "type": {
          "type": "integer",
          "example": 1
        },
        "due": {
          "type": "integer",
          "example": 1
        }
      },
      "required": [
        "amount",
        "type"
      ]
    },
    "taxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "taxClassId": {
            "type": "integer",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Deliverect's Pizza Place"
          },
          "total": {
            "type": "integer",
            "example": 1250
          }
        }
      }
    },
    "taxRemitted": {
      "type": "integer",
      "example": 1
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "plu": {
            "type": "string",
            "example": "PIE1"
          },
          "name": {
            "type": "string",
            "example": "Deliverect's Pizza Place"
          },
          "price": {
            "type": "integer",
            "example": 1250
          },
          "quantity": {
            "type": "integer",
            "example": 1
          },
          "remark": {
            "type": "string",
            "example": "No salad"
          },
          "discountReferenceIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "example": 1
            }
          },
          "subItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "plu": {
                  "type": "string",
                  "example": "PIE1"
                },
                "name": {
                  "type": "string",
                  "example": "Deliverect's Pizza Place"
                },
                "price": {
                  "type": "integer",
                  "example": 1250
                },
                "quantity": {
                  "type": "integer",
                  "example": 1
                },
                "remark": {
                  "type": "string",
                  "example": "No salad"
                },
                "subItems": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "plu": {
                        "type": "string",
                        "example": "PIE1"
                      },
                      "name": {
                        "type": "string",
                        "example": "Deliverect's Pizza Place"
                      },
                      "price": {
                        "type": "integer",
                        "example": 1250
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 1
                      },
                      "remark": {
                        "type": "string",
                        "example": "No salad"
                      },
                      "subItems": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "includeCutlery": {
      "type": "boolean",
      "example": true
    },
    "table": {
      "type": "string",
      "example": "string"
    },
    "orderIsAlreadyPaid": {
      "type": "boolean",
      "example": true
    },
    "note": {
      "type": "string",
      "example": "No salad"
    },
    "numberOfCustomers": {
      "type": "integer",
      "example": 1
    },
    "customer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Deliverect's Pizza Place"
        },
        "companyName": {
          "type": "string",
          "example": "Deliverect's Pizza Place"
        },
        "phoneNumber": {
          "type": "string",
          "example": "+15555550123"
        },
        "phoneAccessCode": {
          "type": "string",
          "example": "+15555550123"
        },
        "email": {
          "type": "string",
          "example": "customer@example.com"
        },
        "tin": {
          "type": "string",
          "example": "string"
        },
        "note": {
          "type": "string",
          "example": "No salad"
        }
      }
    },
    "deliveryCost": {
      "type": "integer",
      "example": 1250
    },
    "deliveryCostTax": {
      "type": "integer",
      "example": 1250
    },
    "serviceCharge": {
      "type": "integer",
      "example": 1
    },
    "serviceChargeTax": {
      "type": "integer",
      "example": 1
    },
    "tip": {
      "type": "integer",
      "example": 1250
    },
    "driverTip": {
      "type": "integer",
      "example": 1250
    },
    "bagFee": {
      "type": "integer",
      "example": 1250
    },
    "discountTotal": {
      "type": "integer",
      "example": 1250
    },
    "discounts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "string"
          },
          "provider": {
            "type": "string",
            "example": "string"
          },
          "name": {
            "type": "string",
            "example": "Deliverect's Pizza Place"
          },
          "channelDiscountCode": {
            "type": "string",
            "example": "string"
          },
          "referenceId": {
            "type": "integer",
            "example": 1
          },
          "value": {
            "type": "integer",
            "example": 1
          },
          "amount": {
            "type": "integer",
            "example": 1250
          }
        }
      }
    }
  },
  "required": [
    "channelOrderId",
    "channelOrderDisplayId",
    "orderType",
    "courier",
    "payment"
  ]
}