{
  "info": {
    "_postman_id": "374b06cc-ec91-456e-9b99-0ae1ff116652",
    "name": "Ahamove API V3",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "24730135"
  },
  "item": [
    {
      "name": "Account APIs",
      "item": [
        {
          "name": "Register account",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"mobile\": \"849xxxxxxxx\",\n    \"api_key\": \"{{api_key}}\",\n    \"name\": \"Nguyễn Văn A\",\n    \"address\": \"7/28A Thành Thái, Phường 14, Quận 10\"\n}"
            },
            "url": {
              "raw": "{{partner_host}}/v3/accounts",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts"]
            },
            "description": "# Register partner account\n\nCreate new user account by api_key and return token\n\n## Request body\n\n| **Field** | **Required** |\n| --- | --- |\n| mobile | true |\n| api_key | true |\n| name | true |\n| address | true |\n\n#### Sample curl\n\n```\ncurl --location 'https://partner-apistg.ahamove.com/v3/accounts' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"mobile\": \"84365849471\",\n    \"api_key\": \"32e8724db87198d97d7114c1b8695cdf57a9636e\",\n    \"name\": \"thanh khiet\",\n    \"address\": \"7/28A thanh thai phuong 14 quan 10\"\n}'\n\n ```\n\n### Sample response\n\n```\n{\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXAiOiJ1c2VyIiwiY2lkIjoiODQzNjU4NDk0NzIiLCJzdGF0dXMiOiJPTkxJTkUiLCJub2MiOiJsYXphZGFhamphc2phc2QiLCJjdHkiOiJTR04iLCJ0eXBlIjoiYXBpIiwicGFydG5lciI6InNhcG8zNjUiLCJleHAiOjE3NTUxNDI2OTAsImlhdCI6MTY5MjA3MDY5MCwiaXNzIjoiYWhhIn0.76UEQ9yzJuUvALzv4ON02-wyWJp-v2y0rBo2mcLioOU\",\n    \"refresh_token\": \"340ec3c30fc46524bdca5254b5e3e638\"\n}\n\n ```"
          },
          "response": []
        },
        {
          "name": "Authenticate token",
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"mobile\": \"849xxxxxxxx\",\n    \"api_key\": \"{{api_key}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/accounts/token",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts", "token"]
            },
            "description": "## Authentication\n\n#### Overview\n\nGet JWT token and refresh_token for user\n\n### Request body\n\n| **Field** | **Required** | **Description** |\n| --- | --- | --- |\n| mobile | True | user need to get token |\n| api_key | True | api_key of partner |"
          },
          "response": []
        },
        {
          "name": "Add child account",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"child_id\": \"849xxxxxxxx\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/accounts/childs",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts", "childs"]
            },
            "description": "# Add child account to parent account\n\nParent account need be enabled by \"partner\" field. An SMS code will be sent to child account for verification.\n\n### Authentication\n\n- Token: required\n    \n\n### Request body\n\n| **field** | **required** |\n| --- | --- |\n| child_id | true |\n\n### Sample curl\n\n```\ncurl --location --request POST 'https://partner-apistg.ahamove.com/v3/accounts/childs' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhaGEiLCJ0eXAiOiJ1c2VyIiwiY2lkIjoiODQ4Njg0NjAyODIiLCJzdGF0dXMiOiJPTkxJTkUiLCJlb2MiOiJwaG9uZ3RydW9uZzEyMDZAZ21haWwuY29tIiwibm9jIjoiUGhvbmcgVHJ1b25nIiwiY3R5IjoiU0dOIiwiYWNjb3VudF9zdGF0dXMiOiJBQ1RJVkFURUQiLCJleHAiOjE3MDIwMDU3OTIsInBhcnRuZXIiOiJ0cnVzdGVkcGFydG5lciIsInR5cGUiOiJhcGkifQ.77GWCjTB14LcEVpkfBf3Tsmo0mZA9mSfvCcyIN6ropA' \\\n--data '{\n    \"child_id\": \"84365849472\"\n}'\n--Response--\n{\n    \"status\": \"success\"\n}\n\n ```"
          },
          "response": []
        },
        {
          "name": "Activate child account",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"activation_code\": \"0643\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/accounts/childs/84912614785/activate",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts", "childs", "84912614785", "activate"]
            },
            "description": "## Activate child account\n\nActivate child account to a parent account"
          },
          "response": []
        },
        {
          "name": "Remove child account",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhaGEiLCJ0eXAiOiJ1c2VyIiwiY2lkIjoiODQ4Njg0NjAyODIiLCJzdGF0dXMiOiJPTkxJTkUiLCJlb2MiOiJwaG9uZ3RydW9uZzEyMDZAZ21haWwuY29tIiwibm9jIjoiUGhvbmcgVHJ1b25nIiwiY3R5IjoiU0dOIiwiYWNjb3VudF9zdGF0dXMiOiJBQ1RJVkFURUQiLCJleHAiOjE3MDIwMDU3OTIsInBhcnRuZXIiOiJ0cnVzdGVkcGFydG5lciIsInR5cGUiOiJhcGkifQ.77GWCjTB14LcEVpkfBf3Tsmo0mZA9mSfvCcyIN6ropA",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{partner_host}}/v3/accounts/childs/849xxxxxxxx",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts", "childs", "849xxxxxxxx"]
            },
            "description": "# Remove child partner account\n\nRemove child account of partner account, the partner account need to be enabled by the \"partner\" field\n\nThat child account must not have ongoing order or balance < 0\n\n### Method: DELETE\n\n### Authorization\n\n- Token: required\n    \n\n### Request body\n\n| **Field** | **required** |\n| --- | --- |\n| child_account | true |"
          },
          "response": []
        },
        {
          "name": "Get child accounts list",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{partner_host}}/v3/accounts/childs",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts", "childs"]
            },
            "description": "# Get list of child accounts\n\nGet list account of user partner by clientId in token\n\n### Authorization\n\n- Token: required\n    \n\n### Sample curl\n\n```\ncurl --location 'https://apistg.ahamove.com/api/v3/partner/child_accounts' \\\n--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhaGEiLCJ0eXAiOiJ1c2VyIiwiY2lkIjoiODQ4Njg0NjAyODIiLCJzdGF0dXMiOiJPTkxJTkUiLCJlb2MiOiJwaG9uZ3RydW9uZzEyMDZAZ21haWwuY29tIiwibm9jIjoiUGhvbmcgVHJ1b25nIiwiY3R5IjoiU0dOIiwiYWNjb3VudF9zdGF0dXMiOiJBQ1RJVkFURUQiLCJleHAiOjE3MDIwMDU3OTIsInBhcnRuZXIiOiJ0cnVzdGVkcGFydG5lciIsInR5cGUiOiJhcGkifQ.77GWCjTB14LcEVpkfBf3Tsmo0mZA9mSfvCcyIN6ropA'\n\n ```"
          },
          "response": []
        },
        {
          "name": "Update user profile",
          "protocolProfileBehavior": {
            "disabledSystemHeaders": {}
          },
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "PUT",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"name\": \"ABC\",\n    \"email\": \"abc@gmail.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/accounts",
              "host": ["{{partner_host}}"],
              "path": ["v3", "accounts"]
            },
            "description": "**Errors code:**\n\n| Status Code | Title | Description |\n|----------|:-------------:|------|\n| 400 |  BAD_REQUEST  | Bad request, please check and try again. |\n| 400 |  INVALID_EMAIL | Email không đúng định dạng |\n| 409 |  EMAIL_EXISTED | Email đã tồn tại |\n\n**Response data:**\n```json\n{}\n```"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Master Data",
      "item": [
        {
          "name": "Get cities",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{partner_host}}/v3/cities?country_id=VN",
              "host": ["{{partner_host}}"],
              "path": ["v3", "cities"],
              "query": [
                {
                  "key": "country_id",
                  "value": "VN"
                }
              ]
            },
            "description": "## Get cities\n\nGet list of cities by country\n\n### Request parameters\n\n| **Field** | **Required** | **Description** |\n| --- | --- | --- |\n| country_id | False | country id. Default only support \"VN\" |"
          },
          "response": []
        },
        {
          "name": "Get list of services",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{partner_host}}/v3/services?city_id=SGN&delivery_type=INSTANT",
              "host": ["{{partner_host}}"],
              "path": ["v3", "services"],
              "query": [
                {
                  "key": "city_id",
                  "value": "SGN"
                },
                {
                  "key": "delivery_type",
                  "value": "INSTANT"
                }
              ]
            },
            "description": "# Get services types\n\nGet all services of partners.\n\n### Authorization\n\n- Token: Required\n    \n\n### Request body\n\n- **city_id** is required parameter. Otherwise, must sent **lat, lng**.\n    \n\n| **Field** | **Type** | **Description** |\n| --- | --- | --- |\n| lat | float64 |  |\n| lng | float64 |  |\n| city_id | string |  |\n| type | string |  |\n| partner | string | get Saas service partner |\n| delivery_type | \\[\\]string |  |\n| user_mobile | string | get services of this user_mobile |\n| category | string | support filter for aha-rent |\n\n### Sample response\n\n```\n[\n    {\n        \"_id\": \"SGN-AHAPRO\",\n        \"enable\": true,\n        \"type\": \"\",\n        \"order\": 1,\n        \"city_id\": \"SGN\",\n        \"name\": \"Siêu Cấp\",\n        \"rebroadcast_interval\": 1200,\n        \"broadcast_distance\": 2000,\n        \"name_vi_vn\": \"Siêu Cấp\",\n        \"icon_url\": \"https://ahamoveimg.s3.ap-southeast-1.amazonaws.com/aha-service/AhaPro.png\",\n        \"map_icon_url\": \"https://ahamoveimg.s3-ap-southeast-1.amazonaws.com/core_services/xe1-02.png\",\n        \"distance_fee\": \"(24545 if x <= 4 else 24545 + (x - 4) * 5400)\",\n        \"commission_type\": \"PERCENTAGE\",\n        \"commission_value\": 0.212,\n        \"pool_timeout_commission_value\": 0.3,\n        \"max_distance\": 0,\n        \"stop_fee\": 5400,\n        \"name_en_us\": \"AHAPRO\",\n        \"require_to\": true,\n        \"auto_assign\": false,\n        \"auto_assign_distance\": 1000,\n        \"require_request\": false,\n        \"advance_broadcast_distance\": 2000,\n        \"timeout\": 1800,\n        \"idle_timeout\": 0,\n        \"cod\": 10000000,\n        \"first_order_cod\": 1,\n        \"partner\": true,\n        \"max_stop_points\": 5,\n        \"max_concurrent_orders\": 1,\n        \"fee_description_en_us\": \"Thời gian: tối đa 1 giờ (áp dụng đơn hàng dưới 6km)\\n\\nSố điểm giao tối đa: 5\\nPhí mỗi điểm giao thêm: 5,500đ\\n\\nPhí quãng đường:\\n- 4km đầu: 25,000đ\\n- Trên 4km: 5,500đ/km\\n\\nPhí giao hàng cao cấp: 7,000đ\\n\\nTrọng lượng tiêu chuẩn: 30kg\\nKích thước tiêu chuẩn: 50x40x50 cm\\n\\nMức COD tối đa: 10,000,000đ\\nPhí COD:\\n- COD < 2,000,000đ: Miễn phí\\n- COD >= 2,000,000đ: 0.88% * giá trị COD\",\n        \"description_en_us\": \"Giao hàng nội thành trong 1 giờ\",\n        \"description_vi_vn\": \"Giao hàng nội thành trong 1 giờ\",\n        \"fee_description_vi_vn\": \"Thời gian: tối đa 1 giờ (áp dụng đơn hàng dưới 6km)\\n\\nSố điểm giao tối đa: 5\\nPhí mỗi điểm giao thêm: 5,500đ\\n\\nPhí quãng đường:\\n- 4km đầu: 25,000đ\\n- Trên 4km: 5,500đ/km\\n\\nPhí giao hàng cao cấp: 7,000đ\\n\\nTrọng lượng tiêu chuẩn: 30kg\\nKích thước tiêu chuẩn: 50x40x50 cm\\n\\nMức COD tối đa: 10,000,000đ\\nPhí COD:\\n- COD < 2,000,000đ: Miễn phí\\n- COD >= 2,000,000đ: 0.88% * giá trị COD\",\n        \"tooltips\": null,\n        \"parent_id\": \"\",\n        \"supplier_description\": \"Dịch vụ Siêu Cấp được thực hiện trong vòng 45 phút, được nhận tối đa 1 đơn hàng\",\n        \"notify_package_return\": true,\n        \"uniform_verify_message_vi_vn\": \"Tài xế có mang đồng phục (áo, nón) hay không?\",\n        \"uniform_verify_message_en_us\": \"Is your driver wearing proper uniform (including AhaMove's jacket, helmet)?\",\n        \"note\": \"Giao diện mục Tổng phí đã được cập nhật.  Đối tác vui lòng chạm vào mục Tổng phí để xem chi tiết số tiền mặt (Nhận tiền mặt) cần thu từ phía khách hàng.\",\n        \"request_list\": \"\",\n        \"accept_interval\": null,\n        \"cross_service\": {\n            \"enable\": true,\n            \"services\": [\n                \"SGN-BIKE\",\n                \"SGN-FOOD\",\n                \"SGN-EXPRESS\",\n                \"SGN-GOSHOP\",\n                \"SGN-BIKE-INTRADISTRICT\"\n            ]\n        },\n        \"delivery_type\": \"INSTANT\",\n        \"pool_min_score\": 0,\n        \"redirect_url\": \"\",\n        \"redirect_service_id\": \"\",\n        \"require_redirect\": false,\n        \"set_idle_status_when_creating_order\": false,\n        \"distance_fee_v3\": {\n            \"blocks\": [\n                {\n                    \"from\": 0,\n                    \"to\": 4,\n                    \"base\": 24545,\n                    \"price_multiplier\": 0\n                },\n                {\n                    \"from\": 4,\n                    \"to\": 100000,\n                    \"base\": 24545,\n                    \"price_multiplier\": 5400\n                }\n            ],\n            \"hour_rates\": []\n        },\n        \"partner_distance_fee_v3\": null,\n        \"cod_commission\": {\n            \"value\": 0.0088,\n            \"none_commission_limit\": 2000000\n        }\n    },\n    ...\n]\n\n ```"
          },
          "response": []
        },
        {
          "name": "Get service details",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{partner_host}}/v3/services/SGN-BIKE",
              "host": ["{{partner_host}}"],
              "path": ["v3", "services", "SGN-BIKE"]
            },
            "description": "## Get service detail\n\n#### Overview\n\nGet detail information of specific service and its requests"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Order APIs",
      "item": [
        {
          "name": "Estimate order fee with services",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [""],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"order_time\": 0,\n    \"path\": [\n        {\n            \"lat\": 10.76975346,\n            \"lng\": 106.6636615,\n            \"address\": \"7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Thành Thái, Quận 10\",\n            \"name\": \"Lan\",\n            \"mobile\": \"84944309348\",\n            \"remarks\": \"Đến nơi lấy hàng đọc mã đơn để nhận hàng\"\n        },\n        {\n            \"lat\": 10.8018493,\n            \"lng\": 106.714466,\n            \"address\": \"475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh\",\n            \"name\": \"Anh\",\n            \"mobile\": \"0912345678\",\n            \"cod\": 100000,\n            \"item_value\": 250000,\n            \"tracking_number\": \"ABCD1234\",\n            \"remarks\": \"Gọi điện trước khi giao. Giao hàng cẩn thận\"\n        }\n    ],\n    \"services\": [\n        {\n            \"_id\": \"SGN-BIKE\",\n            \"requests\": [\n                {\n                    \"_id\": \"SGN-BIKE-TIP\",\n                    \"num\": 1\n                },\n                {\n                    \"_id\": \"SGN-BIKE-BULKY\",\n                    \"tier_code\": \"TIER_2\"\n                }\n            ]\n        },\n        {\n            \"_id\": \"SGN-ECO\",\n            \"requests\": []\n        },\n        {\n            \"_id\": \"SGN-TRUCK-1000\",\n            \"requests\": []\n        },\n        {\n            \"_id\": \"VNM-PARTNER-AHAMOVE\",\n            \"requests\": [\n                {\n                    \"_id\": \"VNM-PARTNER-AHAMOVE-DONG-KIEM\",\n                    \"num\": 1\n                }\n            ]\n        }\n    ],\n    \"payment_method\": \"CASH\",\n    \"remarks\": \"Ghi chú đơn hàng\",\n    \"promo_code\" : \"AHMKM\",\n    \"items\": [\n        {\n            \"_id\": \"TG\",\n            \"num\": 1,\n            \"name\": \"Tủ gỗ nhỏ\",\n            \"price\": 450000\n        },\n        {\n            \"_id\": \"GDB\",\n            \"num\": 2,\n            \"name\": \"Gương để bàn\",\n            \"price\": 120000\n        }\n    ],\n    \"package_detail\": [\n        {\n            \"weight\": 10,\n            \"length\": 1.2,\n            \"width\": 0.8,\n            \"height\": 2.0,\n            \"description\": \"Nội thất\"\n        }\n    ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders/estimates",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "estimates"]
            },
            "description": "## Estimate order fee\n\n**Overview**\n\nThis api is used to estimate order fee from multiple services for partner\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**JSON Body Format**\n\n\\* Service object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | Service ID |\n| requests | array | true | List of special request object or \\[\\] |\n\n\\* Stop point object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| address | string | true | Text address |\n| lat | float | true | Latitude |\n| lng | float | true | Longitude |\n| name | string | true | Name of receiver or sender |\n| mobile | string | true | Mobile phone of receiver or sender |\n| cod | int | false | COD amount in this stop point |\n| formatted_address | string | false | Formatted text address |\n| short_address | string | false | Short address text |\n| address_code | string | false | Address code |\n| remarks | string | false | A note for supplier |\n| item_value | int | false | Item's value |\n\n\\* Special request object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | ID of the special request (e.g SGN-BIKE-TIPS) |\n| num | int | false | Number of unit special request if it's PER_UNIT type |\n| tier_code | string | false | Code of selected tier if it's TIER type |\n| option_code | string | false | Code of selected option (e.g option in SGN-BIKE-FRAGILE |\n| option_detail | string | false | Option detail of selected option |\n\n\\* Item object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | int | true | Item ID |\n| store_id | int | true | Store ID |\n| name | string | true | Item name |\n| price | int | true | Item price |\n| num | int | true | Number of item |\n\n\\* Body\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| path | array | true | List of stop point object |\n| payment_method | string | true | Payment method to pay order |\n| services | array | true | List of service object |\n| order_time | float | false | Time when user want to broadcast order to supplier |\n| promo_code | string | false | Promo code to apply for discount |\n| idle_until | float | false | Time when user want to broadcast order to supplier |\n| items | array | false | List of items to log in orders |\n\nPackage detail\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| weight | float | true | Item weight (kg) |\n| length | float | false | Item length (m) |\n| width | float | false | Item witdth (m) |\n| height | float | false | Item height (m) |\n| description | description | false | Item description |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format  \n\\* Service which can be estimated fee will have value in field data, field error is null. Otherwise, data is null and error is not null\n\n``` json\n[\n  {\n    \"service_id\": \"SGN-BIKE\",\n    \"data\": {\n      \"distance\": 11.6298,\n      \"duration\": 3166,\n      \"user_main_account\": 0,\n      \"user_bonus_account\": 0,\n      \"currency\": \"VND\",\n      \"total_pay\": 72000,\n      \"polyline_points\": \"qmv`Agy_jSpFeBy@wB^y@{AqE`HqBuA}CZgBp@cb@j@iAYo@~Ksi@r@MJq@sBaAaNiVy@qDTaAsJaJfDoCkAsCfAk@q]_k@gn@ik@aBjBeCwBdCvBaG|G~DtDhNfCd`@f]hPpWwB~EjZxXU`AVtBxAdCsAdDB`AjOnNRbA_DlOgGdYo@h@b@rAm@j]MtDe@`AhPd^\",\n      \"polylines\": \"qmv`Agy_jSpFeBy@wB^y@{AqE`HqBuA}CZgBp@cb@j@iAYo@~Ksi@r@MJq@sBaAaNiVy@qDTaAsJaJfDoCkAsCfAk@q]_k@gn@ik@aBjBeCwBdCvBaG|G~DtDhNfCd`@f]hPpWwB~EjZxXU`AVtBxAdCsAdDB`AjOnNRbA_DlOgGdYo@h@b@rAm@j]MtDe@`AhPd^\",\n      \"total_balance\": 0,\n      \"is_post_paid\": false,\n      \"is_child_account\": false,\n      \"online_pay\": 0,\n      \"payment_method\": \"CASH\",\n      \"distance_fee\": 62000,\n      \"request_fee\": 5000,\n      \"stop_fee\": 5000,\n      \"vat_fee\": 0,\n      \"discount\": 0,\n      \"total_fee\": 72000,\n      \"item_fee\": 0,\n      \"item_vat_fee\": 0,\n      \"item_discount\": 0,\n      \"cod_commission_fee\": 0,\n      \"requests\": [\n        {\n          \"_id\": \"SGN-BIKE-TIP\",\n          \"num\": 1,\n          \"price\": 5000\n        }\n      ],\n      \"stoppoint_price\": 5000,\n      \"special_request_price\": 5000,\n      \"vat\": 0,\n      \"distance_price\": 62000,\n      \"voucher_discount\": 0,\n      \"subtotal_price\": 72000,\n      \"total_price\": 72000,\n      \"surge_rate\": 0\n    },\n    \"error\": null\n  },\n  {\n    \"service_id\": \"SGN-POOL\",\n    \"data\": null,\n    \"error\": {\n      \"http_code\": 406,\n      \"code\": \"INVALID_MAX_COD\",\n      \"title\": \"COD is not valid\",\n      \"description\": \"Rất tiếc, dịch vụ này chỉ hỗ trợ tổng COD tối đa đ{{ data.max_cod }}\",\n      \"internal\": \"\"\n    }\n  }\n]\n\n ```\n\n**Error Responses**\n\nThis explained the error field in each element of the response body\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 406 | INVALID_FUTURE_ORDER_TIME | Advanced booking time is not valid (e.g more than 1 month from now) |\n| 406 | NOT_SUPPORT_ADVANCE_BOOKING | Service does not support advanced booking |\n| 406 | SERVICE_NOT_VALID_AT_PICKUP | Service does not available at the pickup point |\n| 406 | INVALID_PICKUP_AREA | Service does not available in this area |\n| 406 | INVALID_DELIVERY_AREA | Service does not support delivery in this area |\n| 400 | MISSING_PATH_INFO | Path does not contain enough stop point |\n| 406 | INVALID_MAX_DISTANCE | Distance violate max_distance configured in service |\n| 406 | INVALID_MAX_STOP_POINT | Number of stop point in path exceed max_stop_point of service |\n| 406 | INVALID_MIN_STOP_POINT | Number of stop point in path is less than min_stop_point of service |\n\nThis explained the error for entirely request\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 400 | BAD_REQUEST | Request contains invalid data |"
          },
          "response": []
        },
        {
          "name": "Estimate order fee with group services",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [""],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"order_time\": 0,\n    \"path\": [\n        {\n            \"lat\": 10.76975346,\n            \"lng\": 106.6636615,\n            \"address\": \"7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Thành Thái, Quận 10\",\n            \"name\": \"Lan\",\n            \"mobile\": \"84944309348\",\n            \"remarks\": \"Đến nơi lấy hàng đọc mã đơn để nhận hàng\"\n        },\n        {\n            \"lat\": 10.8018493,\n            \"lng\": 106.714466,\n            \"address\": \"475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh\",\n            \"name\": \"Anh\",\n            \"mobile\": \"0912345678\",\n            \"cod\": 100000,\n            \"item_value\": 250000,\n            \"tracking_number\": \"ABCD1234\",\n            \"remarks\": \"Gọi điện trước khi giao. Giao hàng cẩn thận\"\n        }\n    ],\n    \"group_services\": [\n        {\n            \"_id\": \"BIKE\",\n            \"group_requests\": [\n                {\n                    \"_id\": \"TIP\",\n                    \"num\": 1\n                },\n                {\n                    \"_id\": \"BULKY\",\n                    \"tier_code\": \"TIER_2\"\n                }\n            ]\n        },\n        {\n            \"_id\": \"ECO\",\n            \"group_requests\": []\n        },\n        {\n            \"_id\": \"TRUCK-2000\",\n            \"group_requests\": []\n        },\n        {\n            \"_id\": \"VNM-PARTNER-AHAMOVE\",\n            \"group_requests\": [\n                {\n                    \"_id\": \"DONG-KIEM\",\n                    \"num\": 1\n                }\n            ]\n        }\n    ],\n    \"payment_method\": \"CASH\",\n    \"remarks\": \"Ghi chú đơn hàng\",\n    \"promo_code\" : \"AHMKM\",\n    \"items\": [\n        {\n            \"_id\": \"TG\",\n            \"num\": 1,\n            \"name\": \"Tủ gỗ nhỏ\",\n            \"price\": 450000\n        },\n        {\n            \"_id\": \"GDB\",\n            \"num\": 2,\n            \"name\": \"Gương để bàn\",\n            \"price\": 120000\n        }\n    ],\n    \"package_detail\": [\n        {\n            \"weight\": 10,\n            \"length\": 1.2,\n            \"width\": 0.8,\n            \"height\": 2.0,\n            \"description\": \"Nội thất\"\n        }\n    ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders/estimates",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "estimates"]
            },
            "description": "## Estimate order fee\n\n**Overview**\n\nThis api is used to estimate order fee from multiple services for partner\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**JSON Body Format**\n\n\\* Service object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | Service ID |\n| requests | array | true | List of special request object or \\[\\] |\n\n\\* Stop point object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| address | string | true | Text address |\n| lat | float | true | Latitude |\n| lng | float | true | Longitude |\n| name | string | true | Name of receiver or sender |\n| mobile | string | true | Mobile phone of receiver or sender |\n| cod | int | false | COD amount in this stop point |\n| formatted_address | string | false | Formatted text address |\n| short_address | string | false | Short address text |\n| address_code | string | false | Address code |\n| remarks | string | false | A note for supplier |\n| item_value | int | false | Item's value |\n\n\\* Special request object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | ID of the special request (e.g SGN-BIKE-TIPS) |\n| num | int | false | Number of unit special request if it's PER_UNIT type |\n| tier_code | string | false | Code of selected tier if it's TIER type |\n| option_code | string | false | Code of selected option (e.g option in SGN-BIKE-FRAGILE |\n| option_detail | string | false | Option detail of selected option |\n\n\\* Item object\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | int | true | Item ID |\n| store_id | int | true | Store ID |\n| name | string | true | Item name |\n| price | int | true | Item price |\n| num | int | true | Number of item |\n\n\\* Body\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| path | array | true | List of stop point object |\n| payment_method | string | true | Payment method to pay order |\n| services | array | true | List of service object |\n| order_time | float | false | Time when user want to broadcast order to supplier |\n| promo_code | string | false | Promo code to apply for discount |\n| idle_until | float | false | Time when user want to broadcast order to supplier |\n| items | array | false | List of items to log in orders |\n\nPackage detail\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| weight | float | true | Item weight (kg) |\n| length | float | false | Item length (m) |\n| width | float | false | Item witdth (m) |\n| height | float | false | Item height (m) |\n| description | description | false | Item description |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format  \n\\* Service which can be estimated fee will have value in field data, field error is null. Otherwise, data is null and error is not null\n\n``` json\n[\n  {\n    \"service_id\": \"SGN-BIKE\",\n    \"data\": {\n      \"distance\": 11.6298,\n      \"duration\": 3166,\n      \"user_main_account\": 0,\n      \"user_bonus_account\": 0,\n      \"currency\": \"VND\",\n      \"total_pay\": 72000,\n      \"polyline_points\": \"qmv`Agy_jSpFeBy@wB^y@{AqE`HqBuA}CZgBp@cb@j@iAYo@~Ksi@r@MJq@sBaAaNiVy@qDTaAsJaJfDoCkAsCfAk@q]_k@gn@ik@aBjBeCwBdCvBaG|G~DtDhNfCd`@f]hPpWwB~EjZxXU`AVtBxAdCsAdDB`AjOnNRbA_DlOgGdYo@h@b@rAm@j]MtDe@`AhPd^\",\n      \"polylines\": \"qmv`Agy_jSpFeBy@wB^y@{AqE`HqBuA}CZgBp@cb@j@iAYo@~Ksi@r@MJq@sBaAaNiVy@qDTaAsJaJfDoCkAsCfAk@q]_k@gn@ik@aBjBeCwBdCvBaG|G~DtDhNfCd`@f]hPpWwB~EjZxXU`AVtBxAdCsAdDB`AjOnNRbA_DlOgGdYo@h@b@rAm@j]MtDe@`AhPd^\",\n      \"total_balance\": 0,\n      \"is_post_paid\": false,\n      \"is_child_account\": false,\n      \"online_pay\": 0,\n      \"payment_method\": \"CASH\",\n      \"distance_fee\": 62000,\n      \"request_fee\": 5000,\n      \"stop_fee\": 5000,\n      \"vat_fee\": 0,\n      \"discount\": 0,\n      \"total_fee\": 72000,\n      \"item_fee\": 0,\n      \"item_vat_fee\": 0,\n      \"item_discount\": 0,\n      \"cod_commission_fee\": 0,\n      \"requests\": [\n        {\n          \"_id\": \"SGN-BIKE-TIP\",\n          \"num\": 1,\n          \"price\": 5000\n        }\n      ],\n      \"stoppoint_price\": 5000,\n      \"special_request_price\": 5000,\n      \"vat\": 0,\n      \"distance_price\": 62000,\n      \"voucher_discount\": 0,\n      \"subtotal_price\": 72000,\n      \"total_price\": 72000,\n      \"surge_rate\": 0\n    },\n    \"error\": null\n  },\n  {\n    \"service_id\": \"SGN-POOL\",\n    \"data\": null,\n    \"error\": {\n      \"http_code\": 406,\n      \"code\": \"INVALID_MAX_COD\",\n      \"title\": \"COD is not valid\",\n      \"description\": \"Rất tiếc, dịch vụ này chỉ hỗ trợ tổng COD tối đa đ{{ data.max_cod }}\",\n      \"internal\": \"\"\n    }\n  }\n]\n\n ```\n\n**Error Responses**\n\nThis explained the error field in each element of the response body\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 406 | INVALID_FUTURE_ORDER_TIME | Advanced booking time is not valid (e.g more than 1 month from now) |\n| 406 | NOT_SUPPORT_ADVANCE_BOOKING | Service does not support advanced booking |\n| 406 | SERVICE_NOT_VALID_AT_PICKUP | Service does not available at the pickup point |\n| 406 | INVALID_PICKUP_AREA | Service does not available in this area |\n| 406 | INVALID_DELIVERY_AREA | Service does not support delivery in this area |\n| 400 | MISSING_PATH_INFO | Path does not contain enough stop point |\n| 406 | INVALID_MAX_DISTANCE | Distance violate max_distance configured in service |\n| 406 | INVALID_MAX_STOP_POINT | Number of stop point in path exceed max_stop_point of service |\n| 406 | INVALID_MIN_STOP_POINT | Number of stop point in path is less than min_stop_point of service |\n\nThis explained the error for entirely request\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 400 | BAD_REQUEST | Request contains invalid data |"
          },
          "response": []
        },
        {
          "name": "Create order by service ID",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"order_time\": 0,\n    \"path\": [\n        {\n            \"lat\": 10.76975346,\n            \"lng\": 106.6636615,\n            \"address\": \"7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Thành Thái, Quận 10\",\n            \"name\": \"Lan\",\n            \"mobile\": \"84944309348\",\n            \"remarks\": \"Đến nơi lấy hàng đọc mã đơn để nhận hàng\"\n        },\n        {\n            \"lat\": 10.8018493,\n            \"lng\": 106.714466,\n            \"address\": \"475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh\",\n            \"name\": \"Anh\",\n            \"mobile\": \"0912345678\",\n            \"cod\": 100000,\n            \"item_value\": 250000,\n            \"tracking_number\": \"ABCD1234\",\n            \"remarks\": \"Gọi điện trước khi giao. Giao hàng cẩn thận\"\n        }\n    ],\n    \"service_id\": \"SGN-BIKE\",\n    \"requests\": [\n        {\n            \"_id\": \"SGN-BIKE-TIP\",\n            \"num\": 1\n        },\n        {\n            \"_id\": \"SGN-BIKE-BULKY\",\n            \"tier_code\": \"TIER_2\"\n        }\n    ],\n    \"payment_method\": \"CASH\",\n    \"remarks\": \"Ghi chú đơn hàng\",\n    \"promo_code\" : \"AHMKM\",\n    \"items\": [\n        {\n            \"_id\": \"TG\",\n            \"num\": 1,\n            \"name\": \"Tủ gỗ nhỏ\",\n            \"price\": 450000\n        },\n        {\n            \"_id\": \"GDB\",\n            \"num\": 2,\n            \"name\": \"Gương để bàn\",\n            \"price\": 120000\n        }\n    ],\n    \"package_detail\": [\n        {\n            \"weight\": 10,\n            \"length\": 1.2,\n            \"width\": 0.8,\n            \"height\": 2.0,\n            \"description\": \"Nội thất\"\n        }\n    ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders"]
            },
            "description": "## Create new order for parttner\n\n**Overview**\n\nThis api is used to create an order for partner\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**JSON Body**\n\nBody\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| service_id | string | true | Service ID |\n| path | array | true | List of stop points |\n| requests | array | true | List of special requests |\n| payment_method | string | true | Payment method to pay order |\n| total_pay | int | false | Amount of cash user have to pay, value getting from the estimating fee step |\n| order_time | float | false | Time when user want to broadcast order to supplier |\n| promo_code | string | false | Promo code to apply for discount |\n| remarks | string | false | User remarks for supplier |\n| admin_note | string | false | Note from AHM for supplier |\n| route_optimized | boolean | false | True means user want to rearrange the stop point in path for cost optimization |\n| idle_until | float | false | Time when user want to broadcast order to supplier. It is used in scheduled order |\n| items | array | false | List of items |\n| package_detail | array | false | List of package detail |\n| group_service_id | string | false | Based on group_service_id, Ahamove will detect proper service id by pickup location |\n| group_requests | array | false | List of group request, based on every item in group_requests, Ahamove will detect proper special request based on group id |\n\nStop point model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| address | string | true | Text address |\n| lat | float | true | Latitude |\n| lng | float | true | Longitude |\n| name | string | true | Name of receiver or sender |\n| mobile | string | true | Mobile phone of receiver or sender |\n| cod | int | false | COD amount in this stop point |\n| formatted_address | string | false | Formatted text address |\n| short_address | string | false | Short address text |\n| address_code | string | false | Address code |\n| remarks | string | false | A note for supplier |\n| item_value | int64 | false | Item's value |\n\nSpecial request model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | ID of the special request (e.g SGN-BIKE-TIPS) |\n| num | int | false | Number of unit special request if it's PER_UNIT type |\n| tier_code | string | false | Code of selected tier if it's TIER type |\n| option_code | string | false | Code of selected option (e.g option in SGN-BIKE-FRAGILE |\n| option_detail | string | false | Option detail of selected option |\n\nGroup request model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | ID of the special request (e.g SGN-BIKE-TIPS) |\n| num | int | false | Number of unit special request if it's PER_UNIT type |\n| tier_code | string | false | Code of selected tier if it's TIER type |\n| option_code | string | false | Code of selected option (e.g option in SGN-BIKE-FRAGILE |\n| option_detail | string | false | Option detail of selected option |\n\nItem model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | int | true | Item ID |\n| name | string | true | Item name |\n| price | int | true | Item price |\n| num | int | true | Number of item |\n\nPackage detail\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| weight | float | true | Item weight (kg) |\n| length | float | false | Item length (m) |\n| width | float | false | Item width (m) |\n| height | float | false | Item height (m) |\n| description | description | false | Item description |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format\n\n``` json\n{\n    \"order_id\": \"21H8E7JM\",\n    \"status\": \"ASSIGNING\",\n    \"shared_link\": \"https://cloudstg.ahamove.com/share-order/21H8E7JM/84944309347\",\n    \"order\": {\n        // order detail\n        ...\n    }\n}\n\n ```\n\n**Error Responses**\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 406 | INVALID_FUTURE_ORDER_TIME | Advanced booking time is not valid (e.g more than 1 month from now) |\n| 406 | NOT_SUPPORT_ADVANCE_BOOKING | Service does not support advanced booking |\n| 406 | SERVICE_NOT_VALID_AT_PICKUP | Service does not available at the pickup point |\n| 406 | INVALID_PICKUP_AREA | Service does not available in this area |\n| 406 | INVALID_DELIVERY_AREA | Service does not support delivery in this area |\n| 406 | INVALID_SERVICE_HOUR | Service does not available at the moment |\n| 400 | MISSING_PATH_INFO | Path does not contain enough stop point |\n| 406 | INVALID_MAX_DISTANCE | Distance violate max_distance configured in service |\n| 406 | INVALID_MAX_COD | Order COD exceed max_cod of service or user max_cod |\n| 406 | INVALID_MAX_STOP_POINT | Number of stop point in path exceed max_stop_point of service |\n| 406 | INVALID_MIN_STOP_POINT | Number of stop point in path is less than min_stop_point of service |\n| 406 | NOT_ENOUGH_CREDIT | User does not have enough AHM credit |\n| 406 | TOTAL_PAY_NOT_VALID | Value of total_pay passed by client does not match the order total_pay |"
          },
          "response": []
        },
        {
          "name": "Create order by group service ID",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"order_time\": 0,\n    \"path\": [\n        {\n            \"lat\": 10.76975346,\n            \"lng\": 106.6636615,\n            \"address\": \"7/28 Thành Thái, Phường 14, Quận 10, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Thành Thái, Quận 10\",\n            \"name\": \"Lan\",\n            \"mobile\": \"84944309348\",\n            \"remarks\": \"Đến nơi lấy hàng đọc mã đơn để nhận hàng\"\n        },\n        {\n            \"lat\": 10.8018493,\n            \"lng\": 106.714466,\n            \"address\": \"475A Điện Biên Phủ, Phường 25, Bình Thạnh, Thành phố Hồ Chí Minh\",\n            \"short_address\": \"Đại Học Hutech, Quận Bình Thạnh, Hồ Chí Minh\",\n            \"name\": \"Anh\",\n            \"mobile\": \"0912345678\",\n            \"cod\": 100000,\n            \"item_value\": 250000,\n            \"tracking_number\": \"ABCD1234\",\n            \"remarks\": \"Gọi điện trước khi giao. Giao hàng cẩn thận\"\n        }\n    ],\n    \"group_service_id\": \"BIKE\",\n    \"group_requests\": [\n        {\n            \"_id\": \"TIP\",\n            \"num\": 1\n        },\n        {\n            \"_id\": \"BULKY\",\n            \"tier_code\": \"TIER_2\"\n        }\n    ],\n    \"payment_method\": \"CASH\",\n    \"remarks\": \"Ghi chú đơn hàng\",\n    \"promo_code\" : \"AHMKM\",\n    \"items\": [\n        {\n            \"_id\": \"TG\",\n            \"num\": 1,\n            \"name\": \"Tủ gỗ nhỏ\",\n            \"price\": 450000\n        },\n        {\n            \"_id\": \"GDB\",\n            \"num\": 2,\n            \"name\": \"Gương để bàn\",\n            \"price\": 120000\n        }\n    ],\n    \"package_detail\": [\n        {\n            \"weight\": 10,\n            \"length\": 1.2,\n            \"width\": 0.8,\n            \"height\": 2.0,\n            \"description\": \"Nội thất\"\n        }\n    ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders"]
            },
            "description": "## Create new order for parttner\n\n**Overview**\n\nThis api is used to create an order for partner\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**JSON Body**\n\nBody\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| service_id | string | true | Service ID |\n| path | array | true | List of stop points |\n| requests | array | true | List of special requests |\n| payment_method | string | true | Payment method to pay order |\n| total_pay | int | false | Amount of cash user have to pay, value getting from the estimating fee step |\n| order_time | float | false | Time when user want to broadcast order to supplier |\n| promo_code | string | false | Promo code to apply for discount |\n| remarks | string | false | User remarks for supplier |\n| admin_note | string | false | Note from AHM for supplier |\n| route_optimized | boolean | false | True means user want to rearrange the stop point in path for cost optimization |\n| idle_until | float | false | Time when user want to broadcast order to supplier. It is used in scheduled order |\n| items | array | false | List of items |\n| package_detail | array | false | List of package detail |\n| group_service_id | string | false | Based on group_service_id, Ahamove will detect proper service id by pickup location |\n| group_requests | array | false | List of group request, based on every item in group_requests, Ahamove will detect proper special request based on group id |\n\nStop point model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| address | string | true | Text address |\n| lat | float | true | Latitude |\n| lng | float | true | Longitude |\n| name | string | true | Name of receiver or sender |\n| mobile | string | true | Mobile phone of receiver or sender |\n| cod | int | false | COD amount in this stop point |\n| formatted_address | string | false | Formatted text address |\n| short_address | string | false | Short address text |\n| address_code | string | false | Address code |\n| remarks | string | false | A note for supplier |\n| item_value | int64 | false | Item's value |\n\nSpecial request model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | ID of the special request (e.g SGN-BIKE-TIPS) |\n| num | int | false | Number of unit special request if it's PER_UNIT type |\n| tier_code | string | false | Code of selected tier if it's TIER type |\n| option_code | string | false | Code of selected option (e.g option in SGN-BIKE-FRAGILE |\n| option_detail | string | false | Option detail of selected option |\n\nGroup request model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | string | true | ID of the special request (e.g SGN-BIKE-TIPS) |\n| num | int | false | Number of unit special request if it's PER_UNIT type |\n| tier_code | string | false | Code of selected tier if it's TIER type |\n| option_code | string | false | Code of selected option (e.g option in SGN-BIKE-FRAGILE |\n| option_detail | string | false | Option detail of selected option |\n\nItem model\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| _id | int | true | Item ID |\n| name | string | true | Item name |\n| price | int | true | Item price |\n| num | int | true | Number of item |\n\nPackage detail\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| weight | float | true | Item weight (kg) |\n| length | float | false | Item length (m) |\n| width | float | false | Item width (m) |\n| height | float | false | Item height (m) |\n| description | description | false | Item description |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format\n\n``` json\n{\n    \"order_id\": \"21H8E7JM\",\n    \"status\": \"ASSIGNING\",\n    \"shared_link\": \"https://cloudstg.ahamove.com/share-order/21H8E7JM/84944309347\",\n    \"order\": {\n        // order detail\n        ...\n    }\n}\n\n ```\n\n**Error Responses**\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 406 | INVALID_FUTURE_ORDER_TIME | Advanced booking time is not valid (e.g more than 1 month from now) |\n| 406 | NOT_SUPPORT_ADVANCE_BOOKING | Service does not support advanced booking |\n| 406 | SERVICE_NOT_VALID_AT_PICKUP | Service does not available at the pickup point |\n| 406 | INVALID_PICKUP_AREA | Service does not available in this area |\n| 406 | INVALID_DELIVERY_AREA | Service does not support delivery in this area |\n| 406 | INVALID_SERVICE_HOUR | Service does not available at the moment |\n| 400 | MISSING_PATH_INFO | Path does not contain enough stop point |\n| 406 | INVALID_MAX_DISTANCE | Distance violate max_distance configured in service |\n| 406 | INVALID_MAX_COD | Order COD exceed max_cod of service or user max_cod |\n| 406 | INVALID_MAX_STOP_POINT | Number of stop point in path exceed max_stop_point of service |\n| 406 | INVALID_MIN_STOP_POINT | Number of stop point in path is less than min_stop_point of service |\n| 406 | NOT_ENOUGH_CREDIT | User does not have enough AHM credit |\n| 406 | TOTAL_PAY_NOT_VALID | Value of total_pay passed by client does not match the order total_pay |"
          },
          "response": []
        },
        {
          "name": "Cancel order by order_id",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "DELETE",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"comment\": \"Khách hàng muốn hủy đơn\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders/24ABCDEF",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "24ABCDEF"]
            },
            "description": "## Cancel order for partner\n\n**Overview**\n\nThis api is used to cancel order by order_id for partner\n\n##### Path parameter\n\n[https://partner-apistg.ahamove.com](https://partner-apistg.ahamove.com)/v3/orders/{order_id}\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**JSON Body**\n\nBody\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| comment | string | true | Reason to cancel order |\n| cancel_code | string | true | Cancel code |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format\n\n``` json\n{}\n\n ```\n\n**Error Responses**\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 406 | INVALID_ORDER_STATUS | Order status is not valid |\n| 404 | ORDER_NOT_FOUND | Order does not exist |"
          },
          "response": []
        },
        {
          "name": "Cancel order by tracking_number",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "DELETE",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"tracking_number\": \"HD00001\",\n    \"comment\": \"Khách hàng muốn hủy đơn\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders/tracks",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "tracks"]
            },
            "description": "## Cancel order for partner\n\n**Overview**\n\nThis api is used to cancel order by tracking_number for partner\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**JSON Body**\n\nBody\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| tracking_number | string | true | Tracking number of order |\n| comment | string | true | Reason to cancel order |\n| cancel_code | string | true | Cancel code |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format\n\n``` json\n{}\n\n ```\n\n**Error Responses**\n\n| HTTP Status | Code | Meaning |\n| --- | --- | --- |\n| 406 | INVALID_ORDER_STATUS | Order status is not valid |\n| 404 | ORDER_NOT_FOUND | Order does not exist |"
          },
          "response": []
        },
        {
          "name": "Get order detail",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{partner_host}}/v3/orders/24ABCDEF",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "24ABCDEF"]
            },
            "description": "## Get detail of a order\n\n**Overview**\n\nThis api is used to get detail of an order\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**Parameters**\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| order_id | string | true | Order ID |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format\n\n``` json\n{\n    \"_id\": \"225T1WK0\",\n    \"app\": \"AhaMove\",\n    \"board_distance\": 0,\n    \"board_duration\": 0,\n    \"cancel_by_user\": true,\n    \"cancel_comment\": \"Partner want to cancel\",\n    \"cancel_time\": 1663925193.551306,\n    \"city_id\": \"SGN\",\n    \"complete_distance\": 0,\n    \"complete_duration\": 0,\n    \"create_time\": 1663924831,\n    \"currency\": \"VND\",\n    \"delay_until\": 1663924831,\n    \"discount\": 0,\n    \"distance\": 5.45,\n    \"distance_fee\": 37000,\n    \"distance_tracked\": 0,\n    \"duration\": 1401,\n    ...\n}\n\n ```"
          },
          "response": []
        },
        {
          "name": "Get multiple order detail",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{partner_host}}/v3/orders?ids=245JBIDZ,24QXTGC4,24B8SGKF",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders"],
              "query": [
                {
                  "key": "ids",
                  "value": "245JBIDZ,24QXTGC4,24B8SGKF"
                }
              ]
            },
            "description": "## Get detail of multiple orders\n\n**Overview**\n\nThis api is used to get detail of multiple orders (Max 10 order ids)\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Content-Type | application/json |  |\n| Authorization | Bearer {token} | Partner token |\n\n**Query parameters**\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| order_ids | string | true | List of order ID separated by comma |\n\n**Response**\n\n\\* HTTP Code: 200  \n\\* JSON body format\n\n``` json\n[\n    {\n        \"_id\": \"225T1WK0\",\n        \"app\": \"AhaMove\",\n        \"board_distance\": 0,\n        \"board_duration\": 0,\n        \"cancel_by_user\": true,\n        \"cancel_comment\": \"Partner want to cancel\",\n        \"cancel_time\": 1663925193.551306,\n        \"city_id\": \"SGN\",\n        \"complete_distance\": 0,\n        \"complete_duration\": 0,\n        \"create_time\": 1663924831,\n        \"currency\": \"VND\",\n        \"delay_until\": 1663924831,\n        \"discount\": 0,\n        \"distance\": 5.45,\n        \"distance_fee\": 37000,\n        \"distance_tracked\": 0,\n        \"duration\": 1401,\n        \"index\": 0,\n        \"items\": [],\n        \"notify_package_return\": true,\n        \"online_pay\": 0,\n        \"order_time\": 1663924831,\n        \"partner\": \"mcdonald\",\n        \"partner_surcharge\": 1.12,\n        \"payment_method\": \"BALANCE\",\n        \"pending_period\": 100,\n        \"polylines\": \"o_w`AmefjSzAlCmWvY{wBspBqQcFqRoByMZ@qJdBwNxLdCQ~@\",\n        \"request_fee\": 0,\n        \"requests\": [\n            {\n                \"_id\": \"SGN-BIKE-TRANSFER-COD\",\n                \"price\": 0\n            }\n        ],\n        \"service_id\": \"SGN-BIKE\",\n        \"status\": \"CANCELLED\",\n        \"stop_fee\": 0,\n        \"supplier_bonus_account\": 0,\n        \"supplier_bonus_account_liability_to_ahamove\": 0,\n        \"supplier_main_account_liability_to_ahamove\": 0,\n        \"surcharge\": 1.12,\n        \"surge_value\": 4000,\n        \"timeout\": 600,\n        \"total_fee\": 37000,\n        \"total_pay\": 0,\n        \"user_bonus_account\": 0,\n        \"user_id\": \"84944309347\",\n        \"user_main_account\": 37000,\n        \"user_name\": \"Phat Dang\",\n        \"vat_fee\": 0,\n        \"uniform_user_feedback\": 2,\n        \"from_location\": {\n            \"type\": \"Point\",\n            \"coordinates\": [\n                106.69669,\n                10.772594\n            ]\n        },\n        \"cod_commission_fee\": 0,\n        \"item_fee\": 0,\n        \"item_discount\": 0,\n        \"item_vat_fee\": 0,\n        \"premium_service_fee\": 0,\n        \"service\": {\n            \"_id\": \"SGN-BIKE\",\n            \"city_id\": \"SGN\",\n            \"delivery_type\": \"INSTANT\",\n            \"enable\": true,\n            \"icon_url\": \"https://ahamoveimg.s3-ap-southeast-1.amazonaws.com/aha-service/SieuToc.jpg\",\n            \"map_icon_url\": \"https://ahamove.com/wp-content/uploads/2020/01/icon-tet.png\",\n            \"name\": \"Siêu Tốc\",\n            \"name_en_us\": \"Siêu Tốc\",\n            \"name_vi_vn\": \"Siêu Tốc\",\n            \"parent_id\": \"SGN-GROUP-BIKE_EXPRESS\",\n            \"require_to\": true,\n            \"uniform_verify\": true,\n            \"uniform_verify_message_en_us\": \"Is your driver wearing proper uniform (including AhaMove's jacket, helmet)?\",\n            \"uniform_verify_message_vi_vn\": \"Tài xế có mang đồng phục (áo, nón) hay không?\"\n        },\n        \"uniform_verify\": true,\n        \"uniform_verify_message_en_us\": \"Is your driver wearing proper uniform (including AhaMove's jacket, helmet)?\",\n        \"uniform_verify_message_vi_vn\": \"Tài xế có mang đồng phục (áo, nón) hay không?\",\n        \"supplier_rating\": 5,\n        \"stoppoint_price\": 0,\n        \"special_request_price\": 0,\n        \"vat\": 0,\n        \"distance_price\": 37000,\n        \"voucher_discount\": 0,\n        \"subtotal_price\": 37000,\n        \"total_price\": 37000,\n        \"path\": [\n            {\n                \"address\": \"Chợ Bến Thành, Bến Thành, Quận 01, Hồ Chí Minh, Việt Nam\",\n                \"lat\": 10.772594,\n                \"lng\": 106.69669,\n                \"cod\": 0,\n                \"short_address\": \"Chợ Bến Thành, Bến Thành, Quận 01, Hồ Chí Minh, Việt Nam\",\n                \"mobile\": \"84944309348\",\n                \"name\": \"Lan\"\n            },\n            {\n                \"address\": \"Đại Học Hutech, Phường 25, Bình Thạnh, Hồ Chí Minh, Việt Nam\",\n                \"lat\": 10.801228,\n                \"lng\": 106.714856,\n                \"cod\": 1000000,\n                \"short_address\": \"Đại Học Hutech, Phường 25, Bình Thạnh, Hồ Chí Minh, Việt Nam\",\n                \"mobile\": \"0930393438\",\n                \"cod_payment_method\": \"zalopay\",\n                \"name\": \"Vân Anh\",\n                \"require_pod\": true,\n                \"pod_type\": \"photo\",\n                \"require_pof\": true,\n                \"pof_type\": \"photo\",\n                \"enable_upload_pof\": true,\n                \"cod_payment_status\": \"PENDING\"\n            }\n        ],\n        \"surge_rate\": 0,\n        \"user_referral_code\": \"0944309347\",\n        \"user_facebook_id\": \"1821685954602584\"\n    },\n    {\n        \"_id\": \"22R8KB59\",\n        \"app\": \"AhaMove\",\n        \"board_distance\": 0,\n        \"board_duration\": 0,\n        \"cancel_by_user\": true,\n        \"cancel_comment\": \"Partner want to cancel\",\n        \"cancel_time\": 1664126979.1649837,\n        \"city_id\": \"SGN\",\n        \"complete_distance\": 0,\n        \"complete_duration\": 0,\n        \"create_time\": 1664126971,\n        \"currency\": \"VND\",\n        \"delay_until\": 1664126971,\n        \"discount\": 0,\n        \"distance\": 5.45,\n        \"distance_fee\": 33000,\n        \"distance_tracked\": 0,\n        \"duration\": 1401,\n        \"index\": 0,\n        \"items\": [],\n        \"notify_package_return\": true,\n        \"online_pay\": 0,\n        \"order_time\": 1664126971,\n        \"partner\": \"mcdonald\",\n        \"payment_method\": \"BALANCE\",\n        \"pending_period\": 100,\n        \"polylines\": \"o_w`AmefjSzAlCmWvY{wBspBqQcFqRoByMZ@qJdBwNxLdCQ~@\",\n        \"request_fee\": 0,\n        \"requests\": [\n            {\n                \"_id\": \"SGN-BIKE-TRANSFER-COD\",\n                \"price\": 0\n            }\n        ],\n        \"service_id\": \"SGN-BIKE\",\n        \"status\": \"CANCELLED\",\n        \"stop_fee\": 0,\n        \"supplier_bonus_account\": 0,\n        \"supplier_bonus_account_liability_to_ahamove\": 0,\n        \"supplier_main_account_liability_to_ahamove\": 0,\n        \"timeout\": 600,\n        \"total_fee\": 33000,\n        \"total_pay\": 0,\n        \"user_bonus_account\": 0,\n        \"user_id\": \"84944309347\",\n        \"user_main_account\": 33000,\n        \"user_name\": \"Phat Dang\",\n        \"vat_fee\": 0,\n        \"uniform_user_feedback\": 2,\n        \"from_location\": {\n            \"type\": \"Point\",\n            \"coordinates\": [\n                106.69669,\n                10.772594\n            ]\n        },\n        \"cod_commission_fee\": 0,\n        \"item_fee\": 0,\n        \"item_discount\": 0,\n        \"item_vat_fee\": 0,\n        \"premium_service_fee\": 0,\n        \"service\": {\n            \"_id\": \"SGN-BIKE\",\n            \"city_id\": \"SGN\",\n            \"delivery_type\": \"INSTANT\",\n            \"enable\": true,\n            \"icon_url\": \"https://ahamoveimg.s3-ap-southeast-1.amazonaws.com/aha-service/SieuToc.jpg\",\n            \"map_icon_url\": \"https://ahamove.com/wp-content/uploads/2020/01/icon-tet.png\",\n            \"name\": \"Siêu Tốc\",\n            \"name_en_us\": \"Siêu Tốc\",\n            \"name_vi_vn\": \"Siêu Tốc\",\n            \"parent_id\": \"SGN-GROUP-BIKE_EXPRESS\",\n            \"require_to\": true,\n            \"uniform_verify\": true,\n            \"uniform_verify_message_en_us\": \"Is your driver wearing proper uniform (including AhaMove's jacket, helmet)?\",\n            \"uniform_verify_message_vi_vn\": \"Tài xế có mang đồng phục (áo, nón) hay không?\"\n        },\n        \"uniform_verify\": true,\n        \"uniform_verify_message_en_us\": \"Is your driver wearing proper uniform (including AhaMove's jacket, helmet)?\",\n        \"uniform_verify_message_vi_vn\": \"Tài xế có mang đồng phục (áo, nón) hay không?\",\n        \"supplier_rating\": 5,\n        \"stoppoint_price\": 0,\n        \"special_request_price\": 0,\n        \"vat\": 0,\n        \"distance_price\": 33000,\n        \"voucher_discount\": 0,\n        \"subtotal_price\": 33000,\n        \"total_price\": 33000,\n        \"path\": [\n            {\n                \"address\": \"Chợ Bến Thành, Bến Thành, Quận 01, Hồ Chí Minh, Việt Nam\",\n                \"lat\": 10.772594,\n                \"lng\": 106.69669,\n                \"cod\": 0,\n                \"short_address\": \"Chợ Bến Thành, Bến Thành, Quận 01, Hồ Chí Minh, Việt Nam\",\n                \"mobile\": \"84944309348\",\n                \"name\": \"Lan\"\n            },\n            {\n                \"address\": \"Đại Học Hutech, Phường 25, Bình Thạnh, Hồ Chí Minh, Việt Nam\",\n                \"lat\": 10.801228,\n                \"lng\": 106.714856,\n                \"cod\": 1000000,\n                \"short_address\": \"Đại Học Hutech, Phường 25, Bình Thạnh, Hồ Chí Minh, Việt Nam\",\n                \"mobile\": \"0930393438\",\n                \"cod_payment_method\": \"zalopay\",\n                \"name\": \"Vân Anh\",\n                \"require_pod\": true,\n                \"pod_type\": \"photo\",\n                \"require_pof\": true,\n                \"pof_type\": \"photo\",\n                \"enable_upload_pof\": true,\n                \"cod_payment_status\": \"PENDING\"\n            }\n        ],\n        \"surge_rate\": 0,\n        \"user_referral_code\": \"0944309347\",\n        \"user_facebook_id\": \"1821685954602584\"\n    }\n]\n\n ```"
          },
          "response": []
        },
        {
          "name": "Get order list by tracking number",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhaGEiLCJ0eXAiOiJ1c2VyIiwiY2lkIjoiODQ5MDczODY2OTYiLCJzdGF0dXMiOiJPRkZMSU5FIiwiZW9jIjoiOTloYWlwaGFtMTgwN0BnbWFpbC5jb20iLCJub2MiOiJoYWlwaGFtIiwiY3R5IjoiU0dOIiwiYWNjb3VudF9zdGF0dXMiOiJBQ1RJVkFURUQiLCJleHAiOjE2OTc3OTY1NjcsInBhcnRuZXIiOiJwaGFybWFjaXR5IiwidHlwZSI6ImFwaSJ9.tgbWXs2EJ0NEjgrD9x44EN_c76hidTSwgd_ovvuzQdM"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{partner_host}}/v3/orders/tracks/HD00001",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "tracks", "HD00001"]
            },
            "description": "## Get a list of orders by tracking_number\n\n**Overview**\n\nThis api is used for partner to get a list of orders by tracking_number. See parameter to know more details about the available filter\n\n**Headers**\n\n| Key | Value | Description |\n| --- | --- | --- |\n| Authorization | Bearer {token} | partner token |\n\n**Request Params**\n\n| Key | Type | Required | Description |\n| --- | --- | --- | --- |\n| count | int | false | Number of order in a page (default: 20, max: 100) |\n| offset | int | false | Position from which to return the result (default: 0) |\n| from_time | int | false | Unix timestamp. Scan order which has create time greater than or equal from_time. If client do not submit value, its value is 7 days before |\n| to_time | int | false | Unix timestamp. Scan order which has create time less than to_time. If client do not submit value, its value current time |\n| tracking_number | string | true | query follow \"path.tracking_number\" |\n\n**Response**\n\n``` json\n[\n    {\n        \"_id\": \"23T05HDT\",\n        \"path\": [\n            {\n                \"address\": \"372 Lê Văn Sỹ, Phường 14, Quận 3, Thành phố Hồ Chí Minh, Việt Nam\"\n            },\n            {\n                \"address\": \"104 Trần Nhân Tôn, Phường 5, Quận 10, Hồ Chí Minh, Việt Nam\",\n                \"tracking_number\": \"PMCAHM123456789\"\n            }\n        ],\n        \"status\": \"CANCELLED\",\n        \"service_id\": \"SGN-POOL\",\n        \"create_time\": 1675399558.6162026\n    }\n]\n\n```\n\n**Errors**\n\n- 401: NOT_AUTHORIZED"
          },
          "response": []
        },
        {
          "name": "Get order tracking link",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhaGEiLCJ0eXAiOiJ1c2VyIiwiY2lkIjoiODQ5NjM4ODg3NzciLCJzdGF0dXMiOiJPRkZMSU5FIiwiZW9jIjpudWxsLCJub2MiOiJndXUiLCJjdHkiOiJTR04iLCJhY2NvdW50X3N0YXR1cyI6IkFDVElWQVRFRCIsImV4cCI6MTc0NDcwNzA2OSwicGFydG5lciI6Imd1dSIsInR5cGUiOiJhcGkifQ.HgnDGVdNdYc4rOQ2cPkhre7eJiJpfBMofb49dpIreT8"
              }
            ],
            "url": {
              "raw": "{{partner_host}}/v3/orders/24ABCDEF/shared-link",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "24ABCDEF", "shared-link"]
            },
            "description": "## Get order shared link\n\nThis API is used to get the shared link for order tracking"
          },
          "response": []
        },
        {
          "name": "Get order callback logs",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{partner_host}}/v3/orders/callback-logs?tracking_number=HD00001",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "callback-logs"],
              "query": [
                {
                  "key": "tracking_number",
                  "value": "HD00001"
                }
              ]
            },
            "description": "## Get partner callback logs\n\n### Overview\n\nThis api is used for partner to get list of callback logs by tracking_number\n\n### Authorization\n\n| **Key** | **Value** | **Description** |\n| --- | --- | --- |\n| Authorization | Bearer {{TOKEN}} | Partner token |\n\n#### Query param\n\n| **Field** | **Required** | **Description** |\n| --- | --- | --- |\n| tracking_number | True | tracking number of order |"
          },
          "response": []
        },
        {
          "name": "Update order Information",
          "protocolProfileBehavior": {
            "disabledSystemHeaders": {}
          },
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "PATCH",
            "header": [],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"path_index\": 1,\n    \"name\": \"Anh\",\n    \"mobile\": \"09xxxxxxxx\",\n    \"remarks\": \"Cổng đón khách A\",\n    \"cod\": 220000,\n    \"address_info\": {\n        \"lat\": 10.798026,\n        \"lng\": 106.696369,\n        \"address\": \"Bệnh Viện Quận Bình Thạnh, 132 Lê Văn Duyệt, Phường 1, Quận Bình Thạnh, Thành phố Hồ Chí Minh, Việt Nam\"\n    }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders/248APVY",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "248APVY"]
            }
          },
          "response": []
        },
        {
          "name": "Rate a supplier",
          "protocolProfileBehavior": {
            "disabledSystemHeaders": {}
          },
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "PUT",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXAiOiJzdXBwbGllciIsImNpZCI6Ijg0OTAyOTMzMDI1Iiwic3RhdHVzIjoiT0ZGTElORSIsImVvYyI6ImhvZGRAc2NvbW1lcmNlLmFzaWEiLCJub2MiOiLEkE_DgE4gxJDhuqBJIEjhu5IiLCJjdHkiOiJTR04iLCJpbWVpIjoiMDdmNzc4ZTU0OWU5MTVmMCIsInR5cGUiOiJhbmRyb2lkIiwiZXhwIjoxNjE3MDk0NjA1LCJpYXQiOjE2MTcwOTQ1NDUsImlzcyI6IkFoYU1vdmUifQ.6yEwW2xjBoMnI17fPcd2OWmMKuowBBQqsY3lKL4hraE",
                "disabled": true
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"rated_by\":\"receiver\",\n    \"rating\": 4,\n    \"comment\": \"good\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{partner_host}}/v3/orders/24ABCDEF/rate",
              "host": ["{{partner_host}}"],
              "path": ["v3", "orders", "24ABCDEF", "rate"]
            },
            "description": "## Rate Order\n\n**Overview**\n\nThis api rate supplier based on order id.\n\n| Params | Type | Required | Description |\n| --- | --- | --- | --- |\n| rated_by | string | true | Always pass \"receiver\" |\n| rating | int | true | rating point  <br>(min =0, max = 5) |\n| comment | string | false | comment text |\n| badge_list | string | false | supplier badges |\n\n**Success response**\n\n``` json\n{\n}\n\n ```\n\n**Errors response**\n\n``` json\n{\n    \"code\": \"MISSING_REQUIRED_INFO\",\n    \"http_code\": 400,\n    \"title\": \"Thiếu dữ liệu truyền vào\",\n    \"description\": \"Dữ liệu rating là bắt buộc\",\n    \"internal\": \"\",\n    \"trace_id\": \"6a6037a4-b6ba-4150-9a83-552ec16859a0#319003\"\n}\n\n ```\n\n**Not authorized response**\n\n``` json\n{\n    \"code\": \"NOT_AUTHORIZED\",\n    \"http_code\": 401,\n    \"title\": \"Thao tác bị từ chối.\",\n    \"description\": \"Không có quyền thực hiện thao tác này, vui lòng kiểm tra lại.\",\n    \"internal\": \"\"\n}\n\n ```\n\n- Invalid request body\n    \n\n``` json\n{\n    \"code\": \"INVALID_PARAM\",\n    \"http_code\": 400,\n    \"title\": \"Thông tin không hợp lệ!\",\n    \"description\": \"Giá trị `rating` không hợp lệ, vui lòng kiểm tra lại\",\n    \"internal\": \"\",\n    \"trace_id\": \"6377ff83-700a-4eac-b4b3-d5a6f5e32b22#325621\"\n}\n\n ```\n\n- supplier_id not in order (not accepted) when rated_by user / receiver\n    \n\n``` json\n{\n    \"code\": \"SUPPLIER_NOT_FOUND\",\n    \"http_code\": 404,\n    \"title\": \"Supplier not found\",\n    \"description\": \"Không tìm thấy thông tin tài xế, vui lòng kiểm tra lại.\",\n    \"internal\": \"\",\n    \"trace_id\": \"ad47999a-1e5c-49fa-869d-32ff0de87b59#29605\"\n}\n\n ```\n\n- Order was rated by user\n    \n\n``` json\n{\n    \"code\": \"ORDER_HAS_BEEN_RATED_BY_USER\",\n    \"http_code\": 409,\n    \"title\": \"Đơn hàng đã được đánh giá bởi khách hàng\",\n    \"description\": \"\",\n    \"internal\": \"\",\n    \"trace_id\": \"ad47999a-1e5c-49fa-869d-32ff0de87b59#29615\"\n}\n\n ```\n\n- Badge list not valid\n    \n\n``` json\n{\n    \"code\": \"BADGE_NOT_VALID\",\n    \"http_code\": 406,\n    \"title\": \"Badge không hợp lệ\",\n    \"description\": \"\",\n    \"internal\": \"\",\n    \"trace_id\": \"ad47999a-1e5c-49fa-869d-32ff0de87b59#29624\"\n}\n\n ```\n\n- Order was rated by receiver\n    \n\n``` json\n{\n    \"code\": \"ORDER_HAS_BEEN_RATED_BY_RECEIVER\",\n    \"http_code\": 409,\n    \"title\": \"Đơn hàng đã được đánh giá bởi tài xế\",\n    \"description\": \"\",\n    \"internal\": \"\",\n    \"trace_id\": \"ad47999a-1e5c-49fa-869d-32ff0de87b59#29630\"\n}\n\n ```\n\n> Sample body request \n  \n\n- Rate by user / receiver\n    \n\n``` json\n{\n    \"rated_by\":\"user\",\n    \"rating\": 3,\n    \"client_id\": \"84378580738\",\n    \"comment\": \"Excellent supplier\",\n    \"badge\": [\"SUPPLIER_EXCELLENT\"]\n}\n\n ```"
          },
          "response": []
        }
      ]
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "exec": [""]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "exec": [""]
      }
    }
  ],
  "variable": [
    {
      "key": "partner_host",
      "value": "https://partner-apistg.ahamove.com",
      "type": "string",
      "disabled": true
    },
    {
      "key": "api_key",
      "value": "API_KEY_STG",
      "type": "string",
      "disabled": true
    },
    {
      "key": "token",
      "value": "TOKEN_STG",
      "type": "string",
      "disabled": true
    }
  ]
}
