HappyMove Customer API (v1.0.0)

Welcome to HappyMove Joyride Customer API HappyMove this API allows you to integrate our delivery services into your business workflow. You also can manage your orders and get updates on any changes in them. API versions are increased with incompatible changes, e.g. changes to data types or removal of request parameters. Non-latest API versions will still be supported for some reasonable time. New requests and parameters in existing requests (e.g. a new field in order structure) can be added at any time without new API versions. You should ignore unknown fields in any API data structures.

Booking Process

Authentication

Ask Joyride Admin to generate an ApiKey - help@joyride.com.ph/(+632) 8864 7777

Status List

Status ID Status Value Description
0 RIDE_REQUESTED the status when a customer confirms or requests for a delivery booking.
1 SEARCHING_FOR_DRIVERS the status when the system searches for the nearest available driver within the set radius.
2 DRIVER_ASSIGNED the status when the booking is already assigned or is already accepted by the driver
3 DRIVER_ARRIVED the status when the driver has arrived at the pick-up location.
4 TRIP_STARTED the status when the driver updates the status to 'start trip', signifying that the driver is on the way to the drop-off point.
4.1 DRIVER_DROPOFF_ARRIVED the status when the driver updates the status to ' arrived to customer', signifying that the driver is on customer location.
5 TRIP_CANCELLED_BY_RIDER the status when the customer cancels the delivery request.
6 TRIP_CANCELLED_EARLY_BY_RIDER the status when the customer cancels the delivery before a driver has accepted or before the booking was assigned to a driver.
7 TRIP_CANCELLED_BY_DRIVER the status when the delivery was cancelled by the driver.
8 TRIP_COMPLETED the status when the delivery is successfully completed.
9 TRIP_ABORT_NO_DRIVERS_FOUND the status wherein the system is flagged to automatically cancel a trip after a certain period of time and there are no drivers available to accept the booking.
10 TRIP_ABORT_SERVER_ERROR the status when the system encounters an unexpected error in updated trip status, details, or information.
11 TRIP_ADMIN_CANCELLED the status when the trip is cancelled by the Admin. In this scenario, the customer or driver directly informs the Admin to cancel the booking.
12 TRIP_JRPAY_ERROR the status when the system encounters an error upon processing payments made through JR Pay.
13 TRIP_DRIVER_REQUEST the status when the system is unable to find or match the order to a nearby driver within the radius. The delivery will automatically go to the order request tab which will allow drivers with the same vehicle type to see and accept it regardless of distance from the pickup point.

Authentication

ApiAuthKey

Security Scheme Type API Key
Header parameter name: xapikey

Get Quotation API

GetQuotationAPI

inquire for the price of delivery

Authorizations:
Request Body schema: application/json
storeEmail
string

Store email address (optional field)

tripType
number
Enum: 1 2

1 = Single Trip, 2 = RoundTrip

serviceType
number
Enum: 1 2

1 = motorcycle, 2 = mv-small, 3 = mv-medium, 4 = mv-large

insulatedBag
string
Enum: "any_bag" "hm_bag" ""
object
driverHelps
boolean
Enum: false true

if driver has to carry items more than 5 meters away from his vehicle

extraHelper
boolean
Enum: false true

extra person to carry the item (other than the driver)

extraHelper2
boolean
Enum: false true

2 extra person to carry the item (other than the driver)

cashRemittance
boolean
Enum: false true

if driver collects cash from recipient and send amount to your Bank Account

mpv
boolean
Enum: false true

false = non sedan, true = mpv or (multi-purpose vehicle)

cashHandling
boolean
Enum: false true

if driver buys items for you at a store and collects payment from you at the drop-off location

Array of objects

list of all destination of the delivery | index 0 = pickup location | last index = dropoff location |

'important notes:' 'if select Roundtrip make sure that the pickup will add on the last index of the object'

'for multi stop' all stop must be inside of first and last object

Responses

Request samples

Content type
application/json
Example
{
  • "storeEmail": "merchantTest@email.com",
  • "tripType": 1,
  • "serviceType": 2,
  • "insulatedBag": "any_bag",
  • "deliverySchedule": {
    },
  • "driverHelps": true,
  • "extraHelper": true,
  • "extraHelper2": true,
  • "cashRemittance": true,
  • "mpv": true,
  • "cashHandling": true,
  • "location": [
    ]
}

