Shops

Shops are entities that can be assigned User/Vehicle pairs. A Shop can be set up to receive email notifications when an Alert is created for a linked Vehicle.

CreateShop

Creates a Shop.

Request

curl -L -X POST 'https://{DOMAIN}/voyorequest/CreateShop
-d 'name={NAME}'
-d 'address={ADDRESS}&city={CITY}&state={STATE}&zip_code={ZIP_CODE}&phone_number={PHONE_NUMBER}&email_address={EMAIL_ADDRESS}&website={WEBSITE}'
-d 'yelp_url={YELP_URL}&description={DESCRIPTION}&services={SERVICES}&hours={HOURS}&vehicles_serviced={VEHICLES_SERVICED}'
-d 'appointment_url={APPOINTMENT_URL}&promotions={PROMOTIONS}&heavy_duty={HEAVY_DUTY}'
-H 'Accept: application/json'
-H 'Authorization: Bearer {APIKEY}'
Parameter Description Requirement Max Size
name The name of the Shop to be created. Required 100
address Shop address. Optional 50
city City this Shop is located in. Optional 30
state State this Shop is located in. Optional 30
zip_code ZIP code Shop is located in. Optional 20
phone_number Business phone number for this Shop. Optional 20
email_address Business email for this Shop. Optional 50
website URL for this Shop. Optional 50
yelp_url URL matching the Yelp review for this Shop. Optional 2000
description A short description of what this Shop is or does. Optional 2000
services A short list of services that this Shop provides. Optional 4000
hours List of business hours for this Shop. Optional 2000
vehicles_serviced List of specific vehicle makes this Shop services. Optional 4000
appointment_url URL to Shop website page that supports scheduling appointments. Optional 1000
promotions Description of any special promotions that this Shop provides. Optional 1000
heavy_duty "1": Supports servicing for heavy duty vehicles or "0": Does not support servicing heavy duty vehicles. Optional -

Error Responses

Errors may occur if required shop information is missing, invalid data is provided, or authorization fails. The response includes an error message describing the reason the Shop could not be created.

    HTTP/1.1 400 Bad Request
/// Shop can not be created without a name
{ "error":"Requires name!" }

/// Name was provided but was an empty string
{ "error":"Requires non empty name!" }

// Provided string: INPUT was greater than size limit: MAX_SIZE
{ "error":"{INPUT} can not be more than {MAX_SIZE} characters!" }

// Shop name included special characters
{ "error":"Requires name without special characters!" }

Success Responses

Shop was created successfully.

{ "error":"Success!", "shop_id":"" }

shop_id can be used to:

  1. Update
  2. Onboard
  3. Offboard


GetShops

Get a list of all Shops. Addtionally, the list of all Shops can be filtered to find the subset of Shops associated with a requested Vehicle and/or User.

Request

curl -L -X POST 'https://{DOMAIN}/voyorequest/GetShops

-d 'vehicle_key={VEHICLE_KEY}&user_key={USER_KEY}'
-H 'Accept: application/json'
-H 'Authorization: Bearer {APIKEY}'
Parameter Description Requirement
vehicle_key Unique key belonging to the provided Vehicle. Optional
user_key Unique key belonging to the provided User. Optional

Example Response

Response "shops" can be empty if no Shops were found.

{ 
    "error":"Success!", "shops":[
        {
            "name":"",
            "address":"",
            "city":"",
            "state":"",
            "zip_code":"",
            "phone_number":"",
            "email_address":"",
            "website":"",
            "yelp_url":"",
            "description":"",
            "services":"",
            "hours":"",
            "vehicles_serviced":"",
            "appointment_url":"",
            "promotions":"",
            "heavy_duty":"",
            "shop_id":""
        }
    ] 
}


OnboardShop

Link this Shop to with a User/Vehicle pair. Onboarding a Shop designates it as an active service provider, enabling it to participate in workflows associated with vehicle maintenance or repairs.

Request

curl -L -X POST 'https://{DOMAIN}/voyorequest/OnboardShop

