...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Staging:
Production:
Info |
---|
Will be provided after SIT. |
...
title | 1. Login and Get Session |
---|
...
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. |
Expand | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
Get Partners
|
Code Block | ||
---|---|---|
| ||
{
"Auth-Token": "<Auth token acquired on api LOGIN>"
} |
URL Query parameters
Code Block |
---|
{
"apiKey": "<apiKey will be acquired on login API>"
} |
Sample Response
Code Block | ||
---|---|---|
| ||
Status: 200 OK!
{
"success": true,
"results": [
{
"id": "SANDBOX_BUSINESS",
"name": "Sandbox Business"
},
{
"id": "SANDBOX_QA",
"name": "Sandbox_Qa"
}
]
} |
Expand | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
Get List of Areas
|
Code Block |
---|
{
"Auth-Token": "<Auth token acquired on api LOGIN>"
} |
Query parameters (URL)
Code Block |
---|
{
"apiKey": "<apiKey will be acquired on login API>"
} |
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
| bUSINESS |
Status | ||||
---|---|---|---|---|
|
Description: To acquire authorization token.
Endpoint: /login
Method: POST
Request Headers:
|
Description | To get the list of stores/hubs |
---|---|
Endpoint | /getListOfStores |
Method | GET |
Request Headers
Code Block |
---|
{ "ContentAuth-TypeToken": "application/json<Auth token acquired on api LOGIN>" } |
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:
Query parameters (URL)
Code Block | ||
---|---|---|
| ||
{
"apiKey": "<apiKey will be acquired on login API>",
"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": [ { { "apiKey": "fb77c9653bf5e736d191b46bbfed7c2bd", "clientIdid": "SANDBOX_DEV-LDnYzs1xbK-FeQ0VPFr", "sessionToken": "b45e2fb77c9653bf5e736d19e1fd18ebbffd0f6d3dd25af118e5eb38851bf4d" } } |
Field
Description
apiKey
generated hash on client-side to be pass for succeeding request
clientId
client ID reference
sessionToken
generated hash on every API login to be pass for succeeding request. Expires after 20 minutes.
title | 2. Get Partners |
---|
Get Partners
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
Endpoint: /getPartners
Method: GET
Description: To get the list of your preferred partners.
Request Headers:
Code Block |
---|
{
"Auth-Token": "<Auth token acquired on api LOGIN>"
} |
Query parameters (URL):
Code Block |
---|
{
"apiKey": "<apiKey will be acquired on login API>"
} |
Sample Response:
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "results": [ { "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, "idlongitude": "SANDBOX_BUSINESS",121.00680469999998, "name": "SandboxMain Business"Store", }, "province": "Metro Manila", { "idprovinceKey": "SANDBOX_QAMM", "name": "Sandbox_Qa"} } ], "total": 1 } |
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Update Post Status
: |
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
URL Query parameters
(URL): Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>" } |
Request Body Fields
:Field | Data Type | Required | Description |
---|---|---|---|
postId | string | yes | id ID of post to update. |
status | string | yes | status to update |
remarks | string | no | update remarks from provider |
timeStamp | number | no | timestamp in millisecond. Leave 0, null or empty string to use current time. |
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 | Description |
| Order is for pickup |
| Order is out for delivery |
| Order has been delivered |
| Failed to pickup order |
| Failed to deliver order |
| Failed to return order |
| Cancel order |
| Order is out for return |
| Order has been returned to sender |
| Push an event update on job history without updating the status of the post. Please use the remarks field. |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get Post
: |
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>" } |
URL Parameters (Query Parameters)
:Parameter | Required | Description |
---|---|---|
apiKey | yes | api API key from login 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 , one which can be either of the following:
Defaults to opportunity if empty or undefined. |
status | no | filter by status. set to “DONE“ |
Sample URL Parameters
: Code Block | ||
---|---|---|
| ||
{ "apiKey": "fb77c9653bf5e736d191b46bbfed7c2bd", "postId": "uuNzkYoOy1VI373BoKY9", "partnerId": "SANDBOX_DX" } |
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": "ASSIGNED", "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": {} }, ] } |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||
Update Meta Fields
: |
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Query parameters (URL)
: Code Block |
---|
{ "apiKey": "<apiKey will be acquired on login API>" } |
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", "metaFields": { "trackingNumber": "ORDER-001-AKS-ASV", "trackingUrl": "https://trackmyorder.com/track?id=ORDER-001-AKS-ASV" } } |
Sample Response
:Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "message": "Post successfully updated." } |
Expand | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Get Partner Metafields
: |
Code Block | ||
---|---|---|
| ||
{ "Content-Type": "application/json" "Auth-Token": "<Auth token acquired on api LOGIN>" } |
Query parameters (URL):
Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>", "partnerId": "<provider's id, can be acquired on getPartners API>" } |
Info |
---|
Note: Empty partnerId url params will fetch all of your partners' metafields. |
Sample Response with valid partnerId:
Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": { "goods": { "active": true } } } |
Sample Response for empty partnerId
:Code Block | ||
---|---|---|
| ||
Status: 200 OK! { "success": true, "result": { "SANDBOX_BA": { "goods": { "active": true } }, "SANDBOX_PROVIDER": {}, "SANDBOX_QA": { "cod": { "required": true, "active": true, "key": "cod", "fieldType": "string", "placeholder": "COD" }, "name": { "fieldType": "string", "placeholder": "Name", "required": false, "active": true, "key": "name" }, "insurance": { "required": true, "active": true, "key": "insurance", "fieldType": "string", "placeholder": "Insurance" }, "vehicleType": { "options": [ { "value": "car", "label": "Car" }, { "value": "motorcycle", "label": "Motorcycle" } ], "required": false, "active": true, "key": "vehicleType", "placeholder": "Vehicle Type", "fieldType": "dropdown" } } } } |
Sample Response with invalid partnerId
:Code Block |
---|
Status: 400 Bad Request { "success": false, "message": "Invalid partner id. Neither it's not existing or you don't have rights to post to the partner." } |
Sample Response with no partner:
Code Block |
---|
Status: 400 Bad Request { "success": false, "message": "No preferred partners yet. Please invite a partner in Deliveries PH - My Partners" } |
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get Provider's Create Post Template
: |
Code Block | ||
---|---|---|
| ||
{ "Auth-Token": "<Auth token acquired on api LOGIN>" } |
URL Parameters
:Field | Required | Description |
---|---|---|
apiKey | yes | api API key from login API |
partnerId | yes | client Client id of desired partner’s create post template and meta fields schema. Can be acquired through getPartners API |
Sample Request
:Code Block | ||
---|---|---|
| ||
https://us-central1-fleet-dev-ph.cloudfunctions.net/getCreatePostTemplate?apiKey=7c5dd55738b964944f9357bcc7f45ce6d857ff18&partnerId=SANDBOX_DX |
Sample Response
Code Block | ||
---|---|---|
| ||
status: 200 OK! { "success": true, "result": { "requestBody": { "refNo": "", "pickupDetails": { "customerName": "", "contactNumber": "", "emailAddress": "", "completionDateTime": "", "lat": 0, "long": 0, "tags": [], "remarks": "", "barangay": "", "province": "", "postalCode": "", "pickupAddress": "", "pickupCity": "" }, "deliveries": [ { "customerName": "", "contactNumber": "", "emailAddress": "", "completionDateTime": "", "lat": 0, "long": 0, "tags": [], "remarks": "", "barangay": "", "province": "", "postalCode": "", "deliveryAddress": "", "deliveryCity": "", "details": "", "dimension": "", "itemPrice": 0, "codAmount": 0, "metaFields": { "stringType": "", "dropdownType": "", "listType": [ { "quantity": "", "itemName": "" } ] } } ] }, "metaFieldSchema": { "stringType": { "required": false, "type": "string", "description": "Sample string type meta" }, "dropdownType": { "required": true, "type": "string", "description": "Dropdown sample", "values": [ "car", "van" ], "details": [ { "value": "car", "description": "Car" }, { "value": "van", "description": "Van" } ] }, "listType": { "type": "object", "description": "List sample", "properties": { "quantity": { "description": "Quantity", "required": true, "type": "string" }, "itemName": { "description": "Item Name", "required": true, "type": "string" } } } } } } |
Meta fields schema
Field | Data type | Description |
---|---|---|
type | string | data type of a meta field. Can either be one of the following 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Update Fee
: |
Code Block |
---|
{ "Auth-Token": "<Auth token acquired on api LOGIN>", "Content-Type": "application/json" } |
Query parameters (URL)
: Code Block | ||
---|---|---|
| ||
{ "apiKey": "<apiKey will be acquired on login API>" } |
Request Body Fields
:Field | Data Type | Required | Description |
---|---|---|---|
postId | string | yes | id ID of post to updatebe 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." } |
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. |
...