Book Delivery API

bookingDeliveryAPI

Reserved or book a delivery

Authorizations:
Request Body schema: application/json
merchantReference
string

unique reference number from your end

deliverySchedule
string

New Schedule of Delivery if need to modify the previous delivery Date

reference
string

unique reference number from Quotation API

notes
string

notes of the delivery

reserved
boolean

true = delivery set as not active looking for driver false = delivery set as active looking for driver

Responses

Request samples

Content type
application/json
{
  • "merchantReference": "MERCHANTREF#777",
  • "deliverySchedule": "2021-06-30 12:30",
  • "reference": "17ce8bbd-aad0-4000-870a-88b948507b00",
  • "notes": "sample delivery notes",
  • "reserved": true
}

Confirm Booking API

confirmBookingAPI

Confirm Booking

Authorizations:
Request Body schema: application/json
tripId
string

unique tripId from Booking API

deliverySchedule
string

New Schedule of Delivery if need to modify the previous delivery Date

Responses

Request samples

Content type
application/json
{
  • "tripId": "027HHUNFsnl9tHeaXuP0",
  • "deliverySchedule": "2021-06-30 12:30"
}

Cancel Booking API

cancelBookingAPI

Cancel Booking

Authorizations:
Request Body schema: application/json
tripId
string

unique tripId from Booking API

Responses

Request samples

Content type
application/json
{
  • "tripId": "027HHUNFsnl9tHeaXuP0"
}

User Webhook API

addWebhookAPI

Webhook Payload Request

To get the latest delivery status from Happy Move, merchant should open a POST REST API that will accept the format below:

Trip Status Webhook

  {
    "tripId": "iyTe445testID", # unique tripId
    "status": "TRIP_COMPLETED", # Latest status of the delivery
    "merchant_reference": "MER000001",  # Reference number sent by merchant
    "delivery_details": {
        "driver_name": "Ely Buendia", # driver full name
        "plate_number": "EHEADS 777", # PlateNumber
        "mobile_number": "+639951104834", # Driver phone number
        "ETA": "77 minutes",  # Total ETA of Delivery
        "service_type": "motorcycle" # service type (motorcycle,mv_small,mv_medium,mv_large)
    },
    courier: "Happy Move x JoyRide" # delivery Service Courier
  }

Driver LatLon Webhook

  {
    "tripId": "iyTe445testID", # unique tripId
    "delivery_details": {
        "driver_name": "juan dela crus", # driver full name
        "plate_number": "TEST 777", # PlateNumber
        "mobile_number": "+639951104834", # Driver phone number
        "service_type": "motorcycle" # service type (motorcycle,mv_small,mv_medium,mv_large)
        "lat": 121.000000 # latitude
        "lng": 111.111111 # longitude
    },
    "courier": "Happy Move x JoyRide" # delivery Service Courier
  }

Proof of Delivery Webhook

  {
    "tripId": "iyTe445testID", # unique tripId
    "url": "https://pod.happymove.com.ph/image.png", # proof of delivery image url
    "merchantReference": "testingMerchant", # Reference number sent by merchant
    "type": "pickupProof", # possible values (pickupProof, dropoffProof)
  }

Rebook trip Webhook

  {
    "newTripId": "13wrIjOYlpHu0a", # new unique tripId after rebooking the delivery
    "oldTripId": "buzoswEhEyI4Um", # tripId from the rebooked delivery
    "merchantReference": "testingMerchant", # Reference number sent by merchant
  }
Authorizations:
Request Body schema: application/json
url
string

'Webhook Endpoint example: https://happymove.com.ph/webhook'

type
string
Enum: "trip_details" "driver_location" "pod_details" "rebook_details"

'webhook type trip_details = to receive booking details driver_location = to receive driver current location pod_details = to receive Proof of delivery details rebook_details = to receive new tripID after performing rebook process on HM online ordering platform '

Responses

Request samples

Content type
application/json
{}

getWebhookAPI

get user Webhook url

Authorizations:

Responses