-d 'shop_id={SHOP_ID}&user_key={USER_KEY}&vehicle_key={VEHICLE_KEY}'
-H 'Accept: application/json'
-H 'Authorization: Bearer {APIKEY}'
Parameter Description
shop_id Unique identifier belonging to the provided Shop.
user_key Unique key belonging to the provided User.
vehicle_key Unique key belonging to the provided Vehicle.

Error Responses

Error responses occur when the request cannot be processed due to invalid or missing identifiers, or unauthorized access.

    HTTP/1.1 400 Bad Request
    HTTP/1.1 401 Unauthorized
// Provided user does not exist
{ "error":"User does not exist!" }

// Provided vehicle does not exist
{ "error":"Vehicle does not exist!" }

// Attempt to onboard to a shop that was created by someone else
{ "error":"Unauthorized shop!" }

Success Responses

Shop was onboarded successfully.

{ "error":"Success!" }


OffboardShop

Unlink this Shop from a User/Vehicle pair. This does not delete the Shop — it only removes the association between the Shop and the User/Vehicle pair.

Request

curl -L -X POST 'https://{DOMAIN}/voyorequest/OffboardShop

-d 'shop_id={SHOP_ID}&user_key={USER_KEY}&vehicle_key={VEHICLE_KEY}'
-H 'Accept: application/json'
-H 'Authorization: Bearer {APIKEY}'
Parameter Description
shop_id Unique identifier belonging to the provided Shop.
user_key Unique key belonging to the provided User.
vehicle_key Unique key belonging to the provided Vehicle.

Error Responses

Error responses occur when required parameters are missing, or invalid identifiers are provided.

    HTTP/1.1 400 Bad Request
    HTTP/1.1 401 Unauthorized
// Provided user does not exist
{ "error":"User does not exist!" }

// Provided vehicle does not exist
{ "error":"Vehicle does not exist!" }

// Attempt to offboard a shop that was created by someone else
{ "error":"Unauthorized shop!" }

Success Responses

Shop was offboarded successfully.

{ "error":"Success!" }


UpdateShop

Update Shop information. Shop information can be updated all-at-once, one-by-one, or in any combination in between.

Shop names can not be changed.

Request

curl -L -X POST 'https://{DOMAIN}/voyorequest/UpdateShop

-d 'shop_id={SHOP_ID}'
-d 'address={ADDRESS}&city={CITY}&state={STATE}&zip_code={ZIP_CODE}&phone_number={PHONE_NUMBER}&email_address={EMAIL_ADDRESS}&website={WEBSITE}'
-d 'yelp_url={YELP_URL}&description={DESCRIPTION}&services={SERVICES}&hours={HOURS}&vehicles_serviced={VEHICLES_SERVICED}'
-d 'appointment_url={APPOINTMENT_URL}&promotions={PROMOTIONS}&heavy_duty={HEAVY_DUTY}'
-H 'Accept: application/json'
-H 'Authorization: Bearer {APIKEY}'
Parameter Description Requirement Max Size
name The name of the Shop to be created. Required 100
address Shop address. Optional 50
city City this Shop is located in. Optional 30
state State this Shop is located in. Optional 30
zip_code ZIP code Shop is located in. Optional 20
phone_number Business phone number for this Shop. Optional 20
email_address Business email for this Shop. Optional 50
website URL for this Shop. Optional 50
yelp_url URL matching the Yelp review for this Shop. Optional 2000
description A short description of what this Shop is or does. Optional 2000
services A short list of services that this Shop provides. Optional 4000
hours List of business hours for this Shop. Optional 2000
vehicles_serviced List of specific vehicle makes this Shop services. Optional 4000
appointment_url URL to Shop website page that supports scheduling appointments. Optional 1000
promotions Description of any special promotions that this Shop provides. Optional 1000
heavy_duty "1": Supports servicing for heavy duty vehicles or "0": Does not support servicing heavy duty vehicles. Optional -

Error Responses

    HTTP/1.1 400 Bad Request
/// Attempting shop update with nothing to update
{ "error":"Requires something to update!" }

// Provided string: INPUT was greater than size limit: MAX_SIZE
{ "error":"{INPUT} can not be more than {MAX_SIZE} characters!" }

Success Responses

Shop was updated successfully.

{ "error":"Success!" }