Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Endpoint URL

Staging

https://us-central1-fleet-staging-2333a.cloudfunctions.net

Production

will be provided after SIT

...

Expand
title1. Login and Get Session

Login and Get Session Token.

Status
colourGreen
titlebUSINESS
Status
colourRed
titleProvider

Description: To acquire authorization token.

Endpoint: /login

Method: POST

Request Headers: 

Code Block
languagejs
{
  "Content-Type": "application/json"
}

Request Body:

Field

Data type

Required

Description

email

string

yes

email credential

password

string

yes

password

Sample Request Body:

Code Block
languagejs
{
	"email": "sandbox_dev@gmail.com",
	"password": "password"
}

Sample Response:

Code Block
languagejsjson
Status: 200 OK!
{
    "success": true,
    "results": {
        "apiKey": "fb77c9653bf5e736d191b46bbfed7c2bd",
        "clientId": "SANDBOX_DEV",
        "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.

Expand
title2. Get Partners

Get Partners

Status
colourGreen
titleBusiness
Status
colourRed
titleProvider

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
languagejs
Status: 200 OK!
{
    "success": true,
    "results": [
        {
            "id": "SANDBOX_BUSINESS",
            "name": "Sandbox Business"
        },
        {
            "id": "SANDBOX_QA",
            "name": "Sandbox_Qa"
        }
    ]
}

Expand
title3. Update Post Status

Update Post Status

Status
colourRed
titleProvider

Description:  To Update post status.

Endpoint: /updatePostStatus

Method: POST

Request Headers:

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.

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

START_PICKUP

Order is for pickup

START_DELIVERY

Order is out for delivery

DONE

Order has been delivered

FAILED_PICKUP

Failed to pickup order

FAILED_DELIVERY

Failed to deliver order

FAILED_RETURN

Failed to return order

CANCEL

Cancel order

IN_TRANSIT_FOR_RETURN

Order is out for return

RETURNED

Order has been returned to sender

UPDATE

Push an event update on job history without updating the status of the post. Please use the remarks field.

Expand
title4. Get Post

Get Post

Status
colourGreen
titleBUSINESS
Status
colourRed
titlePROVIDER

Description:  To get a specific post or all post.

Endpoint: /getPost

Method: GET

Request Headers:

Code Block
{
  "Auth-Token": "<Auth token acquired on api LOGIN>"
}

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, one of the following:

post or opportunity

Defaults to opportunity if empty or undefined.

status

no

filter by status.

set to “DONE“ to get delivered posts.

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
title5. Update Meta Fields

Update Meta Fields

Status
colourRed
titleProvider

Description:  To update tracking number and tracking url of a post. For providers only.

Endpoint: /updateMetaFields

Method: POST

Request Headers:

Code Block
languagejs
{
  "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
  • Fields under metaFields requires at least one field to update.

  • Undefined meta fields will not be updated.

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
title7. Get Partner Metafields

Get Partner Metafields

Status
colourPurple
titleINTERNAL

Description:  To get metafields of all or a specific provider. For internal use of DPH.

Endpoint: /getPartnersMetaFields

Method: GET

Request Headers:

Code Block
{
  "Content-Type": "application/json"
  "Auth-Token": "<Auth token acquired on api LOGIN>"
}

Query parameters (URL): 

Code Block
languagejs
{
  "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
languagejs
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
title8. Get Provider's Create Post Template

Get Provider's Create Post Template

Status
colourGreen
titleBusiness

Description:  Get provider’s create post template and meta fields schema for createPostv2 API. For integration only.

Endpoint: /getCreatePostTemplate

Method: GET

Request Headers:

Code Block
{
  "Auth-Token": "<Auth token acquired on api LOGIN>"
}

URL Parameters:

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

Sample Request:

Code Block
languagejs
https://us-central1-fleet-dev-ph.cloudfunctions.net/getCreatePostTemplate?apiKey=7c5dd55738b964944f9357bcc7f45ce6d857ff18&partnerId=SANDBOX_DX

Sample Response

Code Block
languagejs
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 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
title9. Update Fee

Update Fee

Status
colourRed
titleProvider

Description:  To pass or update fees of a post. For providers only.

Endpoint: /updateFee

Method: POST

Request Headers:

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.

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:

shipping, return, insurance, handling or others

Info
  • List of fees must contain at least one value with fee type of shipping or return.

Sample Request Body:

Code Block
languagejs
{
    "postId": "Wq9FPWxCYVxNgrPrn08D",
    "remarks": "Shipping fee from upon booking.",
    "fees": [
        {
            "value": 100,
            "type": "shipping"
        },
        {
            "value": 20,
            "type": "insurance"
        }
    ]
}

Sample Response:

Code Block
languagejs
status: 200 OK!
{
    "success": true,
    "result": "Post successfully updated."
}

...