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:
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!" }