Endpoint URL
Staging | |
---|---|
Production | will be provided after SIT |
...
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Login and Get Session Token
|
Code Block | ||
---|---|---|
| ||
{ "Content-Type": "application/json" } |
Request Body
Field | Data type | Required | Description |
---|---|---|---|
string | yes | email credential | |
password | string | yes | password |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "email": "sandbox_dev@gmail.com", "password": "password" } |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "results": { "apiKey": "fb77c9653bf5e736d191b46bbfed7c2bd", "clientId": "SANDBOX_DEV", "sessionToken": "b45e2fb77c9653bf5e736d19e1fd18ebbffd0f6d3dd25af118e5eb38851bf4d" } } |
Field | Description |
---|---|
apiKey | Generated hash on client-side to be used on succeeding API request |
clientId | Reference Client ID |
sessionToken | Generated hash on every API login to be used on succeeding API requests. |
Info |
---|
|
Error Messages:
Invalid Email
Code Block | ||
---|---|---|
| ||
Status: 401 Unauthorized { "success": false, "results": "EMAIL_NOT_FOUND" } |
Invalid Password
Code Block | ||
---|---|---|
| ||
Status: 401 Unauthorized { "success": false, "results": "INVALID_PASSWORD" } |
Quota Limit Exceeded Error
Code Block | ||
---|---|---|
| ||
Status: 401 Unauthorized { "success": false, "results": "QUOTA_EXCEEDED : Exceeded quota for verifying passwords." } |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||
Login v2
Request Headers
Request Body
Sample Response
Error Messages:Invalid Email
Invalid Password
|
Expand | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
Get Partners
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" } |
Info |
---|
To use |
Query parameters (URL)
Login V1
Code Block |
---|
{ "apiKey": "<apiKey will be acquired on login API>" } |
Login V2
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "results": [ { "id": "SANDBOX_BUSINESS", "name": "Sandbox Business", "serviceType": "onDemand" }, { "id": "SANDBOX_QA", "name": "Sandbox_QA", "serviceType": "scheduled" } ] } |
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Get List of Areas
|
Code Block |
---|
{ "Auth-Token": "<Auth token acquired on api LOGIN>" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" } |
Info |
---|
To use |
Query parameters (URL)
Login V1
Code Block |
---|
{ "apiKey": "<apiKey will be acquired on login API>" } |
Login V2
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "results": [ { "id": "-KnmC5Y0pFYBquoDL1zo", "info": { "code": "A1", "name": "Area 1", "stores": [ "-LDnYzs1xbK-FeQ0VPFr" ] } } ] } |
Expand | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Get List of Stores/Hubs
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" } |
Info |
---|
To use |
Query parameters (URL)
Login V1
Code Block |
---|
{ "apiKey": "<apiKey will be acquired on login API>", "areaCode": "<area code acquired from getListOfAreas API>" } |
Login V2
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Code Block | ||
---|---|---|
| ||
{ "areaCode": "<area code acquired from getListOfAreas API>" } |
Sample URL
Code Block | ||
---|---|---|
| ||
https://us-central1-fleet-staging-2333a.cloudfunctions.net /getListOfStores?apiKey=7c5dd55738b964944f9357bcc7f45ce6d857ff18&areaCode=A1 |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "results": [ { "id": "-LDnYzs1xbK-FeQ0VPFr", "info": { "address": "7391 Building 9 Bakawan St. Corner Mayapis St., San Antonio Village, Makati, 1203 Metro Manila", "advanceStart": false, "code": "main_store", "default": true, "latitude": 14.5601823, "longitude": 121.00680469999998, "name": "Main Store", "province": "Metro Manila", "provinceKey": "MM" } } ], "total": 1 } |
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get Provider's Create Post v3 Template
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" } |
Info |
---|
To use |
Query parameters (URL)
Field | Required | Description | ||
---|---|---|---|---|
apiKey | yes | API key from login API
| ||
partnerId | yes | Client id of desired partner’s create post template and meta fields schema. Can be acquired through getPartners API | ||
isAutoReattempt | no | Set to true to get create post template of your configured auto reattempt providers. This will disregard the value of your partnerId if set to true. |
Sample Request
Code Block | ||
---|---|---|
| ||
https://us-central1-fleet-dev-ph.cloudfunctions.net/v3/getCreatePostTemplate?apiKey=7c5dd55738b964944f9357bcc7f45ce6d857ff18&partnerId=SANDBOX_DX |
Sample Response
Code Block | ||
---|---|---|
| ||
status: 200 OK! { "success": true, "result": { "requestBody": { "refNo": "", "pickupDetails": { "customerName": "", "contactNumber": "", "emailAddress": "", "lat": 0, "long": 0, "tags": [], "remarks": "", "barangay": "", "province": "", "postalCode": "", "pickupDateTime": "", "pickupAddress": "", "pickupCity": "" }, "deliveryDetails": { "customerName": "", "contactNumber": "", "emailAddress": "", "lat": 0, "long": 0, "tags": [], "remarks": "", "barangay": "", "province": "", "postalCode": "", "deliveryDateTime": "", "deliveryAddress": "", "deliveryCity": "", "itemDescription": "", "itemPrice": 0, "codAmount": 0, "productSize": "", "length": 0, "width": 0, "height": 0, "weight": 0, "metaFields": { "shipment": "" } } }, "metaFieldSchema": { "shipment": { "required": true, "type": "string", "description": "Shipment/Parcel Size", "values": [ "big-pouch", "box" ], "details": [ { "value": "big-pouch", "description": "Big Pouch (100 pesos within metro manila)" }, { "value": "box", "description": "Box" } ] } } } } |
Meta fields schema
Field | Data type | Description |
---|---|---|
type | string | data type of a meta field. Can either be object or string |
required | boolean | indicator if meta field is required |
description | string | description of a meta field |
values | array | options/values for the specified meta field |
details | array | in depth description of options/values |
properties | object | details for object type meta fields |
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get Quotation
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" } |
Info |
---|
To use |
Request Params
Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>", "partnerId": "<provider’s id, can be acquired on getPartners API >" } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Request Body
Field | Data type | Required | Description |
---|---|---|---|
pickup | object | yes | object for pickup address |
delivery | object | yes | object for delivery address |
Fields of pickup and delivery:
Field | Data Type | Required | Max Length | Description |
---|---|---|---|---|
province | string | yes | 60 | province |
city | string | yes | 60 | city |
barangay | string | no | 60 | barangay |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "pickup": { "province": "metro manila", "city": "pasig city", "barangay": "pinagbuhatan" }, "delivery": { "province": "rizal", "city": "cainta", "barangay": "san andres" } } |
Sample Response (Serviceable area)
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": { "destinations": [ "REGION 4-A" "NCR" ], "estimatedPickupDays": 3, "estimatedDeliveryDays": 6, "products": [ { "size": "L", "price": 165, "description": "12 x 18 x 2", "name": "Large Pouch", "length": 12, "width": 18, "height": 2, "weight": 3 }, { "size": "XL", "price": 310, "description": "18 x 12 x 9", "name": "Box", "length": 18, "width": 12, "height": 9, "weight": 6 } ] } } |
Sample Response (Not serviceable area)
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "result": "Pickup/delivery location is not serviceable by the selected provider." } |
Error Messages:
Missing Partner Id
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Missing partnerId. Please check your dashboard documentation." } |
Invalid Partner Id
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid partner id. Either it's not existing or you don't have rights to post to the partner." } |
Service type “On Demand”
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Price quotation is not yet available for on demand providers." } |
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Create Post v3
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
Query parameters (URL)
Code Block | ||
---|---|---|
| ||
{ "apiKey": "<REQUIRED, apiKey will be acquired on login API>", "partnerId": "<REQUIRED, preferred partner/provider, can be acquired on getPartners API>" } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Info |
---|
|
metaFields:
Meta fields are special fields requested by the provider that needs input from the customer.
To to get provider’s meta fields schema, see /getCreatePostTemplate API.
Request Body Fields:
Field | Data Type | Required | Max Length | Description |
---|---|---|---|---|
refNo | string | yes | 30 | reference number of post |
isDraft | boolean | no | n/a | set true to save post as draft. |
source | string | no | origin/source of post, can be one of the ff:
| |
isAutoReattempt | boolean | no | Set to true to assign as auto reattempt post. This will disregard the value of your partnerId on params if set to true. | |
businessStoreId | string | no | create a post by store/hub, empty string or null will assign to default store. see /getListOfStores API for the id. | |
pickupDetails | object | yes | object for pickup details | |
deliveryDetails | object | yes | object for delivery details | |
isPSGC | boolean | no | Set to true to receive PSGC address format |
Fields of pickupDetails
Field | Data Type | Required | Max Length | Description |
---|---|---|---|---|
senderName | string | yes | 80 | name of sender |
contactNumber | string | yes | 20 | contact number of sender. Must be a valid contact number |
emailAddress | string | no | 60 | email address of sender |
pickupDateTime | string | yes | n/a | date and time of pickup
|
pickupAddress | string | yes | 350 | pickup address |
pickupCity | string | yes | 60 | pickup city |
province | string | yes | 60 | pickup province |
barangay | string | no | 60 | pickup barangay note: not required but will affect the accuracy of identifying if the location is serviceable by the provider. |
postalCode | string | no | 10 | pickup postal code |
lat | number | yes (for onDemand providers) | n/a | latitude of pickup location |
long | number | yes (for onDemand providers) | longitude of pickup location | |
tags | array | no | list of tag id, can be get through getTags API | |
remarks | string | no | 350 | pickup remarks |
Fields of deliveryDetails
Field | Data Type | Required | Max Length | Description |
---|---|---|---|---|
recipientName | string | yes | 80 | name of recipient |
contactNumber | string | yes | 20 | contact number of receiver. Must be a valid number |
emailAddress | string | no | 60 | email address of receiver |
deliveryDateTime | string | yes | n/a | date and time of deliver. |
deliveryAddress | string | yes | 350 | delivery address |
deliveryCity | string | yes | 60 | delivery city |
province | string | yes | 60 | delivery province |
barangay | string | no | 60 | delivery barangay note: not required but will affect the accuracy of identifying if the location is serviceable by the provider. |
postalCode | string | no | 10 | delivery postal code |
lat | number | yes (for onDemand providers) | n/a | latitude of delivery location |
long | number | yes (for onDemand providers) | longitude of delivery location | |
tags | array | no | list of tag id, can be get through getTags API. | |
itemDescription | string | no | 350 | Details about the item/product. e.g. Item name, quantity etc. |
remarks | string | no | 350 | delivery remarks |
productSize | string | yes (for scheduled providers) | n/a | product/parcel size can be one of the following: |
length | number | no | length measurement of an item in inches | |
width | number | no | length measurement of an item in inches | |
height | number | no | length measurement of an item in inches | |
weight | number | no | weight measurement of an item in kilograms | |
metaFields | object | no | metaFields to fulfill provider’s required fields | |
quantity | number | no | 5 | quantity |
items | array | no | list of item details. | |
declaredValue | number | no | 15 | declared item price |
codAmount | number | no | 15 | cash on delivery amount |
Fields of items
Field | Data Type | Required | Max Length | Description |
---|---|---|---|---|
name | string | yes | 350 | item name |
quantity | number | no | 5 | item quantity |
unitPrice | number | no | 8 | item unit price |
declaredValue | number | no | 15 | item declared unit price |
dimensions | object | no | n/a | item dimensions |
Fields of dimensions
Field | Data Type | Required | Description |
---|---|---|---|
length | number | no | item length in inches |
width | number | no | item width in inches |
height | number | no | item height in inches |
breadth | number | no | item breadth in inches |
depth | number | no | item depth in inches |
weight | number | no | item weight in kilograms |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "refNo": "order-001", "businessStoreID": "", "isPSGC": false, "isAutoReattempt": false, "pickupDetails": { "senderName": "Christian Pick up", "contactNumber": "09123456789", "emailAddress": "a@gmail.com", "pickupDateTime": "2020-09-29T21:05", "pickupAddress": "536 Calbayog St. Highway Hills Mandaluyong City", "pickupCity": "Mandaluyong City", "province": "Metro Manila", "barangay": "Highway Hills", "postalCode": "1556", "lat": 14.5776292, "long": 121.0463673, "tags": [], "remarks": "my remarks" }, "deliveryDetails": { "recipientName": "Christian Delivery", "contactNumber": "09123456789", "emailAddress": "a@email.com", "deliveryDateTime": "2020-09-29T22:06", "deliveryAddress": "Vermont Royale, Antipolo", "deliveryCity": "Antipolo", "province": "Rizal", "barangay": "San Roque", "postalCode": "1870", "declaredValue": 200, "productSize": "L", "width": 0, "height": 0, "length": 10, "weight": 0, "codAmount": 250, "lat": 14.5776292, "long": 121.0463673, "tags": [], "itemDescription": "Brand New Phone X", "remarks": "Please handle with care. Ask the guards for direction.", "metaFields": {}, "quantity": 50, "items": [{ "name": "Sample item 1", "quantity": 10, "unitPrice":20.00, "declaredValue":5, "dimensions":{ "length":2.55, "width":1.56, "height":1.28, "breadth":5.29, "depth":2.41, "weight":1.51 } }, { "name": "Sample item 2", "quantity": 15, "unitPrice":140.34, "declaredValue":500.55, "dimensions":{ "length":2.55, "width":1.56, "height":1.28, "breadth":5.29, "depth":2.41, "weight":1.51 } }, { "name": "Sample item 3", "quantity": 100, "unitPrice":120.23, "declaredValue":500.55, "dimensions":{ "length":2.55, "width":1.56, "height":1.28, "breadth":5.29, "depth":2.41, "weight":1.51 } } ] } } |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "message": "Job posted on marketplace", "result": { "postId": "3nHfPLXUGWYhlQ5TcNva", "customerName": "Christian Pick up", "contactNumber": "09123456789", "emailAddress": "a@gmail.com", "completionDateTime": 1601384700000, "pickupAddress": "536 Calbayog St. Highway Hills Mandaluyong City", "pickupCity": "Mandaluyong City", "province": "Metro Manila", "barangay": "Highway Hills", "postalCode": "1556", "lat": 14.5776292, "long": 121.0463673, "tags": [ "-LI4Qgef9HIHhb2AzGzW", "-LK5fMS1u-Qsv-G1tc9l" ], "metaTags": "{\"-LI4Qgef9HIHhb2AzGzW\":{\"colorIndex\":1,\"label\":\"API\"},\"-LK5fMS1u-Qsv-G1tc9l\":{\"colorIndex\":4,\"label\":\"Pick-up\"}}", "storeName": "", "details": "", "remarks": "my remarks", "transactions": [], "attempts": {}, "approximateShippingFee": 115, "billableShippingFee": 0, "actualShippingFee": 0, "finalShippingFee": 0, "metaState": "", "lastUpdateRemarks": "", "businessId": "DRINKKA", "businessName": "Drinkka_DEMO", "businessStoreId": null, "storeId": null, "courierName": "Sandbox_DX", "createdAt": 1601372523479, "partnerId": "SANDBOX_DX", "refNo": "order-001", "status": "ASSIGNED", "meta": "{\"customerName\":\"Christian Delivery\",\"contactNumber\":\"09123456789\",\"emailAddress\":\"a@email.com\",\"completionDateTime\":1601388360000,\"deliveryAddress\":\"Vermont Royale, Antipolo\",\"deliveryCity\":\"Antipolo\",\"province\":\"Rizal\",\"barangay\":\"San Roque\",\"postalCode\":\"1870\",\"itemPrice\":200,\"dimension\":{\"length\":10,\"width\":0,\"height\":0},\"codAmount\":250,\"lat\":14.5776292,\"long\":121.0463673,\"tags\":[\"-LI4Qgef9HIHhb2AzGzW\",\"-LK5fK2Pq--uEhN4T9UG\"],\"metaTags\":\"{\\\"-LI4Qgef9HIHhb2AzGzW\\\":{\\\"colorIndex\\\":1,\\\"label\\\":\\\"API\\\"},\\\"-LK5fK2Pq--uEhN4T9UG\\\":{\\\"colorIndex\\\":3,\\\"label\\\":\\\"Delivery\\\"}}\",\"details\":\"Brand New Phone X\",\"remarks\":\"Please handle with care. Ask the guards for direction.\",\"trackingNumber\":\"\",\"trackingUrl\":\"\",\"weight\":0}", "metaFields": {}, "items": [ { "name": "Sample item 1", "quantity": 10, "unitPrice": 20, "declaredValue": 5, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } }, { "name": "Sample item 2", "quantity": 15, "unitPrice": 140.34, "declaredValue": 500.55, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } }, { "name": "Sample item 3", "quantity": 100, "unitPrice": 120.23, "declaredValue": 500.55, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } } ] } } |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "refNo": "order-001", "businessStoreID": "", "isPSGC": true, "isAutoReattempt": false, "pickupDetails": { "senderName": "Christian Pick up", "contactNumber": "09123456789", "emailAddress": "a@gmail.com", "pickupDateTime": "2020-09-29T21:05", "pickupAddress": "536 Calbayog St. Highway Hills Mandaluyong City", "pickupCity": "Mandaluyong City", "province": "Metro Manila", "barangay": "Highway Hills", "postalCode": "1556", "lat": 14.5776292, "long": 121.0463673, "tags": [], "remarks": "my remarks" }, "deliveryDetails": { "recipientName": "Christian Delivery", "contactNumber": "09123456789", "emailAddress": "a@email.com", "deliveryDateTime": "2020-09-29T22:06", "deliveryAddress": "Vermont Royale, Antipolo", "deliveryCity": "Antipolo", "province": "Rizal", "barangay": "San Roque", "postalCode": "1870", "declaredValue": 200, "productSize": "L", "width": 0, "height": 0, "length": 10, "weight": 0, "codAmount": 250, "lat": 14.5776292, "long": 121.0463673, "tags": [], "itemDescription": "Brand New Phone X", "remarks": "Please handle with care. Ask the guards for direction.", "metaFields": {}, "items": [{ "name": "Sample item 1", "quantity": 10, "unitPrice":20.00, "declaredValue":5, "dimensions":{ "length":2.55, "width":1.56, "height":1.28, "breadth":5.29, "depth":2.41, "weight":1.51 } }, { "name": "Sample item 2", "quantity": 15, "unitPrice":140.34, "declaredValue":500.55, "dimensions":{ "length":2.55, "width":1.56, "height":1.28, "breadth":5.29, "depth":2.41, "weight":1.51 } }, { "name": "Sample item 3", "quantity": 100, "unitPrice":120.23, "declaredValue":500.55, "dimensions":{ "length":2.55, "width":1.56, "height":1.28, "breadth":5.29, "depth":2.41, "weight":1.51 } } ] } } |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "message": "Job posted on marketplace", "result": { "postId": "3nHfPLXUGWYhlQ5TcNva", "customerName": "Christian Pick up", "contactNumber": "09123456789", "emailAddress": "a@gmail.com", "completionDateTime": 1601384700000, "pickupAddress": "536 Calbayog St. Highway Hills Mandaluyong City", "pickupCity": "CITY OF MANDALUYONG", "province": "SECOND DISTRICT", "barangay": "HIGHWAY HILLS", "postalCode": "1556", "lat": 14.5776292, "long": 121.0463673, "tags": [ "-LI4Qgef9HIHhb2AzGzW", "-LK5fMS1u-Qsv-G1tc9l" ], "metaTags": "{\"-LI4Qgef9HIHhb2AzGzW\":{\"colorIndex\":1,\"label\":\"API\"},\"-LK5fMS1u-Qsv-G1tc9l\":{\"colorIndex\":4,\"label\":\"Pick-up\"}}", "storeName": "", "details": "", "remarks": "my remarks", "transactions": [], "attempts": {}, "approximateShippingFee": 115, "billableShippingFee": 0, "actualShippingFee": 0, "finalShippingFee": 0, "metaState": "", "lastUpdateRemarks": "", "businessId": "DRINKKA", "businessName": "Drinkka_DEMO", "businessStoreId": null, "storeId": null, "courierName": "Sandbox_DX", "createdAt": 1601372523479, "partnerId": "SANDBOX_DX", "refNo": "order-001", "status": "ASSIGNED", "meta": "{\"customerName\":\"Christian Delivery\",\"contactNumber\":\"09123456789\",\"emailAddress\":\"a@email.com\",\"completionDateTime\":1601388360000,\"deliveryAddress\":\"Vermont Royale, Antipolo\",\"deliveryCity\":\"CITY OF ANTIPOLO\",\"province\":\"RIZAL\",\"barangay\":\"SAN ROQUE\",\"postalCode\":\"1870\",\"itemPrice\":200,\"dimension\":{\"length\":10,\"width\":0,\"height\":0},\"codAmount\":250,\"lat\":14.5776292,\"long\":121.0463673,\"tags\":[\"-LI4Qgef9HIHhb2AzGzW\",\"-LK5fK2Pq--uEhN4T9UG\"],\"metaTags\":\"{\\\"-LI4Qgef9HIHhb2AzGzW\\\":{\\\"colorIndex\\\":1,\\\"label\\\":\\\"API\\\"},\\\"-LK5fK2Pq--uEhN4T9UG\\\":{\\\"colorIndex\\\":3,\\\"label\\\":\\\"Delivery\\\"}}\",\"details\":\"Brand New Phone X\",\"remarks\":\"Please handle with care. Ask the guards for direction.\",\"trackingNumber\":\"\",\"trackingUrl\":\"\",\"weight\":0}", "metaFields": {}, "items": [ { "name": "Sample item 1", "quantity": 10, "unitPrice": 20, "declaredValue": 5, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } }, { "name": "Sample item 2", "quantity": 15, "unitPrice": 140.34, "declaredValue": 500.55, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } }, { "name": "Sample item 3", "quantity": 100, "unitPrice": 120.23, "declaredValue": 500.55, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } } ] } } |
Error Messages:
Invalid Request Parameter
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid Request Parameter. Check your dashboard documentation", "result": { "pickupDetails": { "customerName": "Required field.", "contactNumber": "Required field.", "province": "Required field.", "pickupDateTime": "Invalid data type. Must be in string", "pickupAddress": "Required field.", "pickupCity": "Required field." }, "deliveryDetails": { "customerName": "Required field.", "contactNumber": "Required field.", "province": "Required field.", "deliveryDateTime": "Invalid data type. Must be in string", "deliveryAddress": "Required field.", "deliveryCity": "Required field.", "itemDescription": "Invalid data type. Must be in string", "productSize": "Invalid data type. Must be in string", "width": "Invalid data type. Must be in number", "height": "Invalid data type. Must be in number", "length": "Invalid data type. Must be in number", "weight": "Invalid data type. Must be in number", "metaFields": { "shipment": "Required field." } } } } Status: 400 Bad Request { "success": false, "message": "Invalid Request Parameter. Check your dashboard documentation", "result": { "pickupDetails": { "customerName": "Maximum length exceeded.", "contactNumber": "Invalid format.", "emailAddress": "Maximum length exceeded.", "remarks": "Maximum length exceeded.", "barangay": "Maximum length exceeded.", "province": "Maximum length exceeded.", "postalCode": "Maximum length exceeded.", "pickupAddress": "Maximum length exceeded.", "pickupCity": "Maximum length exceeded." }, "deliveryDetails": { "customerName": "Maximum length exceeded.", "contactNumber": "Invalid format.", "emailAddress": "Maximum length exceeded.", "remarks": "Maximum length exceeded.", "barangay": "Maximum length exceeded.", "province": "Maximum length exceeded.", "postalCode": "Maximum length exceeded.", "deliveryAddress": "Maximum length exceeded.", "deliveryCity": "Maximum length exceeded.", "itemDescription": "Maximum length exceeded." } } } |
Missing Partner ID
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Missing partnerId. Please check your dashboard documentation." } |
Invalid Partner ID
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid partner id. Either it's not existing or you don't have rights to post to the partner." } |
Invalid business store id
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid store ID. Check your storeId. Remove storeId to use default store." } |
Invalid pickup/delivery date and time.
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Pickup/delivery date and time must be greater than the current time." } Status: 400 Bad Request { "success": false, "message": "Delivery date and time must be greater than the pickup time." } |
Missing coordinates for on demand providers.
Code Block |
---|
{ "success": false, "message": "Pickup/delivery latitude and longitude is required for on demand providers." } |
Invalid pickup/delivery location.
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid pickup location." } Status: 400 Bad Request { "success": false, "message": "Invalid delivery location." } |
Not Serviceable
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Pickup location is not serviceable by the provider." } Status: 400 Bad Request { "success": false, "message": "Delivery location is not serviceable by the provider." } Status: 400 Bad Request { "success": false, "message": "Pickup and delivery location is not serviceable by the provider." } |
If isPSGC is false and field pickup/delivery address is in PSGC format
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid pickup location." } Status: 400 Bad Request { "success": false, "message": "Invalid delivery location." } |
Product
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Product size not available for the designated service area." } |
Auto Reattempt
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "No auto re-attempt settings configured in your Deliveries PH Web account." } |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Update Post Status
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
URL Query parameters
Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>" } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Request Body Fields
Field | Data Type | Required | Description |
---|---|---|---|
postId | string | yes | ID of post to update. |
status | string | yes | status to update |
remarks | string | no | update remarks from provider |
timeStamp | number | no | timestamp in milliseconds. Leave 0, null or empty string to use current server timestamp. |
metaState | string | no | custom status/state from provider |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "postId": "uuNzkYoOy1VI373BoKY9", "status": "START_DELIVERY", "remarks": "Rider is on his way", "timeStamp": 1575890011178, "metaState": "" } |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "message": "Post successfully updated." } |
Status Updates:
Status | Is substatus? | Description |
| No | this can only be triggered in web if business or customers assign a post/an opportunity to provider |
| No | this can only be triggered through manual accept in their DPH account or |
if AUTO ACCEPT is toggled on, post will automatically be accepted | ||
| No | this can only be triggered through manual reject in their DPH account and is returned in /getpost as “MPREJECTED” |
| No | Provider is assigning a rider for the order. For on-demand providers only. |
| Yes, under “STARTED” main status | Order is for pickup |
| Yes, under “STARTED” main status | Order has been picked up |
| Yes, under “STARTED” main status | Courier has successfully delivered order to hub. For scheduled providers only. |
| Yes, under “STARTED” main status | Order is out for delivery |
| No | Order has been delivered |
| No | Failed to pickup order |
| No | Failed to deliver order |
| No | Failed to return order |
| No | Cancel order |
| No | Order is out for return |
| No | Order has been returned to sender |
| No | Push an event update on job history without updating the status of the post. Please fill up the remarks field. |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get Post
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
URL Parameters (Query Parameters)
Parameter | Required | Description | ||
---|---|---|---|---|
apiKey | yes | API key from Login API
| ||
postId | no | Filter by post id, leave empty or remove postId parameter to query all | ||
partnerId | no | Filter by partner id, leave empty or remove partnerId parameter to query all | ||
type | no | Post type which can be either of the following:
Defaults to opportunity if empty or undefined. | ||
status | no | Filter by status. Set to | ||
businessStoreId | no | Filter by store/hub. | ||
isPSGC | no | Set to true to receive PSGC address format |
Sample URL Parameters
Code Block | ||
---|---|---|
| ||
{ "apiKey": "fb77c9653bf5e736d191b46bbfed7c2bd", "postId": "uuNzkYoOy1VI373BoKY9", "partnerId": "SANDBOX_DX", "isPSGC": false } |
Sample Response:
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": [ { "postId": "uuNzkYoOy1VI373BoKY9", "customerName": "Christian Pick up", "contactNumber": "09123456789", "emailAddress": "a@gmail.com", "completionDateTime": 1583836200000, "pickupAddress": "Sitio barrio, Angeles Pampanga Philippines", "pickupCity": "Mandaluyong City", "province": "Metro Manila", "lat": 14.5776292, "long": 121.0463673, "tags": [ "-LI4Qgef9HIHhb2AzGzW", "-LK5fMS1u-Qsv-G1tc9l" ], "metaTags": "{\"-LI4Qgef9HIHhb2AzGzW\":{\"colorIndex\":1,\"label\":\"API\"},\"-LK5fMS1u-Qsv-G1tc9l\":{\"colorIndex\":4,\"label\":\"Pick-up\"}}", "storeName": "", "remarks": "my remarks", "businessId": "SANDBOX_DEV", "businessName": "Sandbox_Dev", "businessStoreId": null, "storeId": null, "courierName": "Sandbox_DX", "createdAt": 1583381948826, "partnerId": "SANDBOX_DX", "refNo": "order-001", "status": "STARTED", "isAutoReattempt": true, "subStatus": "DONE_PICKUP", "meta": "{\"customerName\":\"Christian Delivery\",\"contactNumber\":\"09123456789\",\"emailAddress\":\"a@gmail.com\",\"completionDateTime\":1583928900000,\"deliveryAddress\":\"Vermont Royale, Antipolo\",\"deliveryCity\":\"Antipolo\",\"province\":\"Rizal\",\"itemPrice\":200,\"dimension\":\"fff\",\"actualShippingCost\":50,\"codAmount\":250,\"lat\":14.5776292,\"long\":121.0463673,\"tags\":[\"-LI4Qgef9HIHhb2AzGzW\",\"-LK5fK2Pq--uEhN4T9UG\"],\"details\":\"my details\",\"remarks\":\"my remarks\",\"metaTags\":\"{\\\"-LI4Qgef9HIHhb2AzGzW\\\":{\\\"colorIndex\\\":1,\\\"label\\\":\\\"API\\\"},\\\"-LK5fK2Pq--uEhN4T9UG\\\":{\\\"colorIndex\\\":3,\\\"label\\\":\\\"Delivery\\\"}}\"}", "metaFields": {}, "items": [ { "name": "Sample item1", "quantity": 10, "unitPrice": 20, "declaredValue": 5, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } }, { "name": "Sample item2", "quantity": 15, "unitPrice": 140.34, "declaredValue": 500.55, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } }, { "name": "Sample item3", "quantity": 100, "unitPrice": 120.23, "declaredValue": 500.55, "dimensions": { "length": 2.55, "width": 1.56, "height": 1.28, "breadth": 5.29, "depth": 2.41, "weight": 1.51 } } ] } ] } |
Sample URL Parameters:
Code Block | ||
---|---|---|
| ||
{ "apiKey": "fb77c9653bf5e736d191b46bbfed7c2bd", "postId": "uuNzkYoOy1VI373BoKY9", "partnerId": "SANDBOX_DX" "isPSGC": true } |
Sample Response:
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": [ { "postId": "uuNzkYoOy1VI373BoKY9", "customerName": "Christian Pick up", "contactNumber": "09123456789", "emailAddress": "a@gmail.com", "completionDateTime": 1583836200000, "pickupAddress": "Sitio barrio, Angeles Pampanga Philippines", "pickupCity": "CITY OF MANDALUYONG", "province": "SECOND DISTRICT", "lat": 14.5776292, "long": 121.0463673, "tags": [ "-LI4Qgef9HIHhb2AzGzW", "-LK5fMS1u-Qsv-G1tc9l" ], "metaTags": "{\"-LI4Qgef9HIHhb2AzGzW\":{\"colorIndex\":1,\"label\":\"API\"},\"-LK5fMS1u-Qsv-G1tc9l\":{\"colorIndex\":4,\"label\":\"Pick-up\"}}", "storeName": "", "remarks": "my remarks", "businessId": "SANDBOX_DEV", "businessName": "Sandbox_Dev", "businessStoreId": null, "storeId": null, "courierName": "Sandbox_DX", "createdAt": 1583381948826, "partnerId": "SANDBOX_DX", "refNo": "order-001", "status": "ACCEPTED", "isAutoReattempt": true, "subStatus":, "meta": "{\"customerName\":\"Christian Delivery\",\"contactNumber\":\"09123456789\",\"emailAddress\":\"a@gmail.com\",\"completionDateTime\":1583928900000,\"deliveryAddress\":\"Vermont Royale, Antipolo\",\"deliveryCity\":\"CITY OF ANTIPOLO\",\"province\":\"RIZAL\",\"itemPrice\":200,\"dimension\":\"fff\",\"actualShippingCost\":50,\"codAmount\":250,\"lat\":14.5776292,\"long\":121.0463673,\"tags\":[\"-LI4Qgef9HIHhb2AzGzW\",\"-LK5fK2Pq--uEhN4T9UG\"],\"details\":\"my details\",\"remarks\":\"my remarks\",\"metaTags\":\"{\\\"-LI4Qgef9HIHhb2AzGzW\\\":{\\\"colorIndex\\\":1,\\\"label\\\":\\\"API\\\"},\\\"-LK5fK2Pq--uEhN4T9UG\\\":{\\\"colorIndex\\\":3,\\\"label\\\":\\\"Delivery\\\"}}\"}", "metaFields": {} }, ] } |
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Update Fee
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
Query parameters (URL)
Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>" } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Request Body Fields
Field | Data Type | Required | Description |
---|---|---|---|
postId | string | yes | ID of post to be updated. |
remarks | string | no | short description or remarks of the update |
fees | array | yes | breakdown of fees |
Fees object fields
Field | Data Type | Required | Description |
---|---|---|---|
value | number | yes | amount of fee |
type | string | yes | type of fee, must be of the following:
|
Info |
---|
|
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "postId": "Wq9FPWxCYVxNgrPrn08D", "remarks": "Shipping fee from upon booking.", "fees": [ { "value": 100, "type": "shipping" }, { "value": 20, "type": "insurance" } ] } |
Sample Response
Code Block | ||
---|---|---|
| ||
status: 200 OK! { "success": true, "result": "Post successfully updated." } |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Update Meta Fields v2
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
Query parameters (URL)
Code Block |
---|
{ "apiKey": "<apiKey will be acquired on login API>" } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Request Body Fields
Field | Data Type | Required | Description |
---|---|---|---|
postId | string | yes | id of post to update. |
trackingNumber | string | no | tracking number |
trackingUrl | string | no | tracking URL |
Info |
---|
|
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "postId": "uuNzkYoOy1VI373BoKY9", "pickup": { "trackingNumber": "ORDER-001-PIC-ASV", "trackingUrl": "https://trackmyorder.com/track?id=ORDER-001-PIC-ASV" }, "delivery": { "trackingNumber": "ORDER-001-DEL-ASV", "trackingUrl": "https://trackmyorder.com/track?id=ORDER-001-DEL-ASV" } } |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "message": "Post successfully updated." } |
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get Available Partners
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
Request Params
Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>", } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Request Body
Field | Data type | Required | Description |
---|---|---|---|
serviceType | string | yes | can be any of the following: |
pickup | object | yes | object for pickup address |
delivery | object | yes | object for delivery address |
dimensions | object | no | object for dimensions |
weight | number | no | weight measurement of an item in kilograms |
Fields of pickup and delivery:
Field | Data Type | Required | Max Length | Description |
---|---|---|---|---|
province | string | yes | 60 | province |
city | string | yes | 60 | city |
barangay | string | no | 60 | barangay |
Fields of dimensions:
Field | Data Type | Required | Description |
---|---|---|---|
length | number | no | length measurement of an item in inches |
width | number | no | length measurement of an item in inches |
height | number | no | length measurement of an item in inches |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "serviceType": "Scheduled", "pickup": { "province": "metro manila", "city": "quezon city", "barangay": "Katipunan" }, "delivery": { "province": "rizal", "city": "antipolo city", "barangay": "san juan" }, "dimensions": { "length": 100, "width": 18, "height": 6 }, "weight": 5 } |
Sample Response (Serviceable area)
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": [ { "id": "SANDBOX_DX", "serviceType": "scheduled", "serviceableAreas": [ { "pickup": { "province": "METRO MANILA", "city": "QUEZON CITY", "barangay": "KATIPUNAN" } }, { "delivery": { "province": "RIZAL", "city": "ANTIPOLO CITY", "barangay": "SAN JUAN" } } ], "estimatedDeliveryDays": 5, "destinations": [ "NCR", "REGION 4-A" ], "products": [ { "size": "L", "price": 200, "weight": 20 } ] }, { "id": "SANDBOX_PROVIDER", "serviceType": "scheduled", "serviceableAreas": [ { "pickup": { "province": "METRO MANILA", "city": "QUEZON CITY", "barangay": "KATIPUNAN" } }, { "delivery": { "province": "RIZAL", "city": "ANTIPOLO CITY", "barangay": "SAN JUAN" } } ], "estimatedDeliveryDays": 9, "destinations": [ "REGION 4-A", "NCR" ], "products": [ { "size": "XL", "price": 300, "weight": 6 } ] } ] } |
Sample Response (Non Serviceable Area)
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": [] } |
Error Messages:
Invalid Delivery Location
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid delivery location" } |
Invalid Pickup Location
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": "Invalid pickup location" } |
Service type “onDemand”
Code Block | ||
---|---|---|
| ||
Status: 400 Bad Request { "success": false, "message": ""The Service Type: On Demand is currently NOT available for this endpoint. } |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get On Demand Quotation
|
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Login V2
Info |
---|
As an alternative, “x-access-token” for our login v2 can be used instead of using the “auth-token” for our login v1. Value for it will be “Bearer {{accessToken}}“. See below: |
Code Block |
---|
{ "x-access-token": "Bearer <Access token acquired on api LOGIN V2>" "Content-Type": "application/json" } |
Info |
---|
To use |
Query parameters (URL)
Code Block |
---|
{ "apiKey": "<apiKey will be acquired on login API>" } |
Info |
---|
There is no need to define the apiKey in the parameters for our LoginV2. |
Request Body Fields
Field | Data Type | Required | Description |
---|---|---|---|
couriers | array | yes | Array of provider. Empty array will return all on demand provider quote.
|
pickup_province | string | yes | Pickup Province |
localeKey | string | yes | Default value: “en_PH“ |
string | yes | Pickup Full Name | |
pickup.phone | string | yes | Pickup Contact Number |
pickup.address | string | yes | Pickup Address |
pickup.lat | number | yes | Pickup Latitude |
pickup.long | number | yes | Pickup Longitude |
string | yes | Delivery Full Name | |
delivery.phone | string | yes | Delivery Contact Number |
delivery.address | string | yes | Delivery Address |
delivery.lat | number | yes | Delivery Latitude |
delivery.long | number | yes | Delivery Longitude |
remarks | string | no | Remarks |
scheduleAt | number | yes | Date and Time in milliseconds |
serviceType | string | yes |
|
dimensions.height | number | yes | Height of package in inches |
dimensions.width | number | yes | Width of package in inches |
dimensions.depth | number | yes | Depth of package in inches |
dimensions.weight | number | yes | Weight of package in kilograms |
Sample Request Body
Code Block | ||
---|---|---|
| ||
{ "couriers": ["grab", "lalamove"], "pickup_province": "Metro Manila", "data": { "localeKey": "en_PH", "pickup": { "name": "Mariel Quibal", "phone": "09561441650", "address": "San agustine ave blk 2 lot 41 Asilo Ville Pinagbuhatan Pasig City Metro Manila", "lat": 14.559774, "long": 121.086519 }, "delivery": { "name": "Mara Quibal", "phone": "09561441650", "address": "Unit 802, EcoTower, 32nd Street corner 9th Avenue, BGC, Taguig, 1634 Metro Manila", "lat": 14.5528425, "long": 121.0518742 }, "remarks": "sample remarks", "scheduleAt": 1613566801000, "vehicleType": "MOTORCYCLE", "dimensions": { "height": 5, "width": 5, "depth": 5, "weight": 5 } } } |
Sample Response
Code Block | ||
---|---|---|
| ||
{ "success": true, "result": [ { "courier": "GRAB", "error": "Bad Input" }, { "courier": "LALAMOVE", "rate": 113, "vehicleType": "MOTORCYCLE" } ] } |
Expand | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
Refresh Token
Request Headers
Request Body
Sample Request body
Sample Response
No Refresh token defined
|
...
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Is substatus?
| |||||||||||||||||||||||||||||||||||||||||||||||||
No this can only be triggered in web if business or customers assign a post/an opportunity to provider
No this can only be triggered through manual accept in their DPH account or if AUTO ACCEPT is toggled on, post will automatically be accepted
No this can only be triggered through manual reject in their DPH account and is returned in /getpost as “MPREJECTED”
No Provider is assigning a rider for the order. For on-demand providers only.
Yes, under “STARTED” main status Order is for pickup
Yes, under “STARTED” main status Order has been picked up
Yes, under “STARTED” main status Courier has successfully delivered order to hub. For scheduled providers only.
Yes, under “STARTED” main status Order is out for delivery
No Order has been delivered
No Failed to pickup order
No Failed to deliver order
No Failed to return order
No Cancel order
No Order is out for return
No Order has been returned to sender
No Push an event update on job history without updating the status of the post. Please fill up the remarks field. |
Responses (Success and Errors)
...
Status
...
Message
...
Description
...
200
...
OK
...
Success
...
400
Request Headers
URL Query parameters
Sample Request Body
Sample Response
|
...
List of Statuses
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Responses (Success and Errors)
Status | Message | Description |
---|---|---|
200 | OK | Success |
400 | Bad Request | We could not understand the request due to invalid syntax or invalid parameters. |
401 | Unauthorized | Your apiKey can be missing or invalid. Your auth-token is not valid or may have already expired. |
500 | Internal Server Error | Unhandled exception. Please contact the production team when you encounter this error. |
...
title | Cancel Post API (On Demand) |
---|
...
Description
...
To cancel post via API
...
Endpoint
...
/v3/cancelPost
...
Method
...
POST
Request Headers
Code Block |
---|
Content-Type: application/json
auth-token": "<Auth token acquired on api LOGIN>" |
URL Query parameters
Code Block | ||
---|---|---|
| ||
{
"apiKey": "<apiKey will be acquired on login API>"
} |
Sample Request Body
Code Block |
---|
{
"trackingNumber": "720664",
"postId": "ubyhvwENm8VRbsMPDGFg",
"courierId": "SANDBOX_DX"
} |
...
Key
...
Required
...
Description
...
trackingNumber
...
yes
...
Tracking Number of provider
...
postId
...
yes
...
Post Id of order
...
courierId
...
yes
...
Provider of the order
Sample Response
...