Testing

The final step to getting live

Handling Errors

In any system there are a lot of error scenarios.
For example: You may receive an invalid date or Karhoo is sending origin/destination outside of the fleet coverage areas. In that case, we expect our supply partners to respond with an error. In case of bad request we expect 400 HTTP status code with the following payload response

{
   "cause": "(short error description here)",
   "status": 400 // HTTP status code
}

Success Criteria

The testing phase is designed to highlight potential operational unknowns that are not obvious during the development of the Integration. Here are a few areas that are targeted:

  • Data completeness
  • Request latency
  • Failure scenarios

Quotes

Items to Address:

  • Karhoo is able to get Quotes from all available vehicle types in Production.
  • Karhoo is able to display the correct price for all vehicle types in Production.
  • Karhoo is able to get OnDemand ETAs from all available vehicle types in Production.

Bookings

Items to Address:

  • Karhoo is able to send a booking request to a live fleet and get confirmation.
  • Driver and vehicle information satisfies regional minimums.
  • Dispatch to receive correct airport details.

Trip updates

Items to Address:

  • Karhoo receives timely trip state changes.
  • Karhoo to receive minimum booking states.
  • Karhoo receives timely driver position changes.
  • Karhoo to receive cancellation reasons.

Settlements

Items to Address:

  • Karhoo receives Final Fare and Breakdown within 1 hour of Trip Complete.
  • Driver should be able to see that the job does not require payment in car.

Reference

What is the Agent Portal?

FAQ

Q: We don’t have any quotes, do we need to return an error?
A: No, you don’t. If request is valid and you couldn’t satisfy quotes requests because you don’t have any available vehicles - just return an empty array of quotes along with a 200 status code:

{
    "quotes": []
}

Q: In your Supply API documentation trip object has a lot of fields. Do I need to return all of them?
A: No, you don’t. These are the minimum required fields to process your request:

  • Trip ID
  • External trip ID
  • External fleet ID
  • Trip state

Q: We are sending the driver's name but it doesn’t appear on your portal. What is wrong?
A: According to Supply API documentation driver phone number is a required field. We cannot handle & display driver name if phone isn’t provided.

Q: Your request is incorrect / we don’t operate in this area / etc - how to respond with an error?
Supply Partner must respond with an error. In case of bad request we expect 400 HTTP status code with the following payload response:

{
   "cause": "(short error description here)",
   "status": 400 // HTTP status code
}