Validate order type draft
curl --request POST \
--url https://apiweb.mile.app/api/v4/order-type-validate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orderTypeId": "6710a2f4c1d2e3f4a5b6c7d8",
"fields": [
{
"id": "orderNo",
"title": "Order number",
"type": "string",
"required": true,
"unique": true,
"show": true
},
{
"id": "customerName",
"title": "Customer name",
"type": "string",
"required": false,
"show": true
},
{
"id": "weight",
"title": "Weight (kg)",
"type": "number",
"required": false,
"show": true,
"min": 0
}
],
"statuses": [
{
"id": "new",
"label": "New",
"category": "new",
"order": 1,
"color": "#6C757D"
},
{
"id": "onDelivery",
"label": "On delivery",
"category": "inProgress",
"order": 2
},
{
"id": "completed",
"label": "Completed",
"category": "completed",
"order": 3
},
{
"id": "cancelled",
"label": "Cancelled",
"category": "completed",
"order": 4
}
],
"configuration": {
"uniqueBy": [
"orderNo"
],
"cancelStatusId": "cancelled"
},
"orderSteps": [
{
"id": "start",
"type": "string",
"title": "Order created",
"position": {
"x": 0,
"y": 0
},
"event": "onOrderCreated",
"next": {
"next": [
"pickup"
]
}
},
{
"id": "pickup",
"type": "string",
"title": "Pickup",
"position": {
"x": 240,
"y": 0
},
"taskTypeId": "66f1b2c3d4e5f6a7b8c9d0e1",
"assignee": {
"mode": "unassigned"
},
"hub": {
"mode": "order"
},
"quantity": {
"mode": "perOrder"
},
"taskData": [
{
"target": "title",
"source": {
"ref": "$order.values.orderNo"
}
}
],
"saveToOrder": [],
"next": {
"next": [
"done"
]
}
},
{
"id": "done",
"type": "string",
"title": "Finish",
"position": {
"x": 480,
"y": 0
},
"statusId": "completed"
}
]
}
'import requests
url = "https://apiweb.mile.app/api/v4/order-type-validate"
payload = {
"orderTypeId": "6710a2f4c1d2e3f4a5b6c7d8",
"fields": [
{
"id": "orderNo",
"title": "Order number",
"type": "string",
"required": True,
"unique": True,
"show": True
},
{
"id": "customerName",
"title": "Customer name",
"type": "string",
"required": False,
"show": True
},
{
"id": "weight",
"title": "Weight (kg)",
"type": "number",
"required": False,
"show": True,
"min": 0
}
],
"statuses": [
{
"id": "new",
"label": "New",
"category": "new",
"order": 1,
"color": "#6C757D"
},
{
"id": "onDelivery",
"label": "On delivery",
"category": "inProgress",
"order": 2
},
{
"id": "completed",
"label": "Completed",
"category": "completed",
"order": 3
},
{
"id": "cancelled",
"label": "Cancelled",
"category": "completed",
"order": 4
}
],
"configuration": {
"uniqueBy": ["orderNo"],
"cancelStatusId": "cancelled"
},
"orderSteps": [
{
"id": "start",
"type": "string",
"title": "Order created",
"position": {
"x": 0,
"y": 0
},
"event": "onOrderCreated",
"next": { "next": ["pickup"] }
},
{
"id": "pickup",
"type": "string",
"title": "Pickup",
"position": {
"x": 240,
"y": 0
},
"taskTypeId": "66f1b2c3d4e5f6a7b8c9d0e1",
"assignee": { "mode": "unassigned" },
"hub": { "mode": "order" },
"quantity": { "mode": "perOrder" },
"taskData": [
{
"target": "title",
"source": { "ref": "$order.values.orderNo" }
}
],
"saveToOrder": [],
"next": { "next": ["done"] }
},
{
"id": "done",
"type": "string",
"title": "Finish",
"position": {
"x": 480,
"y": 0
},
"statusId": "completed"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
orderTypeId: '6710a2f4c1d2e3f4a5b6c7d8',
fields: [
{
id: 'orderNo',
title: 'Order number',
type: 'string',
required: true,
unique: true,
show: true
},
{
id: 'customerName',
title: 'Customer name',
type: 'string',
required: false,
show: true
},
{
id: 'weight',
title: 'Weight (kg)',
type: 'number',
required: false,
show: true,
min: 0
}
],
statuses: [
{id: 'new', label: 'New', category: 'new', order: 1, color: '#6C757D'},
{id: 'onDelivery', label: 'On delivery', category: 'inProgress', order: 2},
{id: 'completed', label: 'Completed', category: 'completed', order: 3},
{id: 'cancelled', label: 'Cancelled', category: 'completed', order: 4}
],
configuration: {uniqueBy: ['orderNo'], cancelStatusId: 'cancelled'},
orderSteps: [
{
id: 'start',
type: 'string',
title: 'Order created',
position: {x: 0, y: 0},
event: 'onOrderCreated',
next: {next: ['pickup']}
},
{
id: 'pickup',
type: 'string',
title: 'Pickup',
position: {x: 240, y: 0},
taskTypeId: '66f1b2c3d4e5f6a7b8c9d0e1',
assignee: {mode: 'unassigned'},
hub: {mode: 'order'},
quantity: {mode: 'perOrder'},
taskData: [{target: 'title', source: {ref: '$order.values.orderNo'}}],
saveToOrder: [],
next: {next: ['done']}
},
{
id: 'done',
type: 'string',
title: 'Finish',
position: {x: 480, y: 0},
statusId: 'completed'
}
]
})
};
fetch('https://apiweb.mile.app/api/v4/order-type-validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apiweb.mile.app/api/v4/order-type-validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'orderTypeId' => '6710a2f4c1d2e3f4a5b6c7d8',
'fields' => [
[
'id' => 'orderNo',
'title' => 'Order number',
'type' => 'string',
'required' => true,
'unique' => true,
'show' => true
],
[
'id' => 'customerName',
'title' => 'Customer name',
'type' => 'string',
'required' => false,
'show' => true
],
[
'id' => 'weight',
'title' => 'Weight (kg)',
'type' => 'number',
'required' => false,
'show' => true,
'min' => 0
]
],
'statuses' => [
[
'id' => 'new',
'label' => 'New',
'category' => 'new',
'order' => 1,
'color' => '#6C757D'
],
[
'id' => 'onDelivery',
'label' => 'On delivery',
'category' => 'inProgress',
'order' => 2
],
[
'id' => 'completed',
'label' => 'Completed',
'category' => 'completed',
'order' => 3
],
[
'id' => 'cancelled',
'label' => 'Cancelled',
'category' => 'completed',
'order' => 4
]
],
'configuration' => [
'uniqueBy' => [
'orderNo'
],
'cancelStatusId' => 'cancelled'
],
'orderSteps' => [
[
'id' => 'start',
'type' => 'string',
'title' => 'Order created',
'position' => [
'x' => 0,
'y' => 0
],
'event' => 'onOrderCreated',
'next' => [
'next' => [
'pickup'
]
]
],
[
'id' => 'pickup',
'type' => 'string',
'title' => 'Pickup',
'position' => [
'x' => 240,
'y' => 0
],
'taskTypeId' => '66f1b2c3d4e5f6a7b8c9d0e1',
'assignee' => [
'mode' => 'unassigned'
],
'hub' => [
'mode' => 'order'
],
'quantity' => [
'mode' => 'perOrder'
],
'taskData' => [
[
'target' => 'title',
'source' => [
'ref' => '$order.values.orderNo'
]
]
],
'saveToOrder' => [
],
'next' => [
'next' => [
'done'
]
]
],
[
'id' => 'done',
'type' => 'string',
'title' => 'Finish',
'position' => [
'x' => 480,
'y' => 0
],
'statusId' => 'completed'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apiweb.mile.app/api/v4/order-type-validate"
payload := strings.NewReader("{\n \"orderTypeId\": \"6710a2f4c1d2e3f4a5b6c7d8\",\n \"fields\": [\n {\n \"id\": \"orderNo\",\n \"title\": \"Order number\",\n \"type\": \"string\",\n \"required\": true,\n \"unique\": true,\n \"show\": true\n },\n {\n \"id\": \"customerName\",\n \"title\": \"Customer name\",\n \"type\": \"string\",\n \"required\": false,\n \"show\": true\n },\n {\n \"id\": \"weight\",\n \"title\": \"Weight (kg)\",\n \"type\": \"number\",\n \"required\": false,\n \"show\": true,\n \"min\": 0\n }\n ],\n \"statuses\": [\n {\n \"id\": \"new\",\n \"label\": \"New\",\n \"category\": \"new\",\n \"order\": 1,\n \"color\": \"#6C757D\"\n },\n {\n \"id\": \"onDelivery\",\n \"label\": \"On delivery\",\n \"category\": \"inProgress\",\n \"order\": 2\n },\n {\n \"id\": \"completed\",\n \"label\": \"Completed\",\n \"category\": \"completed\",\n \"order\": 3\n },\n {\n \"id\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"category\": \"completed\",\n \"order\": 4\n }\n ],\n \"configuration\": {\n \"uniqueBy\": [\n \"orderNo\"\n ],\n \"cancelStatusId\": \"cancelled\"\n },\n \"orderSteps\": [\n {\n \"id\": \"start\",\n \"type\": \"string\",\n \"title\": \"Order created\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"event\": \"onOrderCreated\",\n \"next\": {\n \"next\": [\n \"pickup\"\n ]\n }\n },\n {\n \"id\": \"pickup\",\n \"type\": \"string\",\n \"title\": \"Pickup\",\n \"position\": {\n \"x\": 240,\n \"y\": 0\n },\n \"taskTypeId\": \"66f1b2c3d4e5f6a7b8c9d0e1\",\n \"assignee\": {\n \"mode\": \"unassigned\"\n },\n \"hub\": {\n \"mode\": \"order\"\n },\n \"quantity\": {\n \"mode\": \"perOrder\"\n },\n \"taskData\": [\n {\n \"target\": \"title\",\n \"source\": {\n \"ref\": \"$order.values.orderNo\"\n }\n }\n ],\n \"saveToOrder\": [],\n \"next\": {\n \"next\": [\n \"done\"\n ]\n }\n },\n {\n \"id\": \"done\",\n \"type\": \"string\",\n \"title\": \"Finish\",\n \"position\": {\n \"x\": 480,\n \"y\": 0\n },\n \"statusId\": \"completed\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://apiweb.mile.app/api/v4/order-type-validate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"orderTypeId\": \"6710a2f4c1d2e3f4a5b6c7d8\",\n \"fields\": [\n {\n \"id\": \"orderNo\",\n \"title\": \"Order number\",\n \"type\": \"string\",\n \"required\": true,\n \"unique\": true,\n \"show\": true\n },\n {\n \"id\": \"customerName\",\n \"title\": \"Customer name\",\n \"type\": \"string\",\n \"required\": false,\n \"show\": true\n },\n {\n \"id\": \"weight\",\n \"title\": \"Weight (kg)\",\n \"type\": \"number\",\n \"required\": false,\n \"show\": true,\n \"min\": 0\n }\n ],\n \"statuses\": [\n {\n \"id\": \"new\",\n \"label\": \"New\",\n \"category\": \"new\",\n \"order\": 1,\n \"color\": \"#6C757D\"\n },\n {\n \"id\": \"onDelivery\",\n \"label\": \"On delivery\",\n \"category\": \"inProgress\",\n \"order\": 2\n },\n {\n \"id\": \"completed\",\n \"label\": \"Completed\",\n \"category\": \"completed\",\n \"order\": 3\n },\n {\n \"id\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"category\": \"completed\",\n \"order\": 4\n }\n ],\n \"configuration\": {\n \"uniqueBy\": [\n \"orderNo\"\n ],\n \"cancelStatusId\": \"cancelled\"\n },\n \"orderSteps\": [\n {\n \"id\": \"start\",\n \"type\": \"string\",\n \"title\": \"Order created\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"event\": \"onOrderCreated\",\n \"next\": {\n \"next\": [\n \"pickup\"\n ]\n }\n },\n {\n \"id\": \"pickup\",\n \"type\": \"string\",\n \"title\": \"Pickup\",\n \"position\": {\n \"x\": 240,\n \"y\": 0\n },\n \"taskTypeId\": \"66f1b2c3d4e5f6a7b8c9d0e1\",\n \"assignee\": {\n \"mode\": \"unassigned\"\n },\n \"hub\": {\n \"mode\": \"order\"\n },\n \"quantity\": {\n \"mode\": \"perOrder\"\n },\n \"taskData\": [\n {\n \"target\": \"title\",\n \"source\": {\n \"ref\": \"$order.values.orderNo\"\n }\n }\n ],\n \"saveToOrder\": [],\n \"next\": {\n \"next\": [\n \"done\"\n ]\n }\n },\n {\n \"id\": \"done\",\n \"type\": \"string\",\n \"title\": \"Finish\",\n \"position\": {\n \"x\": 480,\n \"y\": 0\n },\n \"statusId\": \"completed\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiweb.mile.app/api/v4/order-type-validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"orderTypeId\": \"6710a2f4c1d2e3f4a5b6c7d8\",\n \"fields\": [\n {\n \"id\": \"orderNo\",\n \"title\": \"Order number\",\n \"type\": \"string\",\n \"required\": true,\n \"unique\": true,\n \"show\": true\n },\n {\n \"id\": \"customerName\",\n \"title\": \"Customer name\",\n \"type\": \"string\",\n \"required\": false,\n \"show\": true\n },\n {\n \"id\": \"weight\",\n \"title\": \"Weight (kg)\",\n \"type\": \"number\",\n \"required\": false,\n \"show\": true,\n \"min\": 0\n }\n ],\n \"statuses\": [\n {\n \"id\": \"new\",\n \"label\": \"New\",\n \"category\": \"new\",\n \"order\": 1,\n \"color\": \"#6C757D\"\n },\n {\n \"id\": \"onDelivery\",\n \"label\": \"On delivery\",\n \"category\": \"inProgress\",\n \"order\": 2\n },\n {\n \"id\": \"completed\",\n \"label\": \"Completed\",\n \"category\": \"completed\",\n \"order\": 3\n },\n {\n \"id\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"category\": \"completed\",\n \"order\": 4\n }\n ],\n \"configuration\": {\n \"uniqueBy\": [\n \"orderNo\"\n ],\n \"cancelStatusId\": \"cancelled\"\n },\n \"orderSteps\": [\n {\n \"id\": \"start\",\n \"type\": \"string\",\n \"title\": \"Order created\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"event\": \"onOrderCreated\",\n \"next\": {\n \"next\": [\n \"pickup\"\n ]\n }\n },\n {\n \"id\": \"pickup\",\n \"type\": \"string\",\n \"title\": \"Pickup\",\n \"position\": {\n \"x\": 240,\n \"y\": 0\n },\n \"taskTypeId\": \"66f1b2c3d4e5f6a7b8c9d0e1\",\n \"assignee\": {\n \"mode\": \"unassigned\"\n },\n \"hub\": {\n \"mode\": \"order\"\n },\n \"quantity\": {\n \"mode\": \"perOrder\"\n },\n \"taskData\": [\n {\n \"target\": \"title\",\n \"source\": {\n \"ref\": \"$order.values.orderNo\"\n }\n }\n ],\n \"saveToOrder\": [],\n \"next\": {\n \"next\": [\n \"done\"\n ]\n }\n },\n {\n \"id\": \"done\",\n \"type\": \"string\",\n \"title\": \"Finish\",\n \"position\": {\n \"x\": 480,\n \"y\": 0\n },\n \"statusId\": \"completed\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"ok": false,
"checks": [
{
"code": "ordt-109",
"rule": "GR-05",
"severity": "error",
"key": "deadEnd",
"stepId": "pickup",
"port": "next",
"params": {}
}
]
}
}{
"status": false,
"message": "Bad request - invalid parameters provided."
}{
"status": false,
"message": "Internal server error, please contact [email protected]."
}Order Type
Validate order type draft
Runs every publish check on an unsaved draft and returns the report; nothing is saved. Requires permission edit/orderType.
Always answers 200 with ok (true when no check has severity error) and checks. Any part you leave out counts as empty. Pass orderTypeId for an existing order type to also run the checks that compare with its stored data and orders.
POST
/
order-type-validate
Validate order type draft
curl --request POST \
--url https://apiweb.mile.app/api/v4/order-type-validate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orderTypeId": "6710a2f4c1d2e3f4a5b6c7d8",
"fields": [
{
"id": "orderNo",
"title": "Order number",
"type": "string",
"required": true,
"unique": true,
"show": true
},
{
"id": "customerName",
"title": "Customer name",
"type": "string",
"required": false,
"show": true
},
{
"id": "weight",
"title": "Weight (kg)",
"type": "number",
"required": false,
"show": true,
"min": 0
}
],
"statuses": [
{
"id": "new",
"label": "New",
"category": "new",
"order": 1,
"color": "#6C757D"
},
{
"id": "onDelivery",
"label": "On delivery",
"category": "inProgress",
"order": 2
},
{
"id": "completed",
"label": "Completed",
"category": "completed",
"order": 3
},
{
"id": "cancelled",
"label": "Cancelled",
"category": "completed",
"order": 4
}
],
"configuration": {
"uniqueBy": [
"orderNo"
],
"cancelStatusId": "cancelled"
},
"orderSteps": [
{
"id": "start",
"type": "string",
"title": "Order created",
"position": {
"x": 0,
"y": 0
},
"event": "onOrderCreated",
"next": {
"next": [
"pickup"
]
}
},
{
"id": "pickup",
"type": "string",
"title": "Pickup",
"position": {
"x": 240,
"y": 0
},
"taskTypeId": "66f1b2c3d4e5f6a7b8c9d0e1",
"assignee": {
"mode": "unassigned"
},
"hub": {
"mode": "order"
},
"quantity": {
"mode": "perOrder"
},
"taskData": [
{
"target": "title",
"source": {
"ref": "$order.values.orderNo"
}
}
],
"saveToOrder": [],
"next": {
"next": [
"done"
]
}
},
{
"id": "done",
"type": "string",
"title": "Finish",
"position": {
"x": 480,
"y": 0
},
"statusId": "completed"
}
]
}
'import requests
url = "https://apiweb.mile.app/api/v4/order-type-validate"
payload = {
"orderTypeId": "6710a2f4c1d2e3f4a5b6c7d8",
"fields": [
{
"id": "orderNo",
"title": "Order number",
"type": "string",
"required": True,
"unique": True,
"show": True
},
{
"id": "customerName",
"title": "Customer name",
"type": "string",
"required": False,
"show": True
},
{
"id": "weight",
"title": "Weight (kg)",
"type": "number",
"required": False,
"show": True,
"min": 0
}
],
"statuses": [
{
"id": "new",
"label": "New",
"category": "new",
"order": 1,
"color": "#6C757D"
},
{
"id": "onDelivery",
"label": "On delivery",
"category": "inProgress",
"order": 2
},
{
"id": "completed",
"label": "Completed",
"category": "completed",
"order": 3
},
{
"id": "cancelled",
"label": "Cancelled",
"category": "completed",
"order": 4
}
],
"configuration": {
"uniqueBy": ["orderNo"],
"cancelStatusId": "cancelled"
},
"orderSteps": [
{
"id": "start",
"type": "string",
"title": "Order created",
"position": {
"x": 0,
"y": 0
},
"event": "onOrderCreated",
"next": { "next": ["pickup"] }
},
{
"id": "pickup",
"type": "string",
"title": "Pickup",
"position": {
"x": 240,
"y": 0
},
"taskTypeId": "66f1b2c3d4e5f6a7b8c9d0e1",
"assignee": { "mode": "unassigned" },
"hub": { "mode": "order" },
"quantity": { "mode": "perOrder" },
"taskData": [
{
"target": "title",
"source": { "ref": "$order.values.orderNo" }
}
],
"saveToOrder": [],
"next": { "next": ["done"] }
},
{
"id": "done",
"type": "string",
"title": "Finish",
"position": {
"x": 480,
"y": 0
},
"statusId": "completed"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
orderTypeId: '6710a2f4c1d2e3f4a5b6c7d8',
fields: [
{
id: 'orderNo',
title: 'Order number',
type: 'string',
required: true,
unique: true,
show: true
},
{
id: 'customerName',
title: 'Customer name',
type: 'string',
required: false,
show: true
},
{
id: 'weight',
title: 'Weight (kg)',
type: 'number',
required: false,
show: true,
min: 0
}
],
statuses: [
{id: 'new', label: 'New', category: 'new', order: 1, color: '#6C757D'},
{id: 'onDelivery', label: 'On delivery', category: 'inProgress', order: 2},
{id: 'completed', label: 'Completed', category: 'completed', order: 3},
{id: 'cancelled', label: 'Cancelled', category: 'completed', order: 4}
],
configuration: {uniqueBy: ['orderNo'], cancelStatusId: 'cancelled'},
orderSteps: [
{
id: 'start',
type: 'string',
title: 'Order created',
position: {x: 0, y: 0},
event: 'onOrderCreated',
next: {next: ['pickup']}
},
{
id: 'pickup',
type: 'string',
title: 'Pickup',
position: {x: 240, y: 0},
taskTypeId: '66f1b2c3d4e5f6a7b8c9d0e1',
assignee: {mode: 'unassigned'},
hub: {mode: 'order'},
quantity: {mode: 'perOrder'},
taskData: [{target: 'title', source: {ref: '$order.values.orderNo'}}],
saveToOrder: [],
next: {next: ['done']}
},
{
id: 'done',
type: 'string',
title: 'Finish',
position: {x: 480, y: 0},
statusId: 'completed'
}
]
})
};
fetch('https://apiweb.mile.app/api/v4/order-type-validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apiweb.mile.app/api/v4/order-type-validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'orderTypeId' => '6710a2f4c1d2e3f4a5b6c7d8',
'fields' => [
[
'id' => 'orderNo',
'title' => 'Order number',
'type' => 'string',
'required' => true,
'unique' => true,
'show' => true
],
[
'id' => 'customerName',
'title' => 'Customer name',
'type' => 'string',
'required' => false,
'show' => true
],
[
'id' => 'weight',
'title' => 'Weight (kg)',
'type' => 'number',
'required' => false,
'show' => true,
'min' => 0
]
],
'statuses' => [
[
'id' => 'new',
'label' => 'New',
'category' => 'new',
'order' => 1,
'color' => '#6C757D'
],
[
'id' => 'onDelivery',
'label' => 'On delivery',
'category' => 'inProgress',
'order' => 2
],
[
'id' => 'completed',
'label' => 'Completed',
'category' => 'completed',
'order' => 3
],
[
'id' => 'cancelled',
'label' => 'Cancelled',
'category' => 'completed',
'order' => 4
]
],
'configuration' => [
'uniqueBy' => [
'orderNo'
],
'cancelStatusId' => 'cancelled'
],
'orderSteps' => [
[
'id' => 'start',
'type' => 'string',
'title' => 'Order created',
'position' => [
'x' => 0,
'y' => 0
],
'event' => 'onOrderCreated',
'next' => [
'next' => [
'pickup'
]
]
],
[
'id' => 'pickup',
'type' => 'string',
'title' => 'Pickup',
'position' => [
'x' => 240,
'y' => 0
],
'taskTypeId' => '66f1b2c3d4e5f6a7b8c9d0e1',
'assignee' => [
'mode' => 'unassigned'
],
'hub' => [
'mode' => 'order'
],
'quantity' => [
'mode' => 'perOrder'
],
'taskData' => [
[
'target' => 'title',
'source' => [
'ref' => '$order.values.orderNo'
]
]
],
'saveToOrder' => [
],
'next' => [
'next' => [
'done'
]
]
],
[
'id' => 'done',
'type' => 'string',
'title' => 'Finish',
'position' => [
'x' => 480,
'y' => 0
],
'statusId' => 'completed'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apiweb.mile.app/api/v4/order-type-validate"
payload := strings.NewReader("{\n \"orderTypeId\": \"6710a2f4c1d2e3f4a5b6c7d8\",\n \"fields\": [\n {\n \"id\": \"orderNo\",\n \"title\": \"Order number\",\n \"type\": \"string\",\n \"required\": true,\n \"unique\": true,\n \"show\": true\n },\n {\n \"id\": \"customerName\",\n \"title\": \"Customer name\",\n \"type\": \"string\",\n \"required\": false,\n \"show\": true\n },\n {\n \"id\": \"weight\",\n \"title\": \"Weight (kg)\",\n \"type\": \"number\",\n \"required\": false,\n \"show\": true,\n \"min\": 0\n }\n ],\n \"statuses\": [\n {\n \"id\": \"new\",\n \"label\": \"New\",\n \"category\": \"new\",\n \"order\": 1,\n \"color\": \"#6C757D\"\n },\n {\n \"id\": \"onDelivery\",\n \"label\": \"On delivery\",\n \"category\": \"inProgress\",\n \"order\": 2\n },\n {\n \"id\": \"completed\",\n \"label\": \"Completed\",\n \"category\": \"completed\",\n \"order\": 3\n },\n {\n \"id\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"category\": \"completed\",\n \"order\": 4\n }\n ],\n \"configuration\": {\n \"uniqueBy\": [\n \"orderNo\"\n ],\n \"cancelStatusId\": \"cancelled\"\n },\n \"orderSteps\": [\n {\n \"id\": \"start\",\n \"type\": \"string\",\n \"title\": \"Order created\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"event\": \"onOrderCreated\",\n \"next\": {\n \"next\": [\n \"pickup\"\n ]\n }\n },\n {\n \"id\": \"pickup\",\n \"type\": \"string\",\n \"title\": \"Pickup\",\n \"position\": {\n \"x\": 240,\n \"y\": 0\n },\n \"taskTypeId\": \"66f1b2c3d4e5f6a7b8c9d0e1\",\n \"assignee\": {\n \"mode\": \"unassigned\"\n },\n \"hub\": {\n \"mode\": \"order\"\n },\n \"quantity\": {\n \"mode\": \"perOrder\"\n },\n \"taskData\": [\n {\n \"target\": \"title\",\n \"source\": {\n \"ref\": \"$order.values.orderNo\"\n }\n }\n ],\n \"saveToOrder\": [],\n \"next\": {\n \"next\": [\n \"done\"\n ]\n }\n },\n {\n \"id\": \"done\",\n \"type\": \"string\",\n \"title\": \"Finish\",\n \"position\": {\n \"x\": 480,\n \"y\": 0\n },\n \"statusId\": \"completed\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://apiweb.mile.app/api/v4/order-type-validate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"orderTypeId\": \"6710a2f4c1d2e3f4a5b6c7d8\",\n \"fields\": [\n {\n \"id\": \"orderNo\",\n \"title\": \"Order number\",\n \"type\": \"string\",\n \"required\": true,\n \"unique\": true,\n \"show\": true\n },\n {\n \"id\": \"customerName\",\n \"title\": \"Customer name\",\n \"type\": \"string\",\n \"required\": false,\n \"show\": true\n },\n {\n \"id\": \"weight\",\n \"title\": \"Weight (kg)\",\n \"type\": \"number\",\n \"required\": false,\n \"show\": true,\n \"min\": 0\n }\n ],\n \"statuses\": [\n {\n \"id\": \"new\",\n \"label\": \"New\",\n \"category\": \"new\",\n \"order\": 1,\n \"color\": \"#6C757D\"\n },\n {\n \"id\": \"onDelivery\",\n \"label\": \"On delivery\",\n \"category\": \"inProgress\",\n \"order\": 2\n },\n {\n \"id\": \"completed\",\n \"label\": \"Completed\",\n \"category\": \"completed\",\n \"order\": 3\n },\n {\n \"id\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"category\": \"completed\",\n \"order\": 4\n }\n ],\n \"configuration\": {\n \"uniqueBy\": [\n \"orderNo\"\n ],\n \"cancelStatusId\": \"cancelled\"\n },\n \"orderSteps\": [\n {\n \"id\": \"start\",\n \"type\": \"string\",\n \"title\": \"Order created\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"event\": \"onOrderCreated\",\n \"next\": {\n \"next\": [\n \"pickup\"\n ]\n }\n },\n {\n \"id\": \"pickup\",\n \"type\": \"string\",\n \"title\": \"Pickup\",\n \"position\": {\n \"x\": 240,\n \"y\": 0\n },\n \"taskTypeId\": \"66f1b2c3d4e5f6a7b8c9d0e1\",\n \"assignee\": {\n \"mode\": \"unassigned\"\n },\n \"hub\": {\n \"mode\": \"order\"\n },\n \"quantity\": {\n \"mode\": \"perOrder\"\n },\n \"taskData\": [\n {\n \"target\": \"title\",\n \"source\": {\n \"ref\": \"$order.values.orderNo\"\n }\n }\n ],\n \"saveToOrder\": [],\n \"next\": {\n \"next\": [\n \"done\"\n ]\n }\n },\n {\n \"id\": \"done\",\n \"type\": \"string\",\n \"title\": \"Finish\",\n \"position\": {\n \"x\": 480,\n \"y\": 0\n },\n \"statusId\": \"completed\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiweb.mile.app/api/v4/order-type-validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"orderTypeId\": \"6710a2f4c1d2e3f4a5b6c7d8\",\n \"fields\": [\n {\n \"id\": \"orderNo\",\n \"title\": \"Order number\",\n \"type\": \"string\",\n \"required\": true,\n \"unique\": true,\n \"show\": true\n },\n {\n \"id\": \"customerName\",\n \"title\": \"Customer name\",\n \"type\": \"string\",\n \"required\": false,\n \"show\": true\n },\n {\n \"id\": \"weight\",\n \"title\": \"Weight (kg)\",\n \"type\": \"number\",\n \"required\": false,\n \"show\": true,\n \"min\": 0\n }\n ],\n \"statuses\": [\n {\n \"id\": \"new\",\n \"label\": \"New\",\n \"category\": \"new\",\n \"order\": 1,\n \"color\": \"#6C757D\"\n },\n {\n \"id\": \"onDelivery\",\n \"label\": \"On delivery\",\n \"category\": \"inProgress\",\n \"order\": 2\n },\n {\n \"id\": \"completed\",\n \"label\": \"Completed\",\n \"category\": \"completed\",\n \"order\": 3\n },\n {\n \"id\": \"cancelled\",\n \"label\": \"Cancelled\",\n \"category\": \"completed\",\n \"order\": 4\n }\n ],\n \"configuration\": {\n \"uniqueBy\": [\n \"orderNo\"\n ],\n \"cancelStatusId\": \"cancelled\"\n },\n \"orderSteps\": [\n {\n \"id\": \"start\",\n \"type\": \"string\",\n \"title\": \"Order created\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"event\": \"onOrderCreated\",\n \"next\": {\n \"next\": [\n \"pickup\"\n ]\n }\n },\n {\n \"id\": \"pickup\",\n \"type\": \"string\",\n \"title\": \"Pickup\",\n \"position\": {\n \"x\": 240,\n \"y\": 0\n },\n \"taskTypeId\": \"66f1b2c3d4e5f6a7b8c9d0e1\",\n \"assignee\": {\n \"mode\": \"unassigned\"\n },\n \"hub\": {\n \"mode\": \"order\"\n },\n \"quantity\": {\n \"mode\": \"perOrder\"\n },\n \"taskData\": [\n {\n \"target\": \"title\",\n \"source\": {\n \"ref\": \"$order.values.orderNo\"\n }\n }\n ],\n \"saveToOrder\": [],\n \"next\": {\n \"next\": [\n \"done\"\n ]\n }\n },\n {\n \"id\": \"done\",\n \"type\": \"string\",\n \"title\": \"Finish\",\n \"position\": {\n \"x\": 480,\n \"y\": 0\n },\n \"statusId\": \"completed\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"ok": false,
"checks": [
{
"code": "ordt-109",
"rule": "GR-05",
"severity": "error",
"key": "deadEnd",
"stepId": "pickup",
"port": "next",
"params": {}
}
]
}
}{
"status": false,
"message": "Bad request - invalid parameters provided."
}{
"status": false,
"message": "Internal server error, please contact [email protected]."
}Authorizations
Use a valid Bearer token to authenticate.
Body
application/json
Optional id of an existing order type, to include the checks that compare with its stored data.
Draft fields; same format as Update order type.
Draft statuses; same format as Update order type.
Draft configuration; same format as Update order type.
Draft order steps; same format as Update order type.