### Bulk Order Callback Payload Example Source: https://developer.everpro.id/ This is an example of the JSON payload structure expected for the bulk order callback. It includes counts of successful and failed orders, along with lists of success and failure details. ```json { "success_count": 100, "failed_count": 0, "success": [ { "client_order_no": "INV-2025-0001939", "order_reference_id": "GB-2025010100001" } ], "failed": [ { "client_order_no": "INV-2025-0001938", "error_message": "client order no already exist" } ] } ``` -------------------------------- ### Callback Tracking Payload Example Source: https://developer.everpro.id/ This is an example of the JSON payload sent for callback tracking when an order is not canceled. Ensure the `tracking_code` is one of the valid statuses. ```json { "awb_number": "IDE0011737461", "client_order_no": "INV-2025-0001939", "logistic_reference_number": "TGL-BD057-CBN07", "order_reference_id": "GB-2025010100001" } ``` -------------------------------- ### Get Shipment Label Request (Node.js) Source: https://developer.everpro.id/ Example of how to request a shipment label using Node.js and the 'request' library. This requires a previously obtained AWB number. Remember to replace 'REPLACE_KEY_VALUE' with your Bearer Token. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/orders/%7Bawb_number%7D/label', headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Supported Logistics/Couriers Source: https://developer.everpro.id/ Retrieves a list of all supported couriers and their services available in Everpro. ```APIDOC ## GET /shipment/v1/logistics ### Description Retrieves a list of all supported couriers and their services available in Everpro. ### Method GET ### Endpoint https://client-api-sandbox.everpro.id/shipment/v1/logistics ### Authorization Bearer Token ### Response #### Success Response (200) - **data** (object) - Contains logistics information. - **logistics** (array) - A list of supported logistics providers. - **code** (string) - The code of the logistics provider. - **is_active** (boolean) - Indicates if the provider is active. - **is_supported_dropoff** (boolean) - Indicates if drop-off is supported. - **is_supported_pickup** (boolean) - Indicates if pick-up is supported. - **name** (string) - The name of the logistics provider. - **services** (array) - A list of services offered by the provider. - **category_id** (integer) - The ID of the service category. - **category_name** (string) - The name of the service category. - **code** (string) - The code of the service. - **is_active** (boolean) - Indicates if the service is active. - **name** (string) - The name of the service. - **errors** (array) - A list of errors encountered during the request. - **message** (string) - A message indicating the status of the request. - **request_id** (string) - A unique identifier for the request. - **status** (string) - The status of the request (e.g., "success"). - **status_code** (integer) - The HTTP status code of the response. - **timestamp** (string) - The timestamp when the request was processed. #### Error Response (400, 401, 500) - **errors** (array) - A list of errors encountered during the request. - **code** (string) - The error code. - **message** (string) - A description of the error. ### Request Example ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/logistics', headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ### Response Example (200) ```json { "data": { "logistics": [ { "code": "JNE", "is_active": true, "is_supported_dropoff": true, "is_supported_pickup": true, "name": "JNE", "services": [ { "category_id": 1, "category_name": "Reguler", "code": "REG23", "is_active": true, "name": "REG23" } ] } ] }, "errors": [], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` ``` -------------------------------- ### Callback Tracking Payload Example (Canceled Order) Source: https://developer.everpro.id/ This JSON payload demonstrates the structure for callback tracking when an order has been canceled. The `cancel_reason` field is included only for canceled orders. ```json { "awb_number": "IDE0011737461", "cancel_reason": "Cancel by user", "client_order_no": "INV-2025-0001939", "order_reference_id": "GB-2025010100001", "tracking_code": "CANCELED" } ``` -------------------------------- ### Node.js GET Request for Order Details Source: https://developer.everpro.id/ This Node.js snippet demonstrates how to fetch order details using the 'request' library. Remember to replace 'REPLACE_KEY_VALUE' with your actual Bearer Token. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/orders/%7Border_number%7D', headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Supported Logistics/Couriers (Node.js) Source: https://developer.everpro.id/ This endpoint retrieves a list of supported couriers and their services. Requires Bearer Token authorization. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/logistics', headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Shipment Orders with Node.js Request Source: https://developer.everpro.id/ Use the 'request' library in Node.js to fetch shipment orders. Ensure you replace placeholder values and provide a valid Authorization header. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/orders', qs: { start_date: 'SOME_STRING_VALUE', end_date: 'SOME_STRING_VALUE', search: 'SOME_STRING_VALUE', status_id: 'SOME_ARRAY_VALUE', filename: 'SOME_STRING_VALUE', sort: 'SOME_ARRAY_VALUE', page: 'SOME_INTEGER_VALUE', limit: 'SOME_INTEGER_VALUE' }, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Pickup Times with Node.js Source: https://developer.everpro.id/ Use this snippet to retrieve available pickup times based on rate codes and timezone. Ensure you replace placeholder values for rate codes, timezone, and the authorization key. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/pickup-times', qs: {rate_codes: 'SOME_ARRAY_VALUE', timezone: 'SOME_STRING_VALUE'}, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Response Sample for Get Shipment Label Source: https://developer.everpro.id/ This JSON structure represents a successful response when retrieving a shipment label. It provides a URL to the PDF label. ```json { "data": { "url_label_pdf": "https://everpro.s3-ap-southeast2.aws.com/logistic/shipment_TRD00001X_JKT12SD_label.pdf" }, "errors": [ { "code": "string", "message": "string" } ], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` -------------------------------- ### Get Order List For User Source: https://developer.everpro.id/ Retrieves a list of orders for a user with options to filter by date range, search by order or AWB number, filter by status, and sort the results. ```APIDOC ## GET /shipment/v1/orders ### Description Retrieves a list of orders for a user. Sorting is limited to `order_no`, `awb_number`, `destination`, `package_desc`, `courier`, `total_price`. Skip if column is not sortable. ### Method GET ### Endpoint https://client-api-sandbox.everpro.id/shipment/v1/orders ### Parameters #### Query Parameters - **start_date** (string) - Optional - Start order date to get (YYYY-MM-DD). If left blank, will use a 5-year time range by default. Warning: Default might change in the future. - **end_date** (string) - Optional - End order date to get (YYYY-MM-DD). Cannot be less than `start_date`. - **search** (string) - Optional - Search shipment order number to get. - **status_id** (Array of integers) - Optional - Status order to filter. See Available Status IDs table for valid values. - **filename** (string) - Optional - Get order list by bulk upload filename. - **sort** (Array of strings) - Optional - Multi-column sorting, example usage `sort=-order_no,+total_price`. This will sort `order_no` DESC, `total_price` with ASC. Default is `created_at` DESC. - **page** (integer) - Optional - Support for pagination. - **limit** (integer) - Optional - Limit per page, default is 10 with a maximum of 50 per page. ### Available Status IDs | ID | Status Name | Category | |-----|--------------------|---------------| | 100 | Unpaid | Payment | | 101 | Insufficient Payment | Payment | | 102 | Pending Payment | Payment | | 200 | Paid | Paid | | 201 | Paid in Cash | Paid | | 202 | Failed to Generate AWB Number | Paid | | 300 | Waiting for Pick Up | Pickup/Drop | | 301 | Waiting for Drop Off | Pickup/Drop | | 302 | Transferred to 3PL | Pickup/Drop | | 303 | Arrived at Sorting Hub | Pickup/Drop | | 304 | Failed Pickup | Pickup/Drop | | 400 | In Process | Processing | | 401 | Request to be Canceled | Processing | | 402 | In Process Return | Processing | | 403 | Arrived at Destination City | Processing | | 404 | Ongoing to Receiver | Processing | | 500 | Completed | Completion | | 501 | Rejected | Completion | | 600 | Complained | Issue | | 601 | Resolved | Issue | | 602 | In Trouble | Issue | | 700 | Cancelled | Termination | | 701 | Expired | Termination | | 702 | Return | Termination | | 703 | Lost / Broken | Termination | | 704 | Failed | Termination | | 705 | Force Majeure | Termination | | 706 | Repeat Delivery | Termination | ### Responses #### Success Response (200) OK #### Error Responses - **400** Bad Request - **401** Unauthorized - **404** Not Found - **500** Internal Server Error ``` -------------------------------- ### Get Location Detail Source: https://developer.everpro.id/ Retrieve detailed information about a specific location using either its address or postal code. The postal code takes priority if both are provided. ```APIDOC ## POST /location/v1/postalcode ### Description Get Location Detail. Either address or `postal_code` must be filled. If both are filled, `postal_code` value will be the priority. ### Method POST ### Endpoint https://client-api-sandbox.everpro.id/location/v1/postalcode ### Parameters #### Request Body ##### Request Body schema: application/json ```json { "address": "string", "postal_code": "string" } ``` ### Request Example ```json { "address": "Jl. Diponegoro No.22, Citarum, Kec. Bandung Wetan, Kota Bandung, Jawa Barat", "postal_code": "40115" } ``` ### Responses #### Success Response (200) OK ```json { "data": [ { "city_name": "Jakarta Pusat", "district_name": "Gambir", "postal_code": "10150", "province_name": "Jakarta", "sub_district_id": 8839, "sub_district_name": "Cideng" } ], "errors": [ { "code": "string", "message": "string" } ], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` #### Error Responses **400** Bad Request **401** Unauthorized **404** Not Found **500** Internal Server Error ``` -------------------------------- ### Get Pickup Time Source: https://developer.everpro.id/ Retrieves available pickup times based on provided rate codes and timezone. This endpoint is useful after obtaining rates to schedule a pickup. ```APIDOC ## GET /shipment/v1/pickup-times ### Description This endpoint is for getting a pickup time by rate code. You can use this endpoint after get rates. ### Method GET ### Endpoint https://client-api-sandbox.everpro.id/shipment/v1/pickup-times ### Parameters #### Query Parameters - **rate_codes** (Array of strings) - Required - The rate code from get rate response. For multiple rate codes, please use comma separated without space. Example: "SIUNT" - **timezone** (string) - Required - The timezone that will be used for converting the pickup time to this timezone. Example: "Asia/Jakarta". Reference: WIB -> Asia/Jakarta, WITA -> Asia/Makassar, WIT -> Asia/Jayapura. More: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ### Request Example ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/pickup-times', qs: {rate_codes: 'SOME_ARRAY_VALUE', timezone: 'SOME_STRING_VALUE'}, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ### Responses #### Success Response (200) OK. Response includes `available_pickup_time` which contains logistic name, pickup time list with date, day name, and specific pickup times (start_at, end_at, time_range). #### Response Example ```json { "data": { "available_pickup_time": [ { "logistic_name": "SiCepat", "pickup_time_list": [ { "date": "2023-12-22T00:00:00.000Z", "day_name": "Friday", "pickup_times": [ { "condition": true, "cut_off": true, "end_at": "2023-12-22T05:00:00.000Z", "start_at": "2023-12-22T03:00:00.000Z", "time_range": "09.00 - 12.00" } ] } ], "rate_code": "SIUNT" } ] }, "errors": [ { "code": "string", "message": "string" } ], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` #### Error Responses - **400** Bad Request - **401** Unauthorized - **404** Not Found - **500** Internal Server Error ``` -------------------------------- ### Get Sub-Districts Source: https://developer.everpro.id/ Retrieves a list of sub-districts based on provided query parameters. It prioritizes district_id if all parameters are supplied and returns a 404 with an empty array if no results are found. ```APIDOC ## GET /location/v1/sub-districts ### Description Retrieves a list of sub-districts based on provided query parameters. It prioritizes district_id if all parameters are supplied and returns a 404 with an empty array if no results are found. ### Method GET ### Endpoint https://client-api-sandbox.everpro.id/location/v1/sub-districts ### Parameters #### Query Parameters - **district_id** (string) - Optional - District ID - **sub_district_name** (string) - Optional - Sub District Name - **postal_code** (string) - Optional - Postal Code *Note: At least one parameter must be provided. If all parameters are filled, the search will prioritize `district_id`.* ### Response #### Success Response (200) - **data** (array) - Contains a list of sub-district objects. - **postal_code** (string) - The postal code of the sub-district. - **sub_district_id** (string) - The unique identifier for the sub-district. - **sub_district_name** (string) - The name of the sub-district. - **errors** (array) - A list of errors encountered during the request. - **message** (string) - A message indicating the status of the request. - **request_id** (string) - A unique identifier for the request. - **status** (string) - The status of the request (e.g., "success"). - **status_code** (integer) - The HTTP status code of the response. - **timestamp** (string) - The timestamp when the request was processed. #### Error Response (400, 401, 404, 500) - **errors** (array) - A list of errors encountered during the request. - **code** (string) - The error code. - **message** (string) - A description of the error. ### Request Example ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/location/v1/sub-districts', qs: { district_id: 'SOME_STRING_VALUE', sub_district_name: 'SOME_STRING_VALUE', postal_code: 'SOME_STRING_VALUE' }, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ### Response Example (200) ```json { "data": [ { "postal_code": "10150", "sub_district_id": "ABCD123x", "sub_district_name": "Cideng" } ], "errors": [], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` ``` -------------------------------- ### Get Districts using Node.js Request Source: https://developer.everpro.id/ Fetch a list of districts using this Node.js snippet. Filter results by city ID or district name. Ensure your API key and search parameters are correctly set. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/location/v1/districts', qs: {city_id: 'SOME_STRING_VALUE', district_name: 'SOME_STRING_VALUE'}, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Provinces using Node.js Request Source: https://developer.everpro.id/ Use this snippet to fetch a list of provinces. Ensure you replace 'REPLACE_KEY_VALUE' with your actual API key and 'SOME_STRING_VALUE' with the desired province name for filtering. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/location/v1/provinces', qs: {province_name: 'SOME_STRING_VALUE'}, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Logistic Rates V3 Source: https://developer.everpro.id/ Retrieves all courier rates (Basic API) based on the provided package details, origin, destination, and shipment type. Supports optional insurance and wood packing. ```APIDOC ## POST /shipment/v3/rates ### Description Retrieves courier rates based on package details, origin, destination, and shipment preferences. Supports optional insurance and wood packing. ### Method POST ### Endpoint https://client-api-sandbox.everpro.id/shipment/v3/rates ### Parameters #### Request Body - **destination** (object) - Required - Object containing the destination details (sub-district ID, latitude, longitude). - **id** (integer) - Required - Sub-district ID. - **latitude** (number) - Optional - Latitude of the destination. - **longitude** (number) - Optional - Longitude of the destination. - **is_use_insurance** (boolean) - Optional - Flag to indicate if insurance is desired. - **is_use_woodpacking** (boolean) - Optional - Flag to indicate if wood packing is desired. Adds cost and filters for supported logistics. - **logistic_codes** (array of strings) - Optional - Filter to get rates from specific logistic providers. Leave blank for all available. - **origin** (object) - Required - Object containing the origin details (sub-district ID, latitude, longitude). - **id** (integer) - Required - Sub-district ID. - **latitude** (number) - Optional - Latitude of the origin. - **longitude** (number) - Optional - Longitude of the origin. - **package** (object) - Required - Object defining the package weight, dimension, and price. - **dimension** (object) - Required - Package dimensions. - **height** (number) - Required - Height of the package. - **length** (number) - Required - Length of the package. - **width** (number) - Required - Width of the package. - **price** (number) - Required - Price of the package. - **type** (string) - Required - Type of the package (e.g., REGULAR). - **weight** (number) - Required - Weight of the package. - **payment_type** (string) - Optional - Payment method. Value: "COD" for Cash on Delivery. - **rate_codes** (array of strings) - Optional - Filter to return rates matching specific rate codes (e.g., REG23, OKE). Leave blank for all available rates. - **shipment_type** (string) - Required - Enum: "PICKUP", "DROP". Defines how the package will be handled. - PICKUP: A courier will pick up to the origin address. - DROP: You will have to drop the package in the nearest logistic drop off. ### Request Example ```json { "destination": { "id": 3300, "latitude": 0, "longitude": 0 }, "is_use_insurance": true, "is_use_woodpacking": true, "logistic_codes": [ "string" ], "origin": { "id": 3300, "latitude": 0, "longitude": 0 }, "package": { "dimension": { "height": 1, "length": 1, "width": 1 }, "price": 5000, "type": "REGULAR", "weight": 1.5 }, "payment_type": "COD", "rate_codes": [ "string" ], "shipment_type": "PICKUP" } ``` ### Responses #### Success Response (200) OK #### Error Responses - **400** Bad Request - **401** Unauthorized - **404** Not Found - **500** Internal Server Error ``` -------------------------------- ### Get AWB Number Request (Node.js) Source: https://developer.everpro.id/ Example of how to request an AWB number using Node.js and the 'request' library. Ensure you replace 'REPLACE_KEY_VALUE' with your actual Bearer Token. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/orders/%7Bclient_order_no%7D/awb', headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Create Shipment Order V3 Response Sample (200 OK) Source: https://developer.everpro.id/ This is a sample successful response (200 OK) for creating a shipment order. It includes actual prices which may differ from the requested prices due to Everpro's pricing and reconciliation processes. ```json { "actual_cod_price": 14750, "actual_insurance_price": 750, "actual_price": 9000, "calculated_weight": 0, "client_order_no": "TRD1741161334", "order_reference_id": "GB-2025010100001", "requested_cod_price": 15500, "requested_insurance_price": 500, "requested_price": 10000 } ``` -------------------------------- ### Pickup Time Response Sample Source: https://developer.everpro.id/ This is a sample JSON response for the pickup times endpoint, illustrating the structure of available pickup slots, dates, and times. ```json { "data": { "available_pickup_time": [ { "logistic_name": "SiCepat", "pickup_time_list": [ { "date": "2023-12-22T00:00:00.000Z", "day_name": "Friday", "pickup_times": [ { "condition": true, "cut_off": true, "end_at": "2023-12-22T05:00:00.000Z", "start_at": "2023-12-22T03:00:00.000Z", "time_range": "09.00 - 12.00" } ] } ], "rate_code": "SIUNT" } ] }, "errors": [ { "code": "string", "message": "string" } ], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` -------------------------------- ### JSON Response Sample for Bulk Shipment Creation Source: https://developer.everpro.id/ This is a sample JSON response for a bulk shipment creation request, indicating the request was accepted. ```json { "data": null, "message": "... request accepted", "request_id": "string", "status": "accepted", "status_code": 202, "timestamp": "2022-04-14T05:55:35.006Z" } ``` -------------------------------- ### Get Location Provinces Source: https://developer.everpro.id/ Retrieves a list of provinces. You can filter by province name. ```APIDOC ## GET /location/v1/provinces ### Description Retrieves a list of provinces. You can filter by province name. ### Method GET ### Endpoint https://client-api-sandbox.everpro.id/location/v1/provinces ### Parameters #### Query Parameters - **province_name** (string) - Optional - The name of the province to filter by. #### Request Headers - **Authorization** (string) - Required - Bearer token for authentication. ### Request Example ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/location/v1/provinces', qs: {province_name: 'SOME_STRING_VALUE'}, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ### Response #### Success Response (200) - **data** (array) - Contains a list of province objects. - **province_id** (string) - The unique identifier for the province. - **province_name** (string) - The name of the province. - **errors** (array) - Contains a list of error objects if any occurred. - **message** (string) - A message indicating the status of the request. - **request_id** (string) - A unique identifier for the request. - **status** (string) - The status of the request (e.g., "success"). - **status_code** (integer) - The HTTP status code of the response. - **timestamp** (string) - The timestamp when the request was processed. #### Response Example ```json { "data": [ { "province_id": "TtLQ8KONbg==", "province_name": "Jakarta" } ], "errors": [], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` ``` -------------------------------- ### Get Order Detail By Order Number Source: https://developer.everpro.id/ Get Order Detail By Order Number. This endpoint returns both order details and tracking information for the given order number. Order details include shipment information, addresses, package details, and pricing. Tracking information includes current status and tracking history of the shipment. ```APIDOC ## Get Order Detail By Order Number Get Order Detail By Order Number * This endpoint returns both order details and tracking information for the given order number * Order details include shipment information, addresses, package details, and pricing * Tracking information includes current status and tracking history of the shipment ##### Authorizations: _BearerToken_ ##### path Parameters order_number required| string Order Number (Client Order Number or Awb Number) ---|--- ### Responses **200** OK **400** Bad Request **401** Unauthorized **404** Not Found **500** Internal Server Error ## GET /shipment/v1/orders/{order_number} https://client-api-sandbox.everpro.id/shipment/v1/orders/{order_number} ### Request Example ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/orders/%7Border_number%7D', headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ``` -------------------------------- ### Get Sub-Districts with Query Parameters (Node.js) Source: https://developer.everpro.id/ Use this endpoint to retrieve sub-district information. You can filter by district ID, sub-district name, or postal code. Prioritizes district_id if all parameters are provided. Returns a 404 with an empty array if no results are found. ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/location/v1/sub-districts', qs: { district_id: 'SOME_STRING_VALUE', sub_district_name: 'SOME_STRING_VALUE', postal_code: 'SOME_STRING_VALUE' }, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` -------------------------------- ### Get Location Provinces Source: https://developer.everpro.id/ Retrieve a list of provinces. If a `province_name` is provided, the results will be filtered accordingly. ```APIDOC ## GET /location/v1/provinces ### Description Get List of Provinces. If `province_name` is empty, all provinces will be returned. If `province_name` is filled, results are filtered. ### Method GET ### Endpoint https://client-api-sandbox.everpro.id/location/v1/provinces ### Parameters #### Query Parameters - **province_name** (string) - Optional - Province name keyword. Minimum 3 Characters, Maximum 3 Characters, Must be alphabet. ### Responses #### Success Response (200) OK #### Error Responses **400** Bad Request **401** Unauthorized **404** Not Found **500** Internal Server Error ``` -------------------------------- ### Get Shipment Orders Source: https://developer.everpro.id/ Retrieves a list of shipment orders with various filtering and sorting options. ```APIDOC ## GET /shipment/v1/orders ### Description Retrieves a list of shipment orders. Supports filtering by date range, status, and other criteria, as well as pagination and sorting. ### Method GET ### Endpoint /shipment/v1/orders ### Parameters #### Query Parameters - **start_date** (string) - Optional - The start date for filtering orders. - **end_date** (string) - Optional - The end date for filtering orders. - **search** (string) - Optional - Search term for orders. - **status_id** (array) - Optional - Array of status IDs to filter by. - **filename** (string) - Optional - Filename for filtering. - **sort** (array) - Optional - Array of sorting parameters. - **page** (integer) - Optional - The page number for pagination. - **limit** (integer) - Optional - The number of items per page. ### Request Example ```javascript const request = require('request'); const options = { method: 'GET', url: 'https://client-api-sandbox.everpro.id/shipment/v1/orders', qs: { start_date: 'SOME_STRING_VALUE', end_date: 'SOME_STRING_VALUE', search: 'SOME_STRING_VALUE', status_id: 'SOME_ARRAY_VALUE', filename: 'SOME_STRING_VALUE', sort: 'SOME_ARRAY_VALUE', page: 'SOME_INTEGER_VALUE', limit: 'SOME_INTEGER_VALUE' }, headers: {Authorization: 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); ``` ### Response #### Success Response (200) - **data** (object) - Contains order details and pagination information. - **orders** (array) - List of shipment orders. - **awb_number** (string) - Air Waybill number. - **cashback** (number) - Cashback amount. - **client_order_no** (string) - Client's order number. - **cod_fee** (number) - Cash on Delivery fee. - **courier_detail** (string) - Courier service details. - **discount** (number) - Discount amount. - **height** (number) - Package height. - **insurance_price** (number) - Insurance cost. - **is_cod** (boolean) - Indicates if it's a COD shipment. - **is_cod_shipment_price_only** (boolean) - Indicates if only COD shipment price is applicable. - **is_request_cancel_order** (boolean) - Indicates if a cancellation request has been made. - **label_url** (string) - URL to the shipment label. - **length** (number) - Package length. - **length_unit** (string) - Unit of length (e.g., 'cm'). - **logistic_rate_type_id** (number) - Logistic rate type ID. - **order_date** (string) - Date the order was placed. - **order_reference_id** (string) - Reference ID for the order. - **package_desc** (string) - Description of the package. - **package_price** (number) - Price of the package. - **pickup_time** (number) - Timestamp for pickup. - **pickup_time_date** (string) - Date and time for pickup. - **pickup_time_range** (string) - Time range for pickup. - **receiver_address** (string) - Receiver's address. - **receiver_address_note** (string) - Additional notes for receiver's address. - **receiver_location_detail** (string) - Detailed receiver location. - **receiver_name** (string) - Receiver's name. - **receiver_phone_number** (string) - Receiver's phone number. - **shipment_order_no** (string) - Shipment order number. - **shipment_price** (number) - Shipment cost. - **shipment_type** (string) - Type of shipment (e.g., 'PICKUP'). - **shipper_address** (string) - Shipper's address. - **shipper_address_note** (string) - Additional notes for shipper's address. - **shipper_location_detail** (string) - Detailed shipper location. - **shipper_name** (string) - Shipper's name. - **shipper_phone_number** (string) - Shipper's phone number. - **shipping_note** (string) - Notes for shipping. - **status** (string) - Current status of the shipment. - **status_id** (number) - ID of the shipment status. - **total_cod** (number) - Total COD amount. - **total_cod_disbursement** (number) - Total COD disbursement amount. - **total_price** (number) - Total price of the shipment. - **weight** (number) - Package weight. - **weight_unit** (string) - Unit of weight (e.g., 'kg'). - **width** (number) - Package width. - **pagination** (object) - Pagination details. - **current_page** (number) - Current page number. - **last_page** (number) - Last page number. - **limit** (number) - Items per page limit. - **next** (number) - Next page number. - **per_page** (number) - Items per page. - **prev** (number) - Previous page number. - **total** (number) - Total number of items. - **errors** (array) - List of errors, if any. - **code** (string) - Error code. - **message** (string) - Error message. - **message** (string) - API response message. - **request_id** (string) - Unique ID for the request. - **status** (string) - Overall status of the API call. - **status_code** (number) - HTTP status code. - **timestamp** (string) - Timestamp of the API call. #### Response Example ```json { "data": { "orders": [ { "awb_number": "123456789", "cashback": 0, "client_order_no": "2022", "cod_fee": 0, "courier_detail": "JNE Regular", "discount": 0, "height": 1, "insurance_price": 1000, "is_cod": false, "is_cod_shipment_price_only": false, "is_request_cancel_order": false, "label_url": "/logistic/shipment_label/shipment_TRD000000000001EX_0143232100000188_label.pdf", "length": 1, "length_unit": "cm", "logistic_rate_type_id": 0, "order_date": "2020-03-16T00:00:00.000Z", "order_reference_id": "AlphaNumeric-Max255Character-SpecialCharacter-,./()\'", "package_desc": "baju", "package_price": 100000, "pickup_time": 1647417600, "pickup_time_date": "2020-03-16T08:00:00.000Z", "pickup_time_range": "15.00 - 18.0", "receiver_address": "Graha Indah", "receiver_address_note": "rumah", "receiver_location_detail": "Cempaka Putih Barat, Cempaka Putih, Jakarta Timur, Jakarta", "receiver_name": "Doe", "receiver_phone_number": "6285612345678", "shipment_order_no": "TRD000000000001EX", "shipment_price": 12000, "shipment_type": "PICKUP", "shipper_address": "Jl. Permata Visto 12", "shipper_address_note": "home", "shipper_location_detail": "Cengkareng Barat, Cengkareng, Jakarta Barat, Jakarta", "shipper_name": "John", "shipper_phone_number": "62812345567890", "shipping_note": "-", "status": "COMPLETED", "status_id": 500, "total_cod": 112000, "total_cod_disbursement": 0, "total_price": 112000, "weight": 1, "weight_unit": "kg", "width": 1 } ], "pagination": { "current_page": 0, "last_page": 0, "limit": 0, "next": 0, "per_page": 0, "prev": 0, "total": 0 } }, "errors": [], "message": "success create/get ...", "request_id": "019564e5-8ab3-7bbe-98dc-164750ec045e", "status": "success", "status_code": 200, "timestamp": "2022-04-14T05:55:35.006Z" } ``` ```