Check Availability

Check if the given business can currently fulfill an order.

This call will be made by Yelp to the Partner when the User is on the biz details page and wants to enter the ordering flow. The information the user enters will be validated and posted to this endpoint.

If the Partner responds that the service is available within the constraints the User provided, then Yelp will take the user to the iframe flow where they can continue building the Order.

If the User-supplied address is ambiguous, the Partner should return a list of address_suggestions and specify availability_status as not_deliverable_ambiguous_address.

Request

See Opportunity resource

Example of using multiple availability constraints:

In this example a user attempts to reorder order 1BA41E8A0F4234A3B7DF4B232E1E9C87 and have it delivered to 140 New Montgomery St, San Francisco, CA 94105 (two availability constraints: RepeatOrderConstraint and CustomerAddressConstraint)

{
  "opportunity_token": "0123456789abcdef0123456789abcdef",
  "partner_business_id": "partner business id",
  "request_time": "2018-01-27T10:32:50+00:00",
  "service_type": "food",
  "selected_option": "at_customer",
  "availability_constraints": [
    {
      "object": "CustomerAddressConstraint",
      "customer_address_str": "140 New Montgomery St, San Francisco, CA 94105",
      "customer_address": {
        "object": "Address",
        "address1": "140 New Montgomery St",
        "city": "San Francisco",
        "region": "CA",
        "postal_code": "94105",
        "country": "US"
      }
    },
    {
      "object": "RepeatOrderConstraint",
      "reorder_yelp_order_id": "1BA41E8A0F4234A3B7DF4B232E1E9C87"
    }
  ]
}

The recommended precedence order for checking constraints is as follows:

  1. service type

    • unsupported
    • unsupported_by_business
  2. hours

    • not_available_outside_of_hours
  3. address

    • not_available_outside_of_area
    • not_available_invalid_address
    • not_available_ambiguous_address
  4. re-order

    • not_available_cannot_fulfill_reorder

(not_available_other can be used in case an unexpected situation arises)

If none of the above are encountered then return

  • available_can_fulfill_reorder - if a RepeatOrderConstraint is specified
  • available - if a RepeatOrderConstraint is not specified

📘

This endpoint is part of the Fulfillment API, visit Fulfillment API to learn more.

Language
Authorization
Basic
base64
: