{ "openapi" : "3.0.0", "info" : { "title" : "Syncro", "version" : "v1", "description" : "Welcome to the official Syncro API Docs.\n\nTo use these docs, you will need an active Syncro account. You can sign up for one here: [Syncro](https://syncromsp.com)\n\nIf you already have an active account, fill in your subdomain below and then click \"Authorize\" and fill in your api-key. The key is specific to your user account so it is found on the your user profile page.\n\nPlease review the [API License Agreement](https://syncromsp.com/syncromsp-api-license-agreement/) before using our API. By accessing our API, you are agreeing to the API License Agreement.\n\nPlease note there is a rate limit of 180 requests per minute per IP address on API Usage. ", "contact" : { "email" : "help@syncromsp.com", "url" : "https://community.syncromsp.com/", "name" : "API Support" } }, "externalDocs" : { "description" : "Additional API Docs", "url" : "https://community.syncromsp.com/t/syncro-rest-api-build-custom-extensions-apps-add-ons/2298" }, "paths" : { "/appointment_types" : { "get" : { "summary" : "Returns a paginated list of Appointment Types", "tags" : [ "Appointment Type" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "appointment_types" : [ { "id" : 1, "account_id" : 1, "name" : "Office Hours", "email_instructions" : "string", "location_type" : "manual_entry", "location_hard_code" : null, "created_at" : "2019-10-16T19:29:33.397Z", "updated_at" : "2019-10-16T19:29:33.397Z", "buffer" : null, "appointment_reminders_schedule_id" : null } ] } } } } } }, "post" : { "summary" : "Creates an Appointment Type", "tags" : [ "Appointment Type" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "email_instructions" : { "type" : "string" }, "location_type" : { "type" : "integer" }, "location_hard_code" : { "type" : "string" } }, "required" : [ "name" ] } } }, "description" : "Appointment Type object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "appointment_type" : { "id" : 1, "account_id" : 1, "name" : "Office Hours", "email_instructions" : "string", "location_type" : "manual_entry", "location_hard_code" : null, "created_at" : "2019-10-16T19:29:33.397Z", "updated_at" : "2019-10-16T19:29:33.397Z", "buffer" : null, "appointment_reminders_schedule_id" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "record" : { "id" : null, "account_id" : 1, "name" : "", "email_instructions" : null, "location_type" : null, "location_hard_code" : null, "created_at" : null, "updated_at" : null, "buffer" : null, "appointment_reminders_schedule_id" : null }, "errors" : "Name can't be blank,Location type can't be blank" } } } } } } }, "/appointment_types/{id}" : { "get" : { "summary" : "Retrieves an Appointment Type by ID", "tags" : [ "Appointment Type" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "account_id" : 1, "name" : "Office Hours", "email_instructions" : "string", "location_type" : "manual_entry", "location_hard_code" : null, "created_at" : "2019-10-16T19:29:33.397Z", "updated_at" : "2019-10-16T19:29:33.397Z", "buffer" : null, "appointment_reminders_schedule_id" : null } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Appointment Type by ID", "tags" : [ "Appointment Type" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "email_instructions" : { "type" : "string" }, "location_type" : { "type" : "integer" }, "location_hard_code" : { "type" : "string" } } } } }, "description" : "Appointment Type object that needs to be updated" }, "responses" : { "200" : { "description" : "successful" }, "422" : { "description" : "Invalid request" } } }, "delete" : { "summary" : "Deletes an Appointment Type by ID", "tags" : [ "Appointment Type" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/appointments" : { "get" : { "summary" : "Returns a paginated list of Appointments", "tags" : [ "Appointment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Appointments - View All (see-own never restricted)\n", "parameters" : [ { "name" : "date_from", "in" : "query", "description" : "Returns Appointments that start after the date. Example \"2019-01-25\"", "schema" : { "type" : "string", "format" : "date" } }, { "name" : "date_to", "in" : "query", "required" : false, "description" : "Returns Appointments that start before the date. Example \"2019-12-31\"", "schema" : { "type" : "string", "format" : "date" } }, { "name" : "mine", "in" : "query", "required" : false, "description" : "Return only current user's appointments", "schema" : { "type" : "boolean" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "appointments" : [ { "appointment" : { "id" : 3, "summary" : "Appointment API", "description" : "Notes:\n Appointment Description\n\n Contact: \nWalkin Customer \n\n Details: \nCustomer Information: \n Walkin Customer\n Phone: 123 - walkin@somedomain.com", "customer_id" : 1, "created_at" : "2019-10-20T01:28:50.580Z", "updated_at" : "2019-10-20T01:28:50.580Z", "start_at" : "2019-10-21T01:28:00.000Z", "end_at" : "2019-10-21T05:28:00.000Z", "duration" : 4, "location" : "In Shop", "ticket_id" : null, "appointment_location_type" : null, "start_at_label" : "Sun 10-20-19 06:28 PM", "all_day" : null, "ticket" : null, "do_not_email" : "1", "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-20T01:28:37.187Z", "updated_at" : "2019-10-20T01:28:37.187Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=dxbkw6x44de91dum7fua", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } ] } } } } } }, "post" : { "summary" : "Creates an Appointment", "tags" : [ "Appointment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "No special permissions required.\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "description" : { "type" : "string" }, "user_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "ticket_id" : { "type" : "integer" }, "do_not_email" : { "type" : "boolean" }, "user_id" : { "type" : "integer" }, "start_at" : { "type" : "string", "format" : "date-time" }, "end_at" : { "type" : "string", "format" : "date-time" }, "location" : { "type" : "string" }, "summary" : { "type" : "string" }, "email_customer" : { "type" : "boolean" }, "appointment_duration" : { "type" : "string" }, "appointment_type_id" : { "type" : "integer" }, "customer_id" : { "type" : "integer" }, "all_day" : { "type" : "boolean" } }, "required" : [ "summary", "start_at" ] } } }, "description" : "Appointment object that needs to be added" }, "responses" : { "201" : { "description" : "successful", "content" : { "application/json" : { "example" : { "appointment" : { "id" : 3, "summary" : "Appointment API", "description" : "Notes:\n Appointment Description\n\n Contact: \nWalkin Customer \n\n Details: \nCustomer Information: \n Walkin Customer\n Phone: 123 - walkin@somedomain.com", "customer_id" : 1, "created_at" : "2019-10-20T01:28:50.580Z", "updated_at" : "2019-10-20T01:28:50.580Z", "start_at" : "2019-10-21T01:28:00.000Z", "end_at" : "2019-10-21T05:28:00.000Z", "duration" : 4, "location" : "In Shop", "ticket_id" : null, "appointment_location_type" : null, "start_at_label" : "Sun 10-20-19 06:28 PM", "all_day" : null, "ticket" : null, "do_not_email" : "1", "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-20T01:28:37.187Z", "updated_at" : "2019-10-20T01:28:37.187Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=dxbkw6x44de91dum7fua", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "error" : "Summary can't be blank,Start at can't be blank,End at can't be blank", "message" : "Summary can't be blank,Start at can't be blank,End at can't be blank", "params" : { "description" : "Incomplete appointment" } } } } } } } }, "/appointments/{id}" : { "get" : { "summary" : "Retrieves an Appointment by ID", "tags" : [ "Appointment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "No special permissions required.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "summary" : { "type" : "string" }, "description" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "start_at" : { "type" : "string" }, "end_at" : { "type" : "string" }, "duration" : { "type" : "number" }, "location" : { "type" : "string" }, "ticket_id" : { "type" : "integer", "nullable" : true }, "appointment_location_type" : { "type" : "string", "nullable" : true }, "start_at_label" : { "type" : "string" }, "all_day" : { "type" : "boolean", "nullable" : true }, "ticket" : { "type" : "object", "properties" : { }, "nullable" : true }, "customer" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "firstname" : { "type" : "string" }, "lastname" : { "type" : "string" }, "fullname" : { "type" : "string" }, "business_name" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "mobile" : { "type" : "string", "nullable" : true }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "pdf_url" : { "type" : "string", "nullable" : true }, "address" : { "type" : "string", "nullable" : true }, "address_2" : { "type" : "string", "nullable" : true }, "city" : { "type" : "string", "nullable" : true }, "state" : { "type" : "string", "nullable" : true }, "zip" : { "type" : "string", "nullable" : true }, "latitude" : { "type" : "number", "nullable" : true }, "longitude" : { "type" : "number", "nullable" : true }, "notes" : { "type" : "string", "nullable" : true }, "get_sms" : { "type" : "boolean" }, "opt_out" : { "type" : "boolean" }, "disabled" : { "type" : "boolean" }, "no_email" : { "type" : "boolean" }, "location_name" : { "type" : "string", "nullable" : true }, "location_id" : { "type" : "integer", "nullable" : true }, "properties" : { "type" : "object", "properties" : { } }, "online_profile_url" : { "type" : "string" }, "referred_by" : { "type" : "integer", "nullable" : true }, "ref_customer_id" : { "type" : "integer", "nullable" : true }, "tax_rate_id" : { "type" : "string", "nullable" : true }, "notification_email" : { "type" : "string", "nullable" : true }, "invoice_cc_emails" : { "type" : "string", "nullable" : true }, "invoice_term_id" : { "type" : "string", "nullable" : true }, "business_and_full_name" : { "type" : "string" }, "business_then_name" : { "type" : "string" }, "contacts" : { "type" : "object", "properties" : { } } } } } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Appointment by ID", "tags" : [ "Appointment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "No special permissions required.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "description" : { "type" : "string" }, "user_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "ticket_id" : { "type" : "integer" }, "user_id" : { "type" : "integer" }, "start_at" : { "type" : "string", "format" : "date-time" }, "end_at" : { "type" : "string", "format" : "date-time" }, "location" : { "type" : "string" }, "summary" : { "type" : "string" }, "email_customer" : { "type" : "boolean" }, "appointment_duration" : { "type" : "string" }, "appointment_type_id" : { "type" : "integer" }, "customer_id" : { "type" : "integer" }, "all_day" : { "type" : "boolean" } }, "required" : [ "start_at" ] } } }, "description" : "Appointment object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "appointment" : { "id" : 3, "summary" : "Appointment API", "description" : "Notes:\n Appointment Description\n\n Contact: \nWalkin Customer \n\n Details: \nCustomer Information: \n Walkin Customer\n Phone: 123 - walkin@somedomain.com", "customer_id" : 1, "created_at" : "2019-10-20T01:28:50.580Z", "updated_at" : "2019-10-20T01:28:50.580Z", "start_at" : "2019-10-21T01:28:00.000Z", "end_at" : "2019-10-21T05:28:00.000Z", "duration" : 4, "location" : "In Shop", "ticket_id" : null, "appointment_location_type" : null, "start_at_label" : "Sun 10-20-19 06:28 PM", "all_day" : null, "ticket" : null, "do_not_email" : "1", "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-20T01:28:37.187Z", "updated_at" : "2019-10-20T01:28:37.187Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=dxbkw6x44de91dum7fua", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "error" : "Summary can't be blank", "message" : "Summary can't be blank", "params" : { "summary" : "" } } } } } } }, "delete" : { "summary" : "Deletes an Appointment by ID", "tags" : [ "Appointment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "No special permissions required.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/customer_assets" : { "get" : { "summary" : "Returns a paginated list of Assets", "tags" : [ "Asset" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Assets - List/Search\nSingle-Customer Users can only access own assets.\n", "parameters" : [ { "name" : "snmp_enabled", "in" : "query", "description" : "Any assets with SNMP enabled", "required" : false, "schema" : { "type" : "boolean" } }, { "name" : "customer_id", "in" : "query", "description" : "Any assets attached to a Customer ID", "required" : false, "schema" : { "type" : "integer" } }, { "name" : "asset_type_id", "in" : "query", "description" : "Any assets attached to an Asset Type ID", "required" : false, "schema" : { "type" : "integer" } }, { "name" : "query", "in" : "query", "description" : "Search query", "required" : false, "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "assets" : [ { "id" : 7, "name" : "New Name", "customer_id" : 1, "contact_id" : null, "created_at" : "2019-10-21T04:40:27.117Z", "updated_at" : "2019-10-21T04:40:27.190Z", "properties" : { "OS" : 4, "Size" : "Medium" }, "asset_type" : "Dodrio", "asset_serial" : "NewSerial", "external_rmm_link" : null, "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T04:40:14.156Z", "updated_at" : "2019-10-21T04:40:14.156Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=j2apoteiivxcuygw1nvc", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer" }, "rmm_links" : [ ], "rmm_store" : { "id" : 4, "asset_id" : 7, "account_id" : 1, "triggers" : { "bsod_triggered" : "false", "time_triggered" : "false", "no_av_triggered" : "false", "defrag_triggered" : "false", "firewall_triggered" : "false", "app_crash_triggered" : "false", "low_hd_space_triggered" : "false", "smart_failure_triggered" : "false", "device_manager_triggered" : "false", "agent_offline_triggered" : "false" }, "windows_updates" : { }, "emsisoft" : { }, "general" : { }, "created_at" : "2019-10-21T04:40:27.201Z", "updated_at" : "2019-10-21T04:40:27.201Z", "override_alert_agent_offline_mins" : null, "override_alert_agent_rearm_after_mins" : null, "override_low_hd_threshold" : null, "override_autoresolve_offline_alert" : null }, "address" : { "id" : 1, "name" : "Home", "customer_id" : 1, "address_type_id" : 2, "address1" : "123 main st", "address2" : "address2", "city" : "city", "state" : "state", "zip" : "11111", "latitude" : null, "longitude" : null, "created_at" : "2019-10-21T04:40:27.201Z", "updated_at" : "2019-10-21T04:40:27.201Z", "account_id" : 1 } } ] } } } } } }, "post" : { "summary" : "Creates an Asset", "tags" : [ "Asset" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Assets - Create\nSingle-Customer Users can only access own assets.\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "asset_type_name" : { "type" : "string" }, "asset_type_id" : { "type" : "integer" }, "properties" : { "type" : "object" }, "name" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "asset_serial" : { "type" : "string" } }, "required" : [ "name" ] } } }, "description" : "Asset object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "asset" : { "id" : 7, "name" : "New Name", "customer_id" : 1, "contact_id" : null, "created_at" : "2019-10-21T04:40:27.117Z", "updated_at" : "2019-10-21T04:40:27.190Z", "properties" : { "OS" : 4, "Size" : "Medium" }, "asset_type" : "Dodrio", "asset_serial" : "NewSerial", "external_rmm_link" : null, "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T04:40:14.156Z", "updated_at" : "2019-10-21T04:40:14.156Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=j2apoteiivxcuygw1nvc", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer" }, "rmm_links" : [ ], "rmm_store" : { "id" : 4, "asset_id" : 7, "account_id" : 1, "triggers" : { "bsod_triggered" : "false", "time_triggered" : "false", "no_av_triggered" : "false", "defrag_triggered" : "false", "firewall_triggered" : "false", "app_crash_triggered" : "false", "low_hd_space_triggered" : "false", "smart_failure_triggered" : "false", "device_manager_triggered" : "false", "agent_offline_triggered" : "false" }, "windows_updates" : { }, "emsisoft" : { }, "general" : { }, "created_at" : "2019-10-21T04:40:27.201Z", "updated_at" : "2019-10-21T04:40:27.201Z", "override_alert_agent_offline_mins" : null, "override_alert_agent_rearm_after_mins" : null, "override_low_hd_threshold" : null, "override_autoresolve_offline_alert" : null }, "address" : { "id" : 1, "name" : "Home", "customer_id" : 1, "address_type_id" : 2, "address1" : "123 main st", "address2" : "address2", "city" : "city", "state" : "state", "zip" : "11111", "latitude" : null, "longitude" : null, "created_at" : "2019-10-21T04:40:27.201Z", "updated_at" : "2019-10-21T04:40:27.201Z", "account_id" : 1 } } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Asset type can't be blank", "Name You must have an asset type first, please go create one" ], "params" : { "name" : "No type" } } } } } } } }, "/customer_assets/{id}" : { "get" : { "summary" : "Retrieves an Asset by ID", "tags" : [ "Asset" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Assets - View Details\nSingle-Customer Users can only access own assets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "name" : { "type" : "string" }, "customer_id" : { "type" : [ "integer", "null" ] }, "contact_id" : { "type" : [ "integer", "null" ] }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "type" : "object", "properties" : { "id" : { "type" : "integer" }, "asset_id" : { "type" : "integer" }, "account_id" : { "type" : "integer" }, "type" : "object", "properties" : { }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "override_alert_agent_offline_mins" : { "nullable" : true }, "override_alert_agent_rearm_after_mins" : { "nullable" : true }, "override_low_hd_threshold" : { "nullable" : true }, "override_autoresolve_offline_alert" : { "nullable" : true }, "override_low_hd_thresholds" : { "nullable" : true } }, "asset_type" : { "type" : "string" }, "asset_serial" : { "type" : "string" }, "external_rmm_link" : { "type" : [ "null" ] }, "customer" : { "type" : [ "null" ] }, "rmm_links" : { "type" : "array", "items" : [ ] }, "has_live_chat" : { "type" : "boolean" }, "snmp_enabled" : { "type" : [ "boolean", "null" ] } } }, "required" : [ ] } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Asset by ID", "tags" : [ "Asset" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Assets - Edit\nSingle-Customer Users can only access own assets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "asset_type_name" : { "type" : "string" }, "asset_type_id" : { "type" : "integer" }, "properties" : { "type" : "object" }, "name" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "asset_serial" : { "type" : "string" } }, "required" : [ "name" ] } } }, "description" : "Asset object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "name" : { "type" : "string" }, "customer_id" : { "type" : [ "integer", "null" ] }, "contact_id" : { "type" : [ "integer", "null" ] }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "type" : "object", "properties" : { "id" : { "type" : "integer" }, "asset_id" : { "type" : "integer" }, "account_id" : { "type" : "integer" }, "type" : "object", "properties" : { }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "override_alert_agent_offline_mins" : { "nullable" : true }, "override_alert_agent_rearm_after_mins" : { "nullable" : true }, "override_low_hd_threshold" : { "nullable" : true }, "override_autoresolve_offline_alert" : { "nullable" : true }, "override_low_hd_thresholds" : { "nullable" : true } }, "asset_type" : { "type" : "string" }, "asset_serial" : { "type" : "string" }, "external_rmm_link" : { "type" : [ "null" ] }, "customer" : { "type" : [ "null" ] }, "rmm_links" : { "type" : "array", "items" : [ ] }, "has_live_chat" : { "type" : "boolean" }, "snmp_enabled" : { "type" : [ "boolean", "null" ] } } }, "required" : [ ] } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Asset type can't be blank" ] } } } } } } }, "/customer_assets/chat_information_by_ids": { "get": { "summary": "Retrieves Assets chat informations by IDs", "tags": [ "Asset" ], "security": [ { "bearerAuth": [] } ], "description": "Required permission: Assets - Assets - List/Search.\n", "parameters": [ { "name": "ids", "in": "query", "required": true, "schema": { "type": "array" }, "items": { "type": "integer" } } ], "responses": { "200": { "description": "successful", "content": { "*/*": { "schema": { "type": "object", "properties": { "assets": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "customer": { "type": "object", "properties": { "id": { "type": "integer" }, "fullname": { "type": "string" }, "business_name": { "type": "string", "nullable" : true } } } } } } } } } } } } } }, "/customer_assets/{id}/patches": { "get": { "summary": "Retrieves Windows patch data for an Asset", "tags": [ "Asset" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Assets - List/Search\nSingle-Customer Users can only access own assets.\n", "parameters": [ { "name": "id", "in": "path", "description": "Asset ID", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "successful", "content": { "application/json": { "examples": { "example_0": { "value": { "installed_patches": [ { "kb": "KB5026361", "title": "Update for Windows Defender Antivirus", "category": "Security Updates", "status": "Recently Installed", "installed_at": "2025-01-12T14:30:00.000Z" } ], "available_patches": [ { "kb": "KB5027538", "title": "2023-06 Cumulative Update for .NET Framework 3.5, 4.8 and 4.8.1 for Windows 10 Version 22H2", "category": "Security Updates", "status": "Missing Patches", "evaluated_at": "2025-01-15T10:30:00.000Z" }, { "kb": "KB5027215", "title": "2023-06 Cumulative Update for Windows 10 Version 22H2", "category": "Critical Updates", "status": "Failed Patches", "attempted_installation": "2025-01-14T15:45:00.000Z" }, { "kb": "KB4023057", "title": "2023-04 Update for Windows 10 Version 22H2", "category": "Updates", "status": "Rejected Patches", "rejected_at": "2025-01-13T09:20:00.000Z" } ], "available_patches_meta": { "page": 1, "per_page": 50, "total_pages": 2, "total_entries": 100 } } } }, "schema": { "type": "object", "properties": { "available_patches": { "type": "array", "items": { "type": "object", "properties": { "kb": { "type": [ "string", "null" ], "description": "KB number (e.g., KB5027538). Null for driver updates and patches without KB identifiers." }, "title": { "type": "string", "description": "Patch title" }, "category": { "type": [ "string", "null" ], "description": "Patch category (e.g., Security Updates, Critical Updates). May be null for some installed patches." }, "status": { "type": "string", "description": "Patch status group", "enum": [ "Missing Patches", "Failed Patches", "Rejected Patches" ] }, "attempted_installation": { "type": [ "string", "null" ], "format": "datetime", "description": "Timestamp for failed patches" }, "rejected_at": { "type": [ "string", "null" ], "format": "datetime", "description": "Timestamp for rejected patches" }, "evaluated_at": { "type": [ "string", "null" ], "format": "datetime", "description": "Timestamp for pending/needs review patches" }, "installed_at": { "type": [ "string", "null" ], "format": "datetime", "description": "Timestamp for installed patches" }, "failure_reason": { "type": [ "string", "null" ], "description": "Failure reason when type is Failed Patches" } }, "required": [ "title", "status" ] } }, "installed_patches": { "type": "array", "items": { "type": "object", "properties": { "kb": { "type": [ "string", "null" ], "description": "KB number (e.g., KB5027538). Null for driver updates and patches without KB identifiers." }, "title": { "type": "string", "description": "Patch title" }, "category": { "type": [ "string", "null" ], "description": "Patch category (e.g., Security Updates, Critical Updates). May be null for some installed patches." }, "status": { "type": "string", "description": "Patch status group", "enum": [ "Missing Patches", "Failed Patches", "Rejected Patches", "Recently Installed" ] }, "installed_at": { "type": [ "string", "null" ], "format": "datetime", "description": "Timestamp for installed patches" } }, "required": [ "title", "status" ] } }, "available_patches_meta": { "type": "object", "properties": { "page": { "type": "integer" }, "per_page": { "type": "integer" }, "total_pages": { "type": "integer" }, "total_entries": { "type": "integer" } } } }, "required": [ "available_patches", "installed_patches", "available_patches_meta" ] } } } }, "404": { "description": "asset not found", "content": { "application/json": { "examples": { "example_0": { "value": { "error": "Asset not found" } } } } } } } } }, "/callerid" : { "get" : { "summary" : "Get Caller ID", "tags" : [ "Call" ], "security" : [ { "apiKey" : [ ] } ], "parameters" : [ { "name" : "did", "in" : "query", "description" : "Phone number", "required" : true, "schema" : { "type" : "string" } }, { "name" : "outbound", "in" : "query", "schema" : { "type" : "boolean" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "data" : { "name" : "Walking Customer", "ticket_status" : "Open" } } }, "text/plain" : { "example" : "Walking Customer" } } } } } }, "/canned_responses": { "get": { "summary": "Returns a list of Canned Responses with a query", "tags": [ "Canned Response" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Ticket Canned Responses - Manage\n", "parameters": [ { "name": "query", "in": "query", "description": "Search query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful", "content": { "application/json": { "examples": { "example_0": { "value": { "canned_responses": [ { "id": 1, "title": "Test Canned Response", "body": "This is a test canned response", "subject": "Test Subject", "canned_response_category_id": 1, "category_name": "Test Category" } ] } } } } } } } }, "post": { "summary": "Creates a new Canned Response", "tags": [ "Canned Response" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Ticket Canned Responses - Manage\n", "parameters": [ ], "responses": { "201": { "description": "successful" } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "body": { "type": "string" }, "subject": { "type": "string" }, "canned_response_category_id": { "type": "integer" } }, "required": [ "title", "body" ] } } } } } }, "/canned_responses/{id}": { "patch": { "summary": "Updates a Canned Response", "tags": [ "Canned Response" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Ticket Canned Responses - Manage\n", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "successful" } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "body": { "type": "string" }, "subject": { "type": "string" }, "canned_response_category_id": { "type": "integer" } } } } } } }, "delete": { "summary": "Deletes a Canned Response", "tags": [ "Canned Response" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Ticket Canned Responses - Manage\n", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ], "responses": { "204": { "description": "successful" } } } }, "/canned_responses/settings": { "get": { "summary": "Returns the settings for Canned Responses", "tags": [ "Canned Response" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Ticket Canned Responses - Manage\nSingle-Customer Users can only access own canned responses.\n", "responses": { "200": { "description": "successful", "content": { "application/json": { "examples": { "example_0": { "value": { "canned_response_categories": [ { "id": 1, "name": "Test Category" } ], "subjects": [ "Test Subject", "Test Subject 2" ], "can_manage": true } } } } } } } } }, "/contacts" : { "get" : { "summary" : "Returns a paginated list of Contacts", "tags" : [ "Contact" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - View Detail\nSingle-Customer Users can only access own contacts.\n", "parameters" : [ { "name" : "customer_id", "in" : "query", "description" : "Any contacts attached to a Customer ID", "schema" : { "type" : "integer" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "contacts" : [ { "id" : 1, "name" : "Boba Fett", "address1" : "8653 Ivan Flat", "address2" : "Apt. 436", "city" : "Tuanside", "state" : "Delaware", "zip" : "02293", "email" : "jarviscorwin@hanefeeney.io", "phone" : "657.325.3258 x330", "mobile" : "(133) 358-5295", "latitude" : 67.92905002829, "longitude" : 91.6028665875294, "customer_id" : 1, "account_id" : 1, "notes" : "Talk Jabba. (Tell that to Jabba.)", "created_at" : "2019-10-22T08:47:09.723Z", "updated_at" : "2019-10-22T08:47:09.723Z", "vendor_id" : null, "properties" : { }, "opt_out" : false, "extension" : null } ], "meta" : { "total_pages" : 1, "total_entries" : 1, "per_page" : 50, "page" : 1 } } } } }, "401" : { "description" : "Requires permission: Customers - View Detail", "content" : { "application/json" : { "example" : { "error" : "Not authorized. Please ask account admin to update your group permissions." } } } } } }, "post" : { "summary" : "Creates a Contact", "tags" : [ "Contact" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own contacts.\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "name" : { "type" : "string" }, "address1" : { "type" : "string" }, "address2" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "mobile" : { "type" : "string" }, "notes" : { "type" : "string" } }, "required" : [ "customer_id" ] } } }, "description" : "Contact object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "name" : "Boba Fett", "address1" : "8653 Ivan Flat", "address2" : "Apt. 436", "city" : "Tuanside", "state" : "Delaware", "zip" : "02293", "email" : "jarviscorwin@hanefeeney.io", "phone" : "657.325.3258 x330", "mobile" : "(133) 358-5295", "latitude" : 67.92905002829, "longitude" : 91.6028665875294, "customer_id" : 1, "account_id" : 1, "notes" : "Talk Jabba. (Tell that to Jabba.)", "created_at" : "2019-10-22T08:47:09.723Z", "updated_at" : "2019-10-22T08:47:09.723Z", "vendor_id" : null, "properties" : { }, "opt_out" : false, "extension" : null } } } }, "401" : { "description" : "Requires permission: Customers - Edit", "content" : { "application/json" : { "example" : { "error" : "Not authorized. Please ask account admin to update your group permissions." } } } }, "404" : { "description" : "Customer not found", "content" : { "application/json" : { "example" : { "message" : "Not found" } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "record" : { "id" : null, "name" : "Bad Email", "address1" : null, "address2" : null, "city" : null, "state" : null, "zip" : null, "email" : "xxx", "phone" : null, "mobile" : null, "latitude" : null, "longitude" : null, "customer_id" : 1, "account_id" : 1, "notes" : null, "created_at" : null, "updated_at" : null, "vendor_id" : null, "properties" : { }, "opt_out" : false, "extension" : null, "processed_phone" : null, "processed_mobile" : null }, "errors" : "Email is not an email" } } } } } } }, "/contacts/{id}" : { "get" : { "summary" : "Retrieves a Contact by ID", "tags" : [ "Contact" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - View Detail\nSingle-Customer Users can only access own contacts.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "name" : { "type" : "string" }, "address1" : { "type" : "string", "nullable" : true }, "address2" : { "type" : "string", "nullable" : true }, "city" : { "type" : "string", "nullable" : true }, "state" : { "type" : "string", "nullable" : true }, "zip" : { "type" : "string", "nullable" : true }, "email" : { "type" : "string", "nullable" : true }, "phone" : { "type" : "string", "nullable" : true }, "mobile" : { "type" : "string", "nullable" : true }, "latitude" : { "type" : "number", "nullable" : true }, "longitud" : { "type" : "number", "nullable" : true }, "customer_id" : { "type" : "integer", "nullable" : true }, "account_id" : { "type" : "integer" }, "notes" : { "type" : "string", "nullable" : true }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" }, "vendor_id" : { "type" : "number", "nullable" : true }, "properties" : { "type" : "object", "properties" : { } }, "opt_out" : { "type" : "boolean" }, "extension" : { "type" : "string", "nullable" : true } } } } } }, "401" : { "description" : "Requires permission: Customers - View Detail", "content" : { "application/json" : { "example" : { "error" : "Not authorized. Please ask account admin to update your group permissions." } } } }, "404" : { "description" : "Single-Customer User cannot view other customers' contacts", "content" : { "application/json" : { "example" : { "message" : "Not found" } } } } } }, "put" : { "summary" : "Updates an existing Contact", "tags" : [ "Contact" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own contacts.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "name" : { "type" : "string" }, "address1" : { "type" : "string" }, "address2" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "title" : { "type" : "string" }, "mobile" : { "type" : "string" }, "notes" : { "type" : "string" } }, "required" : [ "name" ] } } }, "description" : "Contact object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "name" : "Boba Fett", "address1" : "8653 Ivan Flat", "address2" : "Apt. 436", "city" : "Tuanside", "state" : "Delaware", "zip" : "02293", "email" : "jarviscorwin@hanefeeney.io", "phone" : "657.325.3258 x330", "mobile" : "(133) 358-5295", "latitude" : 67.92905002829, "longitude" : 91.6028665875294, "customer_id" : 1, "account_id" : 1, "notes" : "Talk Jabba. (Tell that to Jabba.)", "created_at" : "2019-10-22T08:47:09.723Z", "updated_at" : "2019-10-22T08:47:09.723Z", "vendor_id" : null, "properties" : { }, "opt_out" : false, "extension" : null } } } }, "401" : { "description" : "Requires permission: Customers - Edit", "content" : { "application/json" : { "example" : { "error" : "Not authorized. Please ask account admin to update your group permissions." } } } }, "404" : { "description" : "Single-Customer User cannot view other customers' contacts", "content" : { "application/json" : { "example" : { "message" : "Not found" } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "record" : { "id" : 1, "name" : "Boba Fett", "address1" : "8653 Ivan Flat", "address2" : "Apt. 436", "city" : "Tuanside", "state" : "Delaware", "zip" : "02293", "email" : "jarviscorwin@hanefeeney.io", "phone" : "657.325.3258 x330", "mobile" : "(133) 358-5295", "latitude" : 67.92905002829, "longitude" : 91.6028665875294, "customer_id" : 1, "account_id" : 1, "notes" : "Talk Jabba. (Tell that to Jabba.)", "created_at" : "2019-10-22T08:47:09.723Z", "updated_at" : "2019-10-22T08:47:09.723Z", "vendor_id" : null, "properties" : { }, "opt_out" : false, "extension" : null }, "errors" : "Customer can't be blank" } } } } } }, "delete" : { "summary" : "Deletes a Contact", "tags" : [ "Contact" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own contacts.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "401" : { "description" : "Requires permission: Customers - Edit", "content" : { "application/json" : { "example" : { "error" : "Not authorized. Please ask account admin to update your group permissions." } } } }, "404" : { "description" : "Invalid request" } } } }, "/contracts" : { "get" : { "summary" : "Returns a paginated list of Contracts", "tags" : [ "Contract" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Contracts - List/Search\n", "parameters" : [ { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 50 results", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "contracts" : [ { "id" : 1, "account_id" : 1, "customer_id" : 1, "name" : "Support Tier 1", "contract_amount" : "30k", "start_date" : "2019-10-23T00:00:00.000Z", "end_date" : "2020-10-22T00:00:00.000Z", "primary_contact" : null, "description" : "Contract Description", "created_at" : "2019-10-22T10:00:55.392Z", "updated_at" : "2019-10-22T10:00:55.392Z", "status" : "Opportunity", "likelihood" : 30, "apply_to_all" : false, "sla_id" : null } ], "meta" : { "total_pages" : 1, "total_entries" : 1, "per_page" : 50, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates a Contract", "tags" : [ "Contract" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Contracts - Edit\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "contract_amount" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "description" : { "type" : "string" }, "start_date" : { "type" : "string", "format" : "date-time" }, "end_date" : { "type" : "string", "format" : "date-time" }, "name" : { "type" : "string" }, "primary_contact" : { "type" : "string" }, "status" : { "type" : "string" }, "likelihood" : { "type" : "integer" }, "apply_to_all" : { "type" : "boolean" }, "sla_id" : { "type" : "integer" } }, "required" : [ "customer_id" ] } } }, "description" : "Contract object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "name" : "Support Tier 1", "contract_amount" : "30k", "start_date" : "2019-10-23T00:00:00.000Z", "end_date" : "2020-10-22T00:00:00.000Z", "primary_contact" : null, "description" : "Contract Description", "created_at" : "2019-10-22T10:00:55.392Z", "updated_at" : "2019-10-22T10:00:55.392Z", "status" : "Opportunity", "likelihood" : 30, "apply_to_all" : false, "sla_id" : null } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "record" : { "id" : null, "account_id" : 1, "customer_id" : null, "name" : "No Customer", "contract_amount" : null, "start_date" : null, "end_date" : null, "primary_contact" : null, "description" : "No Customer", "created_at" : null, "updated_at" : null, "status" : "Opportunity", "likelihood" : 0, "apply_to_all" : false, "sla_id" : null }, "errors" : "Customer can't be blank" } } } } } } }, "/contracts/{id}" : { "get" : { "summary" : "Retrieves a Contract by ID", "tags" : [ "Contract" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Contracts - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "name" : "Support Tier 1", "contract_amount" : "30k", "start_date" : "2019-10-23T00:00:00.000Z", "end_date" : "2020-10-22T00:00:00.000Z", "primary_contact" : null, "description" : "Contract Description", "created_at" : "2019-10-22T10:00:55.392Z", "updated_at" : "2019-10-22T10:00:55.392Z", "status" : "Opportunity", "likelihood" : 30, "apply_to_all" : false, "sla_id" : null } } } } } }, "put" : { "summary" : "Updates an existing Contract by ID", "tags" : [ "Contract" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Contracts - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "contract_amount" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "description" : { "type" : "string" }, "start_date" : { "type" : "string", "format" : "date-time" }, "end_date" : { "type" : "string", "format" : "date-time" }, "name" : { "type" : "string" }, "primary_contact" : { "type" : "string" }, "status" : { "type" : "string" }, "likelihood" : { "type" : "integer" }, "apply_to_all" : { "type" : "boolean" }, "sla_id" : { "type" : "integer" } }, "required" : [ "customer_id" ] } } }, "description" : "Contract object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "name" : "Support Tier 1", "contract_amount" : "30k", "start_date" : "2019-10-23T00:00:00.000Z", "end_date" : "2020-10-22T00:00:00.000Z", "primary_contact" : null, "description" : "Contract Description", "created_at" : "2019-10-22T10:00:55.392Z", "updated_at" : "2019-10-22T10:00:55.392Z", "status" : "Opportunity", "likelihood" : 30, "apply_to_all" : false, "sla_id" : null } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "record" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "name" : "Support Tier 1", "contract_amount" : "30k", "start_date" : "2019-10-23T00:00:00.000Z", "end_date" : "2020-10-22T00:00:00.000Z", "primary_contact" : null, "description" : "Contract Description", "created_at" : "2019-10-22T10:00:55.392Z", "updated_at" : "2019-10-22T10:00:55.392Z", "status" : "Opportunity", "likelihood" : 30, "apply_to_all" : false, "sla_id" : null }, "errors" : "Customer can't be blank" } } } } } }, "delete" : { "summary" : "Deletes a Contract by ID", "tags" : [ "Contract" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Contracts - Delete\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/customers" : { "get" : { "summary" : "Returns a paginated list of customers", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - List/Search\nSingle-Customer Users can only access own customer (self).\n", "parameters" : [ { "name" : "sort", "in" : "query", "required" : false, "description" : "A customer field to order by. Examples \"firstname ASC\", \"city DESC\".", "schema" : { "type" : "string" } }, { "name" : "query", "in" : "query", "required" : false, "description" : "Search query", "schema" : { "type" : "string" } }, { "name" : "firstname", "in" : "query", "required" : false, "description" : "Any customers with a first name like the parameter", "schema" : { "type" : "string" } }, { "name" : "lastname", "in" : "query", "required" : false, "description" : "Any customers with a last name like the parameter", "schema" : { "type" : "string" } }, { "name" : "business_name", "in" : "query", "required" : false, "description" : "Any customers with a business name like the parameter", "schema" : { "type" : "string" } }, { "name" : "id", "in" : "query", "required" : false, "description" : "Any customers with ID included in the list", "schema" : { "type" : "array", "items" : { "type" : "integer" } } }, { "name" : "not_id", "in" : "query", "required" : false, "description" : "Any customers with ID not included in the list", "schema" : { "type" : "array", "items" : { "type" : "integer" } } }, { "name" : "email", "in" : "query", "required" : false, "description" : "", "schema" : { "type" : "string" } }, { "name" : "include_disabled", "in" : "query", "required" : false, "description" : "Whether or not the returned list of customers includes disabled customers", "schema" : { "type" : "string", "default" : false } }, { "name" : "page", "in" : "query", "required" : false, "description" : "Returns provided page of results, each 'page' contains 25 results", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customers" : [ { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T08:33:21.053Z", "updated_at" : "2019-10-21T08:33:21.053Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=81lcr4ua1parftzvbgk9", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } ], "meta" : { "total_pages" : 1, "total_entries" : 1, "per_page" : 100, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates a Customer", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Create\n", "requestBody" : { "$ref" : "#/components/requestBodies/Customer" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T08:33:21.053Z", "updated_at" : "2019-10-21T08:33:21.053Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=81lcr4ua1parftzvbgk9", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Email is not an email", "Email Only able to parse up to \"it is not an email\"" ], "params" : { "business_name" : "Real Business", "firstname" : "First", "lastname" : "Last", "email" : "it is not an email" } } } } } } } }, "/customers/{id}" : { "get" : { "summary" : "Retrieves a Customer by ID", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - View Detail\nSingle-Customer Users can only access own customer (self).\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T08:33:21.053Z", "updated_at" : "2019-10-21T08:33:21.053Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=81lcr4ua1parftzvbgk9", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Customer by ID", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own customer (self).\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Customer" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T08:33:21.053Z", "updated_at" : "2019-10-21T08:33:21.053Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=81lcr4ua1parftzvbgk9", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Email is not an email", "Email Only able to parse up to \"not an email\"" ] } } } } } }, "delete" : { "summary" : "Deletes a Customer by ID", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Delete\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "Customer was deleted from the system." } } } }, "404" : { "description" : "Invalid request" } } } }, "/customers/latest" : { "get" : { "summary" : "Returns latest Customer", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own customer (self).\n", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T08:33:21.053Z", "updated_at" : "2019-10-21T08:33:21.053Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=81lcr4ua1parftzvbgk9", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } } } } }, "/customers/autocomplete" : { "get" : { "summary" : "Returns a paginated list of customers for autocomplete query", "tags" : [ "Customer" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "query", "in" : "query", "description" : "Search query", "schema" : { "type" : "string" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customers" : [ { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-21T08:33:21.053Z", "updated_at" : "2019-10-21T08:33:21.053Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=81lcr4ua1parftzvbgk9", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } ] } } } } } } }, "/estimates" : { "get" : { "summary" : "Returns a paginated list of Estimates", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - List/Search\n", "parameters" : [ { "name" : "mine", "in" : "query", "description" : "Returns estimates that belong to the current user", "schema" : { "type" : "boolean" } }, { "name" : "status", "in" : "query", "description" : "Returns estimates with a given status. Possible values are 'approved' and 'declined'.", "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 50 results", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "estimates" : [ { "id" : 1, "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "name" : "MyString", "number" : "MyString", "status" : "Fresh", "created_at" : "2019-10-22T11:45:33.866Z", "updated_at" : "2019-10-22T11:45:33.866Z", "date" : "2013-10-08T14:16:10.000Z", "subtotal" : "9.99", "total" : "9.99", "tax" : "9.99", "ticket_id" : null, "pdf_url" : null, "location_id" : null, "invoice_id" : null, "employee" : "MyString" } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates an Estimate", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - Create\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "number" : { "type" : "string" }, "name" : { "type" : "string" }, "date" : { "type" : "string", "format" : "date-time" }, "customer_id" : { "type" : "integer" }, "note" : { "type" : "string" }, "status" : { "type" : "string", "description" : "Valid values are Fresh, Draft, Approved, Declined." }, "ticket_id" : { "type" : "integer" }, "location_id" : { "type" : "integer" }, "line_items" : { "type" : "array", "description" : "Array of Line Items.", "items" : { "type" : "object", "properties" : { "item" : { "type" : "string" }, "name" : { "type" : "string" }, "product_id" : { "type" : "integer" }, "quantity" : { "type" : "integer" } } } }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "estimate" : { "id" : 1, "customer_id" : 1, "name": "MyString", "customer_business_then_name" : "Walkin Customer", "number" : "MyString", "status" : "Fresh", "created_at" : "2019-10-22T11:45:33.866Z", "updated_at" : "2019-10-22T11:45:33.866Z", "date" : "2013-10-08T14:16:10.000Z", "subtotal" : "9.99", "total" : "9.99", "tax" : "9.99", "ticket_id" : null, "pdf_url" : null, "location_id" : null, "invoice_id" : null, "employee" : "MyString" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "customer_id" : [ "can't be blank" ], "date" : [ "can't be blank" ] } } } } } } }, "/estimates/{id}" : { "get" : { "summary" : "Retrieves an Estimate by ID or number", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "description" : "Estimate ID", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "number", "in" : "query", "description" : "Estimate number is used when the server cannot find an Estimate by ID", "schema" : { "type" : "string" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "estimate" : { "id" : 1, "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "name": "MyString", "number" : "MyString", "status" : "Fresh", "created_at" : "2019-10-22T11:45:33.866Z", "updated_at" : "2019-10-22T11:45:33.866Z", "date" : "2013-10-08T14:16:10.000Z", "subtotal" : "9.99", "total" : "9.99", "tax" : "9.99", "ticket_id" : null, "pdf_url" : null, "location_id" : null, "invoice_id" : null, "employee" : "MyString" } } } } } } }, "put" : { "summary" : "Updates an existing Estimate by ID", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "number" : { "type" : "string" }, "name" : { "type" : "string" }, "date" : { "type" : "string", "format" : "date-time" }, "customer_id" : { "type" : "integer" }, "note" : { "type" : "string" }, "status" : { "type" : "string", "description" : "Valid values are Fresh, Draft, Approved, Declined." }, "ticket_id" : { "type" : "integer" }, "location_id" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "estimate" : { "id" : 1, "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "name" : "MyString", "number" : "MyString", "status" : "Fresh", "created_at" : "2019-10-22T11:45:33.866Z", "updated_at" : "2019-10-22T11:45:33.866Z", "date" : "2013-10-08T14:16:10.000Z", "subtotal" : "9.99", "total" : "9.99", "tax" : "9.99", "ticket_id" : null, "pdf_url" : null, "location_id" : null, "invoice_id" : null, "employee" : "MyString" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "date" : [ "can't be blank" ] } } } } } }, "delete" : { "summary" : "Deletes an Estimate by ID", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - Delete\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "1: We deleted # 123" } } } } } } }, "/estimates/{id}/print" : { "post" : { "summary" : "Queues a print job for an Estimate", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "We queued up a print job" } } } } } } }, "/estimates/{id}/email" : { "post" : { "summary" : "Sends an Estimate to a Customer", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "We queued up a print job" } } } } } } }, "/estimates/{id}/line_items" : { "post" : { "summary" : "Adds a Line Item to an Estimate", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/LineItem" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "estimate" : { "account_id" : 1, "id" : 11, "updated_at" : "2019-10-25T11:31:02.793Z", "customer_id" : 1, "employee" : "MyString", "payment_type" : "MyString", "number" : "MyString", "labor" : "9.99", "total" : "0.0", "subtotal" : "0.0", "tax" : "0.0", "paid" : false, "date" : "2013-10-08T14:16:10.000Z", "status_date" : "2013-10-08T14:16:10.000Z", "status_changed_by" : null, "notax" : false, "ticket_id" : null, "note" : "MyText", "category" : "MyString", "hardwarecost" : "0.0", "location_id" : null, "pdf" : { "url" : null }, "signature_data" : "MyText", "signature_name" : "MyString", "created_at" : "2019-10-25T11:31:02.688Z", "invoice_id" : null, "contact_id" : null, "tax_rate_id" : 1, "converted_at" : null, "last_emailed" : null, "status" : "Fresh", "disabled" : false, "signature_date" : null, "multi_tax" : null, "name" : null }, "line_item" : { "id" : 1, "created_at" : "2019-10-25T11:31:02.763Z", "updated_at" : "2019-10-25T11:31:02.763Z", "invoice_id" : null, "item" : "Manual Item", "name" : "Item Name", "cost" : "0.0", "price" : "0.0", "quantity" : "1.0", "product_id" : null, "taxable" : true, "discount_percent" : null, "position" : 1, "invoice_bundle_id" : null, "discount_dollars" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "errors" : "validation error: Item can't be blank" } } } } } } }, "/estimates/{id}/convert_to_invoice" : { "post" : { "summary" : "Convert an Estimate to an Invoice", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Estimates - View Details\" and \"Invoices - Create\"\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "invoice" : { "id" : 1, "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "number" : "1001", "created_at" : "2019-10-25T11:53:10.575Z", "updated_at" : "2019-10-25T11:53:10.609Z", "date" : "2019-10-25T00:00:00.000Z", "due_date" : "2019-10-25T00:00:00.000Z", "subtotal" : "0.0", "total" : "0.0", "tax" : "0.0", "verified_paid" : false, "tech_marked_paid" : false, "ticket_id" : null, "pdf_url" : null, "is_paid" : false, "location_id" : null, "po_number" : null, "contact_id" : null, "note" : null, "hardwarecost" : "0.0" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : "Validation failed: Item can't be blank, Name can't be blank" } } } } } } }, "/estimates/{id}/line_items/{line_item_id}" : { "put" : { "summary" : "Updates a Line Item", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "line_item_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/LineItem" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "line_item" : { "id" : 3, "created_at" : "2019-10-25T12:43:19.817Z", "updated_at" : "2019-10-25T12:43:19.839Z", "invoice_id" : null, "item" : "New Updated Item", "name" : "Some big thingy", "cost" : "10.0", "price" : "64.99", "quantity" : "1.0", "product_id" : null, "taxable" : true, "discount_percent" : null, "position" : 1, "invoice_bundle_id" : null, "discount_dollars" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "item" : [ "can't be blank" ] } } } } } }, "delete" : { "summary" : "Deletes a Line Item", "tags" : [ "Estimate" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Estimates - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "line_item_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "estimate" : { "id" : 1, "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "number" : "MyString", "status" : "Fresh", "created_at" : "2019-10-22T11:45:33.866Z", "updated_at" : "2019-10-22T11:45:33.866Z", "date" : "2013-10-08T14:16:10.000Z", "subtotal" : "9.99", "total" : "9.99", "tax" : "9.99", "ticket_id" : null, "pdf_url" : null, "location_id" : null, "invoice_id" : null, "employee" : "MyString" } } } } } } } }, "/invoices" : { "get" : { "summary" : "Returns a paginated list of Invoices", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Invoices - List/Search\n", "parameters" : [ { "name" : "paid", "in" : "query", "description" : "Whether or not the returned list of invoices has been marked as paid", "required" : false, "schema" : { "type" : "boolean" } }, { "name" : "unpaid", "in" : "query", "description" : "Whether or not the returned list of invoices has been marked as unpaid", "required" : false, "schema" : { "type" : "boolean" } }, { "name" : "ticket_id", "in" : "query", "description" : "Any invoices attached to a Ticket ID", "required" : false, "schema" : { "type" : "integer" } }, { "name" : "since_updated_at", "in" : "query", "description" : "Any invoices updated since a date", "required" : false, "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Invoices found", "content" : { "application/json" : { "example" : { "invoices" : [ { "id" : 6, "customer_id" : 2, "customer_business_then_name" : "Wonk Donk", "number" : "4444", "created_at" : "2019-11-06T08:24:20.821Z", "updated_at" : "2019-11-06T08:24:20.821Z", "date" : "2019-11-06T00:00:00.000Z", "due_date" : "2019-11-06T00:00:00.000Z", "subtotal" : "0.0", "total" : "0.0", "tax" : "0.0", "verified_paid" : false, "tech_marked_paid" : false, "ticket_id" : 1, "pdf_url" : null, "is_paid" : false, "location_id" : null, "po_number" : null, "contact_id" : null, "note" : null, "hardwarecost" : null, "user_id" : null } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates an Invoice", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Invoices - Create\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "balance_due" : { "type" : "integer" }, "customer_id" : { "type" : "integer" }, "number" : { "type" : "string" }, "date" : { "type" : "string", "format" : "date-time" }, "customer_business_then_name" : { "type" : "string" }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" }, "due_date" : { "type" : "string", "format" : "date" }, "subtotal" : { "type" : "string" }, "total" : { "type" : "string" }, "tax" : { "type" : "string" }, "verified_paid" : { "type" : "boolean" }, "tech_marked_paid" : { "type" : "boolean" }, "ticket_id" : { "type" : "integer" }, "pdf_url" : { "type" : "string" }, "is_paid" : { "type" : "boolean" }, "location_id" : { "type" : "integer" }, "po_number" : { "type" : "string" }, "contact_id" : { "type" : "integer" }, "note" : { "type" : "string" }, "hardwarecost" : { "type" : "number", "format" : "number" }, "line_items" : { "type" : "array", "items" : { "type" : "object", "properties" : { "item" : { "type" : "string" }, "name" : { "type" : "string" }, "product_id" : { "type" : "integer" }, "quantity" : { "type" : "number" }, "cost" : { "type" : "number" }, "price" : { "type" : "number" }, "discount_percent" : { "type" : "integer" }, "taxable" : { "type" : "boolean" }, "upc_code" : { "type" : "string" }, "tax_note" : { "type" : "string" }, "wholesale" : { "type" : "number" }, "invoice_bundle_id" : { "type" : "integer" }, "tax_rate_id" : { "type" : "integer" }, "user_id" : { "type" : "integer" }, "position" : { "type" : "integer" } } } } }, "required" : [ "customer_id", "number", "date" ] } } }, "description" : "Invoice object that needs to be added" }, "responses" : { "200" : { "description" : "Invoice created", "content" : { "application/json" : { "example" : { "invoice" : { "id" : 1, "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "number" : "9999", "created_at" : "2019-06-19T07:45:43.345Z", "updated_at" : "2019-06-19T07:45:43.345Z", "date" : "2019-06-19T00:00:00.000Z", "due_date" : "2019-06-19T00:00:00.000Z", "subtotal" : "0.0", "total" : "0.0", "tax" : "0.0", "verified_paid" : false, "tech_marked_paid" : false, "ticket_id" : null, "pdf_url" : null, "is_paid" : false, "location_id" : null, "po_number" : null, "contact_id" : null, "note" : null, "hardwarecost" : null, "user_id" : 1 } } } } }, "422" : { "description" : "Invalid request" } } } }, "/invoices/{id}" : { "get" : { "summary" : "Retrieves an Invoice by ID or Number", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Invoices - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID or Number of Invoice to retrieve", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Invoice found", "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "number" : { "type" : "string" }, "date" : { "type" : "string", "format" : "date-time" }, "date_received" : { "type" : "string", "format" : "date-time" }, "customer_business_then_name" : { "type" : "string" }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" }, "due_date" : { "type" : "string", "format" : "date" }, "subtotal" : { "type" : "string" }, "total" : { "type" : "string" }, "tax" : { "type" : "string" }, "verified_paid" : { "type" : "boolean" }, "tech_marked_paid" : { "type" : "boolean" }, "ticket_id" : { "type" : "integer" }, "pdf_url" : { "type" : "string" }, "is_paid" : { "type" : "boolean" }, "location_id" : { "type" : "integer" }, "po_number" : { "type" : "string" }, "contact_id" : { "type" : "integer" }, "note" : { "type" : "string" }, "hardwarecost" : { "type" : "number", "format" : "number" }, "user_id" : { "type" : "integer" }, "customer" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "firstname" : { "type" : "string" }, "lastname" : { "type" : "string" }, "fullname" : { "type" : "string" }, "business_name" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "mobile" : { "type" : "string" }, "created_at" : { "type" : "string" }, "updated_at" : { "type" : "string" }, "pdf_url" : { "type" : "string" }, "address" : { "type" : "string" }, "address_2" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "latitude" : { "type" : "string" }, "longitude" : { "type" : "string" }, "notes" : { "type" : "string" }, "get_sms" : { "type" : "boolean" }, "opt_out" : { "type" : "boolean" }, "disabled" : { "type" : "boolean" }, "no_email" : { "type" : "boolean" }, "location_name" : { "type" : "string" }, "location_id" : { "type" : "integer" }, "properties" : { "type" : "object" }, "online_profile_url" : { "type" : "string" }, "tax_rate_id" : { "type" : "integer" }, "notification_email" : { "type" : "string" }, "invoice_cc_emails" : { "type" : "string" }, "invoice_term_id" : { "type" : "integer" }, "referred_by" : { "type" : "string" }, "ref_customer_id" : { "type" : "integer" }, "business_and_full_name" : { "type" : "string" }, "business_then_name" : { "type" : "string" }, "contacts" : { "type" : "array", "items" : { "type" : "object", "properties" : { "email" : { "type" : "string" } } } } } }, "line_items" : { "type" : "array", "items" : { "type" : "object", "properties" : { "item" : { "type" : "string" }, "name" : { "type" : "string" } } } }, "payments" : { "type" : "array", "items" : { "type" : "object", "properties" : { "id" : { "type" : "integer" } } } } } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing invoice by ID", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "This updates an existing Invoice, all parameters overwrite existing params", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice to update", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "number" : { "type" : "string" }, "date" : { "type" : "string", "format" : "date-time" }, "customer_business_then_name" : { "type" : "string" }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" }, "due_date" : { "type" : "string", "format" : "date" }, "subtotal" : { "type" : "string" }, "total" : { "type" : "string" }, "tax" : { "type" : "string" }, "ticket_id" : { "type" : "integer" }, "pdf_url" : { "type" : "string" }, "location_id" : { "type" : "integer" }, "po_number" : { "type" : "string" }, "contact_id" : { "type" : "integer" }, "note" : { "type" : "string" }, "hardwarecost" : { "type" : "number", "format" : "number" } } } } }, "description" : "Invoice properties to update" }, "responses" : { "200" : { "description" : "Invoice Updated", "content" : { "application/json" : { "example" : { "invoice" : { "id" : 3, "customer_id" : 2, "customer_business_then_name" : "Wonk Donk", "number" : "1233", "created_at" : "2019-07-01T21:37:26.051Z", "updated_at" : "2019-07-01T21:37:26.204Z", "date" : "2019-07-01T00:00:00.000Z", "due_date" : "2019-07-01T00:00:00.000Z", "subtotal" : "0.0", "total" : "0.0", "tax" : "0.0", "verified_paid" : false, "tech_marked_paid" : false, "ticket_id" : null, "pdf_url" : null, "is_paid" : false, "location_id" : null, "po_number" : null, "contact_id" : null, "note" : null, "hardwarecost" : "0.0" } } } } }, "404" : { "description" : "Invalid request" } } }, "delete" : { "summary" : "Deletes an invoice by ID", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Returns 200 even if the delete fails", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice to delete", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Invalid request" } } } }, "/invoices/{id}/line_items/{line_item_id}" : { "put" : { "summary" : "Updates an a line item of an invoice by ID", "tags" : [ "Invoice/Line item" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "This updates an existing Invoice's line item, all parameters overwrite existing params", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice to update", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "line_item_id", "in" : "path", "description" : "ID of line item to update", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/LineItem2" }, "responses" : { "200" : { "description" : "Invoice is already paid" }, "404" : { "description" : "Invalid request" } } }, "delete" : { "summary" : "Deletes an a line item of an invoice by ID", "tags" : [ "Invoice/Line item" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "This deletes an existing Invoice's line item", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice to delete", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "line_item_id", "in" : "path", "description" : "ID of line item to update", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Line item deleted" }, "404" : { "description" : "Invalid request" } } } }, "/invoices/{id}/line_items" : { "post" : { "summary" : "Creates a new line item", "tags" : [ "Invoice/Line item" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Invoices - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice to update", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/LineItem2" }, "responses" : { "200" : { "description" : "Line item created" }, "422" : { "description" : "Invalid request" } } } }, "/invoices/{id}/ticket" : { "get" : { "summary" : "Returns the associated ticket for an invoice", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Invoices - View Details\" and \"Tickets - View Details\"\n", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice whose Ticket will be returned", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Invoice's ticket found" }, "404" : { "description" : "Invalid request" } } } }, "/invoices/{id}/print" : { "post" : { "summary" : "Queues a print job for an invoice", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Invoices - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "description" : "The ID of the Invoice to print", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Invoice print job queued" }, "404" : { "description" : "Invalid request" } } } }, "/invoices/{id}/email" : { "post" : { "summary" : "Sends invoice to customer", "tags" : [ "Invoice" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Invoices - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "description" : "ID of Invoice which will be emailed", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "Invoice email sent" }, "404" : { "description" : "Invalid request" } } } }, "/items" : { "get" : { "summary" : "Returns a paginated list of Part Orders", "tags" : [ "Item" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Parts Orders - List/Search\n", "parameters" : [ { "name" : "completed", "in" : "query", "description" : "Returns only completed part orders", "required" : false, "schema" : { "type" : "boolean" } }, { "name" : "query", "in" : "query", "description" : "Search query", "required" : false, "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 50 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "items" : [ { "id" : 1, "requestedon" : "2019-09-28T13:18:39.513Z", "ticketnum" : "123", "parturl" : "https://amazon.com/", "shipping" : null, "deststore" : null, "orderedby" : null, "orderedon" : null, "trackingnum" : "12345", "receivedon" : null, "price" : "0.0", "account_id" : 1, "description" : null, "destination_location_id" : null, "from_location_id" : null, "from_name" : null, "received_at" : null, "user_id" : null, "created_at" : "2019-10-28T14:18:39.515Z", "updated_at" : "2019-10-28T14:18:39.515Z", "due_at" : null, "ticket_id" : null, "logistic_state" : null, "product_id" : null, "quantity" : null, "round_trip" : false, "trip_leg" : null, "retail_cents" : null, "taxable" : true, "converted" : false, "notes" : null, "refurb_id" : null, "invoice_id" : null } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } } }, "/leads" : { "get" : { "summary" : "Returns a paginated list of Leads", "tags" : [ "Lead" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Leads - List/Search\n", "parameters" : [ { "name" : "statuses", "in" : "query", "description" : "Array of statuses. Possible values are \"New\", \"Lead\", \"First Contact\", \"Opportunity\", \"Prospect\", \"Waiting on Client\", \"In Negotiation\", \"Pending\", \"Won\", \"Lost\".", "schema" : { "type" : "array", "items" : { "type" : "string" } } }, { "name" : "status_list", "in" : "query", "description" : "Comma separated list of statuses.", "schema" : { "type" : "string" } }, { "name" : "users", "in" : "query", "description" : "Array of user IDs.", "schema" : { "type" : "array", "items" : { "type" : "integer" } } }, { "name" : "mailbox_ids", "in" : "query", "description" : "Array of Mailbox IDs", "schema" : { "type" : "array", "items" : { "type" : "integer" } } }, { "name" : "has_ticket", "in" : "query", "description" : "", "schema" : { "type" : "boolean" } }, { "name" : "query", "in" : "query", "description" : "Search query", "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "leads" : [ { "id" : 1, "first_name" : "Susy", "last_name" : "Ratke", "email" : "walkin@somedomain.com", "phone" : "", "mobile" : "", "created_at" : "2019-10-23T06:49:14.560Z", "updated_at" : "2019-10-23T06:49:14.560Z", "address" : "", "city" : "", "state" : "", "zip" : "", "ticket_subject" : null, "ticket_description" : null, "ticket_problem_type" : null, "ticket_id" : null, "customer_id" : 1, "contact_id" : null, "mailbox_id" : null, "mailbox_name" : null, "business_then_name" : "Klocko-Stracke", "has_attachments" : false, "message_read" : false, "status" : "New", "user_id" : null, "location_id" : null } ], "meta" : { "total_pages" : 1, "total_entries" : 1, "per_page" : 25, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates a Lead", "tags" : [ "Lead" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: None\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "address" : { "type" : "string" }, "business_name" : { "type" : "string" }, "city" : { "type" : "string" }, "zip" : { "type" : "string" }, "converted" : { "type" : "boolean" }, "message_read" : { "type" : "boolean" }, "disabled" : { "type" : "boolean" }, "email" : { "type" : "string" }, "first_name" : { "type" : "string" }, "last_name" : { "type" : "string" }, "mobile" : { "type" : "string" }, "phone" : { "type" : "string" }, "state" : { "type" : "string" }, "ticket_description" : { "type" : "string" }, "ticket_problem_type" : { "type" : "string" }, "ticket_subject" : { "type" : "string" }, "location_id" : { "type" : "integer" }, "from_check_in" : { "type" : "boolean" }, "customer_id" : { "type" : "integer" }, "ticket_id" : { "type" : "integer" }, "hidden_notes" : { "type" : "string" }, "contact_id" : { "type" : "integer" }, "appointment_time" : { "type" : "string" }, "status" : { "type" : "string" }, "user_id" : { "type" : "integer" }, "ticket_type_id" : { "type" : "integer" }, "mailbox_id" : { "type" : "integer" }, "opportunity_start_date" : { "type" : "string", "format" : "date-time" }, "opportunity_amount_dollars" : { "type" : "number" }, "likelihood" : { "type" : "integer" }, "properties" : { "type" : "object" }, "ticket_properties" : { "type" : "object" }, "customer_purchase_id" : { "type" : "integer" }, "signature_date" : { "type" : "string", "format" : "date-time" }, "signature_name" : { "type" : "string" }, "signature_data" : { "type" : "string" }, "appointment_type_id" : { "type" : "integer" } } } } }, "description" : "Lead object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "lead" : { "id" : 1, "first_name" : "Susy", "last_name" : "Ratke", "email" : "walkin@somedomain.com", "phone" : "", "mobile" : "", "created_at" : "2019-10-23T06:49:14.560Z", "updated_at" : "2019-10-23T06:49:14.560Z", "address" : "", "city" : "", "state" : "", "zip" : "", "ticket_subject" : null, "ticket_description" : null, "ticket_problem_type" : null, "ticket_id" : null, "customer_id" : 1, "contact_id" : null, "mailbox_id" : null, "mailbox_name" : null, "business_then_name" : "Klocko-Stracke", "has_attachments" : false, "message_read" : false, "status" : "New", "user_id" : null, "location_id" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Ticket description can't be blank" ], "params" : { "from_check_in" : true } } } } } } } }, "/leads/{id}" : { "get" : { "summary" : "Retrieves a Lead by ID", "tags" : [ "Lead" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Leads - List/Search\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "lead" : { "id" : 1, "first_name" : "Susy", "last_name" : "Ratke", "email" : "walkin@somedomain.com", "phone" : "", "mobile" : "", "created_at" : "2019-10-23T06:49:14.560Z", "updated_at" : "2019-10-23T06:49:14.560Z", "address" : "", "city" : "", "state" : "", "zip" : "", "ticket_subject" : null, "ticket_description" : null, "ticket_problem_type" : null, "ticket_id" : null, "customer_id" : 1, "contact_id" : null, "mailbox_id" : null, "mailbox_name" : null, "business_then_name" : "Klocko-Stracke", "has_attachments" : false, "message_read" : false, "status" : "New", "user_id" : null, "location_id" : null } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Lead by ID", "tags" : [ "Lead" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: None\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "address" : { "type" : "string" }, "business_name" : { "type" : "string" }, "city" : { "type" : "string" }, "zip" : { "type" : "string" }, "converted" : { "type" : "boolean" }, "message_read" : { "type" : "boolean" }, "disabled" : { "type" : "boolean" }, "email" : { "type" : "string" }, "first_name" : { "type" : "string" }, "last_name" : { "type" : "string" }, "mobile" : { "type" : "string" }, "phone" : { "type" : "string" }, "state" : { "type" : "string" }, "ticket_description" : { "type" : "string" }, "ticket_problem_type" : { "type" : "string" }, "ticket_subject" : { "type" : "string" }, "location_id" : { "type" : "integer" }, "from_check_in" : { "type" : "boolean" }, "customer_id" : { "type" : "integer" }, "ticket_id" : { "type" : "integer" }, "hidden_notes" : { "type" : "string" }, "contact_id" : { "type" : "integer" }, "appointment_time" : { "type" : "string" }, "status" : { "type" : "string" }, "user_id" : { "type" : "integer" }, "ticket_type_id" : { "type" : "integer" }, "mailbox_id" : { "type" : "integer" }, "opportunity_start_date" : { "type" : "string", "format" : "date-time" }, "opportunity_amount_dollars" : { "type" : "number" }, "likelihood" : { "type" : "integer" }, "properties" : { "type" : "object" }, "ticket_properties" : { "type" : "object" }, "customer_purchase_id" : { "type" : "integer" }, "signature_date" : { "type" : "string", "format" : "date-time" }, "signature_name" : { "type" : "string" }, "signature_data" : { "type" : "string" }, "appointment_type_id" : { "type" : "integer" } } } } }, "description" : "Lead object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "lead" : { "id" : 1, "first_name" : "Susy", "last_name" : "Ratke", "email" : "walkin@somedomain.com", "phone" : "", "mobile" : "", "created_at" : "2019-10-23T06:49:14.560Z", "updated_at" : "2019-10-23T06:49:14.560Z", "address" : "", "city" : "", "state" : "", "zip" : "", "ticket_subject" : null, "ticket_description" : null, "ticket_problem_type" : null, "ticket_id" : null, "customer_id" : 1, "contact_id" : null, "mailbox_id" : null, "mailbox_name" : null, "business_then_name" : "Klocko-Stracke", "has_attachments" : false, "message_read" : false, "status" : "New", "user_id" : null, "location_id" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Ticket description can't be blank" ], "params" : { "ticket_description" : "" } } } } } } } }, "/line_items" : { "get" : { "summary" : "Returns a paginated list of Line Items", "tags" : [ "Line Item" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "invoice_id", "in" : "query", "required" : false, "description" : "Returns Line Items that belong to an Invoice ID", "schema" : { "type" : "integer" } }, { "name" : "estimate_id", "in" : "query", "required" : false, "description" : "Returns Line Items that belong to an Estimate ID", "schema" : { "type" : "integer" } }, { "name" : "invoice_id_not_null", "in" : "query", "required" : false, "description" : "Returns Line Items that belong to any Invoice", "schema" : { "type" : "boolean" } }, { "name" : "estimate_id_not_null", "in" : "query", "required" : false, "description" : "Returns Line Items that belong to any Estimate", "schema" : { "type" : "boolean" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "line_items" : [ { "id" : 1, "created_at" : "2019-10-28T14:38:47.864Z", "updated_at" : "2019-10-28T14:38:47.864Z", "invoice_id" : 1, "item" : "Test Item", "name" : "Some big thingy", "cost" : "10.0", "price" : "64.99", "quantity" : "1.0", "product_id" : null, "taxable" : true, "discount_percent" : null, "position" : 1, "invoice_bundle_id" : null, "discount_dollars" : null } ], "meta" : { "total_pages" : 1, "total_entries" : 1, "per_page" : 100, "page" : 1 } } } } } } } }, "/new_ticket_forms" : { "get" : { "summary" : "Returns a paginated list of Ticket Forms", "tags" : [ "New Ticket Form" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Ticket Workflows - Manage\n", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "new_ticket_forms" : [ { "id" : 1, "name" : "Phone Repair", "default" : false, "disabled" : false, "data" : { "customer_details" : { "fields" : { "firstname" : "require", "lastname" : "require", "business_name" : "show", "email" : "show", "phone" : "show", "address" : "hide", "referred_by" : "show", "tax_rate_id" : "hide", "get_sms" : "hide", "opt_out" : "hide", "no_email" : "hide", "send_portal_invitation" : "hide", "notification_email" : "hide", "invoice_cc_emails" : "hide", "invoice_term_id" : "hide", "custom_fields" : "show" }, "defaults" : { "placeholder" : "" }, "position" : "1" }, "ticket_details" : { "fields" : { "subject" : "require", "description" : "require", "user_id" : "show", "priority" : "hide", "due_date" : "hide", "problem_type" : "require", "notify_emails" : "hide", "category" : "hide", "address_id" : "hide", "contract_id" : "hide", "sla_id" : "hide", "ticket_type_id" : "show", "do_not_email" : "show", "isapproved" : "hide", "pre_diagnosed" : "hide" }, "defaults" : { "placeholder" : "", "isapproved" : "true", "pre_diagnosed" : "true" }, "disabled" : [ "subject", "problem_type" ], "position" : "2" }, "worksheets" : { "position" : "3" }, "related_assets" : { "position" : "4" } } } ] } } } } } } }, "/new_ticket_forms/{id}" : { "get" : { "summary" : "Retrieves a Ticket Form", "tags" : [ "New Ticket Form" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Create\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "new_ticket_form" : { "id" : 1, "name" : "Phone Repair", "default" : false, "disabled" : false, "data" : { "customer_details" : { "fields" : { "firstname" : "require", "lastname" : "require", "business_name" : "show", "email" : "show", "phone" : "show", "address" : "hide", "referred_by" : "show", "tax_rate_id" : "hide", "get_sms" : "hide", "opt_out" : "hide", "no_email" : "hide", "send_portal_invitation" : "hide", "notification_email" : "hide", "invoice_cc_emails" : "hide", "invoice_term_id" : "hide", "custom_fields" : "show" }, "defaults" : { "placeholder" : "" }, "position" : "1" }, "ticket_details" : { "fields" : { "subject" : "require", "description" : "require", "user_id" : "show", "priority" : "hide", "due_date" : "hide", "problem_type" : "require", "notify_emails" : "hide", "category" : "hide", "address_id" : "hide", "contract_id" : "hide", "sla_id" : "hide", "ticket_type_id" : "show", "do_not_email" : "show", "isapproved" : "hide", "pre_diagnosed" : "hide" }, "defaults" : { "placeholder" : "", "isapproved" : "true", "pre_diagnosed" : "true" }, "disabled" : [ "subject", "problem_type" ], "position" : "2" }, "worksheets" : { "position" : "3" }, "related_assets" : { "position" : "4" } } } } } } }, "404" : { "description" : "Invalid request" } } } }, "/new_ticket_forms/{id}/process_form" : { "post" : { "summary" : "Creates a new Ticket for a Ticket Form", "tags" : [ "New Ticket Form" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Create\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_details" : { "type" : "object", "properties" : { "firstname" : { "type" : "string" }, "properties" : { "type" : "object", "properties" : { } }, "lastname" : { "type" : "string" }, "business_name" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "mobile" : { "type" : "string" }, "address" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "get_sms" : { "type" : "boolean" }, "opt_out" : { "type" : "boolean" }, "no_email" : { "type" : "boolean" } } }, "ticket_details" : { "type" : "object", "properties" : { "properties" : { "type" : "object" }, "subject" : { "type" : "string" }, "problem_type" : { "type" : "string" }, "description" : { "type" : "string" }, "do_not_email" : { "type" : "boolean" } } }, "appointments" : { "type" : "object", "properties" : { "properties" : { "type" : "object" }, "summary" : { "type" : "string" }, "description" : { "type" : "string" }, "location" : { "type" : "string" }, "user_id" : { "type" : "integer" }, "start_at" : { "type" : "string", "format" : "date-time" }, "end_at" : { "type" : "string" } } } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket" : { "id" : 1, "customer_id" : 2, "subject" : "Ticket Subject", "status" : "New", "problem_type" : "Hardware", "created_at" : "2019-10-29T12:05:24.322Z", "updated_at" : "2019-10-29T12:05:24.382Z", "category" : "Standard", "referredby" : null, "isapproved" : false, "memory" : null, "upgradeoffered" : false, "password" : null, "cancelled" : false, "power_adapter" : false, "start_at" : null, "end_at" : null, "user_id" : 1, "account_id" : 1, "checkbox_results" : null, "textbox_results" : null, "due_date" : "2019-11-01T12:05:24.314Z", "number" : 4201, "location_id" : null, "pdf" : { "url" : null }, "signature_name" : null, "signature_data" : "", "gevent_id" : null, "intake_form_pdf" : { "url" : null }, "contact_id" : null, "properties" : { }, "ticket_type_id" : null, "priority" : null, "notify_emails" : null, "disabled" : false, "ticket_recurring_schedule_id" : null, "time_to_resolve_minutes" : null, "original_customer_id" : 2, "original_ticket_id" : null, "sla_id" : null, "contract_id" : null, "address_id" : null, "creator_id" : null, "signature_date" : null, "resolved_at" : null, "all_notify_emails" : null, "outtake_form_name" : null, "outtake_form_data" : null, "outtake_form_date" : null, "custom_fields_cache" : " ", "with_initial_issue_body" : null, "with_items_any" : null }, "invoice" : null, "redirect" : "/tickets/1", "message" : "Ticket created.." } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "errors" : { "appointments" : { "summary" : [ "can't be blank" ], "start_at" : [ "can't be blank" ], "end_at" : [ "can't be blank" ] } } } } } } } } }, "/payment_methods" : { "get" : { "summary" : "Returns a paginated list of Payment Methods", "tags" : [ "Payment Method" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "All Users except Single Customer Users may use this action.\n", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment_methods" : [ { "id" : 1, "name" : "Credit Card", "created_at" : "2019-10-28T09:55:44.304Z", "updated_at" : "2019-10-28T09:55:44.304Z", "uses_card_processing" : false }, { "id" : 2, "name" : "Cash", "created_at" : "2019-10-28T09:55:44.307Z", "updated_at" : "2019-10-28T09:55:44.307Z", "uses_card_processing" : false }, { "id" : 3, "name" : "Check", "created_at" : "2019-10-28T09:55:44.309Z", "updated_at" : "2019-10-28T09:55:44.309Z", "uses_card_processing" : false }, { "id" : 4, "name" : "Offline CC", "created_at" : "2019-10-28T09:55:44.312Z", "updated_at" : "2019-10-28T09:55:44.312Z", "uses_card_processing" : false }, { "id" : 5, "name" : "Quick", "created_at" : "2019-10-28T09:55:44.316Z", "updated_at" : "2019-10-28T09:55:44.316Z", "uses_card_processing" : false }, { "id" : 6, "name" : "Other", "created_at" : "2019-10-28T09:55:44.319Z", "updated_at" : "2019-10-28T09:55:44.319Z", "uses_card_processing" : false } ] } } } } } } }, "/customers/{customer_id}/payment_profiles" : { "get" : { "summary" : "Returns a paginated list of Payment Profiles", "tags" : [ "Payment Profile" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment_profiles" : [ { "id" : 1, "customer_id" : 1, "expiration" : "MyString", "customer_external_id" : null, "used_gateway" : "authorize_net", "payment_profile_id" : 1, "last_four" : "MyString", "created_at" : "2019-10-25T07:11:31.903Z", "updated_at" : "2019-10-25T07:11:31.903Z" } ] } } } } } }, "post" : { "summary" : "Creates a Payment Profile", "tags" : [ "Payment Profile" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_external_id" : { "type" : "string", "description" : "Payment Gateway's Customer token" }, "payment_profile_id" : { "type" : "string", "description" : "Payment Gateway's stored payment profile token" }, "expiration" : { "type" : "string" }, "last_four" : { "type" : "string" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment_profile" : { "id" : 1, "customer_id" : 1, "expiration" : "MyString", "customer_external_id" : null, "used_gateway" : "authorize_net", "payment_profile_id" : 1, "last_four" : "MyString", "created_at" : "2019-10-25T07:11:31.903Z", "updated_at" : "2019-10-25T07:11:31.903Z" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "message" : "Account not configured to use integrated processing." } } } } } } }, "/customers/{customer_id}/payment_profiles/{id}" : { "get" : { "summary" : "Retrieves a Payment Profile by ID", "tags" : [ "Payment Profile" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment_profile" : { "id" : 1, "customer_id" : 1, "expiration" : "MyString", "customer_external_id" : null, "used_gateway" : "authorize_net", "payment_profile_id" : 1, "last_four" : "MyString", "created_at" : "2019-10-25T07:11:31.903Z", "updated_at" : "2019-10-25T07:11:31.903Z" } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates a Payment Profile", "tags" : [ "Payment Profile" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "expiration" : { "type" : "string" }, "last_four" : { "type" : "string" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment_profile" : { "id" : 1, "customer_id" : 1, "expiration" : "MyString", "customer_external_id" : null, "used_gateway" : "authorize_net", "payment_profile_id" : 1, "last_four" : "MyString", "created_at" : "2019-10-25T07:11:31.903Z", "updated_at" : "2019-10-25T07:11:31.903Z" } } } } } } }, "delete" : { "summary" : "Deletes a Payment Profile", "tags" : [ "Payment Profile" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : true } } } }, "404" : { "description" : "Invalid request" } } } }, "/payments" : { "get" : { "summary" : "Returns a paginated list of Payments", "tags" : [ "Payment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Payments - View List\n", "parameters" : [ { "name" : "query", "in" : "query", "required" : false, "description" : "Search query", "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payments" : [ { "id" : 1, "created_at" : "2019-10-28T07:00:00.000Z", "updated_at" : "2019-10-28T10:18:14.061Z", "success" : true, "payment_amount" : 100, "invoice_ids" : [ null ], "ref_num" : "11006", "applied_at" : "2019-10-26T00:00:00.000Z", "payment_method" : "Check", "transaction_response" : null, "signature_date" : null, "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-28T10:17:58.224Z", "updated_at" : "2019-10-28T10:17:58.224Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=xw6sk8693f35nzgcb66o", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates a Payment", "tags" : [ "Payment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Payments - Create\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "invoice_id" : { "type" : "integer" }, "invoice_number" : { "type" : "string" }, "amount_cents" : { "type" : "integer" }, "address_street" : { "type" : "string" }, "address_city" : { "type" : "string" }, "address_zip" : { "type" : "string" }, "payment_method" : { "type" : "string" }, "ref_num" : { "type" : "string" }, "register_id" : { "type" : "integer" }, "signature_name" : { "type" : "string" }, "signature_data" : { "type" : "string" }, "signature_date" : { "type" : "string", "format" : "date-time" }, "credit_card_number" : { "type" : "string" }, "date_month" : { "type" : "string" }, "date_year" : { "type" : "string" }, "cvv" : { "type" : "string" }, "lastname" : { "type" : "string" }, "firstname" : { "type" : "string" }, "apply_payments" : { "type" : "object", "description" : "Object where a key is an Invoice ID and a value is a payment amount to be applied to the invoice." } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment" : { "id" : 3, "created_at" : "2019-10-28T12:45:24.315Z", "updated_at" : "2019-10-28T12:45:24.315Z", "success" : true, "payment_amount" : 10, "invoice_ids" : [ 1 ], "ref_num" : null, "applied_at" : "2019-10-28T00:00:00.000Z", "payment_method" : null, "transaction_response" : null, "tickets" : [ ] } } } } }, "422" : { "description" : "Invalid request" } } } }, "/payments/{id}" : { "get" : { "summary" : "Retrieves a Payment by ID", "tags" : [ "Payment" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Payments - View List\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "payment" : { "id" : 5, "created_at" : "2019-10-28T07:00:00.000Z", "updated_at" : "2019-10-28T13:05:27.257Z", "success" : true, "payment_amount" : 100, "invoice_ids" : [ null ], "ref_num" : "11006", "applied_at" : "2019-10-26T00:00:00.000Z", "payment_method" : "Check", "transaction_response" : null, "signature_date" : null, "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-10-28T13:05:13.781Z", "updated_at" : "2019-10-28T13:05:13.781Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=9rmh69dx953bbxmyxx3u", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] } } } } } }, "404" : { "description" : "Invalid request" } } } }, "/customers/{customer_id}/phones" : { "get" : { "summary" : "Returns a paginated list of Phones", "tags" : [ "Phone" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - View Detail\nSingle-Customer Users can only access own.\n", "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "phones" : [ { "id" : 2, "label" : "Mobile", "number" : "111222333", "customer_id" : 1, "created_at" : "2019-10-28T15:07:49.764Z", "updated_at" : "2019-10-28T15:07:49.764Z", "extension" : null }, { "id" : 1, "label" : "Phone", "number" : "123", "customer_id" : 1, "created_at" : "2019-10-28T15:07:32.225Z", "updated_at" : "2019-10-28T15:07:32.225Z", "extension" : null } ] } } } } } }, "post" : { "summary" : "Creates a Phone", "tags" : [ "Phone" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own.\n", "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Phone" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 4, "label" : null, "number" : "222000222", "customer_id" : 1, "created_at" : "2019-10-28T15:07:50.138Z", "updated_at" : "2019-10-28T15:07:50.138Z", "extension" : null } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Number can't be blank" ], "params" : { "customer_id" : "1", "number" : "" } } } } } } } }, "/customers/{customer_id}/phones/{id}" : { "put" : { "summary" : "Updates an existing Phone by ID", "tags" : [ "Phone" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own.\n", "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Phone" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 4, "label" : null, "number" : "222000222", "customer_id" : 1, "created_at" : "2019-10-28T15:07:50.138Z", "updated_at" : "2019-10-28T15:07:50.138Z", "extension" : null } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Number can't be blank" ], "params" : { "customer_id" : "1", "id" : "9", "number" : "" } } } } } } }, "delete" : { "summary" : "Deletes a Phone by ID", "tags" : [ "Phone" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Customers - Edit\nSingle-Customer Users can only access own.\n", "parameters" : [ { "name" : "customer_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/portal_users" : { "get" : { "summary" : "Returns a paginated list of Portal Users", "tags" : [ "Portal User" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "customer_id", "in" : "query", "required" : false, "description" : "Returns Portal Users that belong to a Customer ID", "schema" : { "type" : "integer" } }, { "name" : "email", "in" : "query", "required" : false, "description" : "Portal User email", "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "required" : false, "description" : "Returns provided page of results, each 'page' contains 100 results", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "portal_users" : [ { "id" : 1, "email" : "katelyn@okuneva.name", "account_id" : 1, "customer_id" : 1, "contact_id" : 1, "created_at" : "2019-10-25T13:36:47.165Z", "updated_at" : "2019-10-25T13:36:47.165Z", "portal_group_id" : 4 } ], "meta" : { "total_pages" : 1, "total_entries" : 1, "per_page" : 100, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates a Portal User", "tags" : [ "Portal User" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "requestBody" : { "$ref" : "#/components/requestBodies/PortalUser" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "email" : "katelyn@okuneva.name", "account_id" : 1, "customer_id" : 1, "contact_id" : 1, "created_at" : "2019-10-25T13:36:47.165Z", "updated_at" : "2019-10-25T13:36:47.165Z", "portal_group_id" : 4 } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Email can't be blank", "Password confirmation doesn't match Password" ], "params" : { "customer_id" : 1, "password" : "does not match", "password_confirmation" : "confirmation" } } } } } } } }, "/portal_users/{id}" : { "put" : { "summary" : "Updates an existing Portal User by ID", "tags" : [ "Portal User" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/PortalUser" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "email" : "katelyn@okuneva.name", "account_id" : 1, "customer_id" : 1, "contact_id" : 1, "created_at" : "2019-10-25T13:36:47.165Z", "updated_at" : "2019-10-25T13:36:47.165Z", "portal_group_id" : 4 } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Password confirmation doesn't match Password" ], "params" : { "password" : "does not match", "password_confirmation" : "the confirmation" } } } } } } }, "delete" : { "summary" : "Deletes a Portal User by ID", "tags" : [ "Portal User" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "email" : "katelyn@okuneva.name", "account_id" : 1, "customer_id" : 1, "contact_id" : 1, "created_at" : "2019-10-25T13:36:47.165Z", "updated_at" : "2019-10-25T13:36:47.165Z", "portal_group_id" : 4 } } } }, "404" : { "description" : "Invalid request" } } } }, "/portal_users/create_invitation" : { "post" : { "summary" : "Creates an Invitation for a Portal User", "tags" : [ "Portal User" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Global Admin\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "id" : { "type" : "integer" } } } } }, "description" : "Portal User ID" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : true, "message" : "All set, we BCC'd you on that invitation." } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : "Invalid email, correct the contact's email and try to resend." } } } } } } }, "/products/{product_id}/product_serials" : { "get" : { "summary" : "Returns a paginated list of Product_serials", "tags" : [ "Product Serial" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "status", "in" : "query", "description" : "Possible values are reserved, sold, returned, in_transfer, breakage, used_in_refurb, in_stock", "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 100 result", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "product_serials" : { "type" : "array", "items" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" }, "product_location_quantity_id" : { "type" : "integer", "nullable" : true }, "line_item_id" : { "type" : "integer", "nullable" : true }, "serial_number" : { "type" : "string" }, "status" : { "type" : "string" }, "instance_price_cost" : { "type" : "number", "nullable" : true }, "instance_price_retail" : { "type" : "number", "nullable" : true }, "location_id" : { "type" : "integer", "nullable" : true } } } } } } } } } } }, "post" : { "summary" : "Creates a Product Serial", "tags" : [ "Product Serial" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "condition" : { "type" : "string" }, "price_cost_cents" : { "type" : "integer" }, "price_retail_cents" : { "type" : "integer" }, "serial_number" : { "type" : "string" } } } } }, "description" : "Product Serial object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product_serial" : { "id" : 1, "created_at" : "2019-10-24T07:32:07.656Z", "updated_at" : "2019-10-24T07:32:07.656Z", "product_location_quantity_id" : null, "line_item_id" : null, "serial_number" : "abcde345332z1", "status" : "In Stock", "instance_price_cost" : 0.01, "instance_price_retail" : 0.01, "location_id" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Serial number scientific-notation not allowed, may have been introduced by a spreadsheet program inferring Numerical from a csv." ] } } } } } } }, "/products/{product_id}/product_serials/{id}" : { "put" : { "summary" : "Updates an existing Product Serial by ID", "tags" : [ "Product Serial" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "condition" : { "type" : "string" }, "price_cost_cents" : { "type" : "integer" }, "price_retail_cents" : { "type" : "integer" }, "serial_number" : { "type" : "string" }, "notes" : { "type" : "string" } } } } }, "description" : "Product Serial object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product_serial" : { "id" : 1, "created_at" : "2019-10-24T07:32:07.656Z", "updated_at" : "2019-10-24T07:32:07.656Z", "product_location_quantity_id" : null, "line_item_id" : null, "serial_number" : "abcde345332z1", "status" : "In Stock", "instance_price_cost" : 0.01, "instance_price_retail" : 0.01, "location_id" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Serial number has already been taken" ] } } } } } } }, "/products/{product_id}/product_serials/attach_to_line_item" : { "post" : { "summary" : "Adds Product Serials to a Line Item", "tags" : [ "Product Serial" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\nAdditional permissions required depending on \"record_type\":\n- LineItem: \"Invoices - Edit\" or \"Estimates - Edit\"\n- TicketLineItem: Tickets - Edit\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "record_type" : { "type" : "string", "enum" : [ "TransferLineItem", "LineItem", "ReturnLineItem", "TicketLineItem", "RefurbLineItem" ] }, "line_item_id" : { "type" : "integer" }, "product_serial_ids" : { "type" : "array", "items" : { "type" : "integer" } } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "status" : "attached" } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "status" : "attached", "errors" : "One of the serial numbers has already been used. Please try again." } } } } } } }, "/products/{product_id}/product_skus" : { "get" : { "summary" : "Returns list of Product Skus", "tags" : [ "Product Sku" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "product_skus" : { "type" : "array", "items" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "vendor_name" : { "type" : "string" }, "sku" : { "type" : "string" } } } } } } } } } } }, "post" : { "summary" : "Creates a Product Sku", "tags" : [ "Product Sku" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "vendor_id" : { "type" : "string" }, "value" : { "type" : "string" } } } } }, "description" : "Product Sku object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product_sku" : { "id" : 1, "vendor_name": "ExampleString", "sku": "SKU123" } } } } }, "400" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "message" : [ "Vendor is blank", "Value is blank" ] } } } } } } }, "/products/{product_id}/product_skus/{id}" : { "put" : { "summary" : "Updates an existing Product Sku by ID", "tags" : [ "Product Sku" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit\n", "parameters" : [ { "name" : "product_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "vendor_id" : { "type" : "integer" }, "value" : { "type" : "string" } } } } }, "description" : "Product Sku object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product_sku" : { "id" : 1, "vendor_name": "ExampleString", "sku": "SKU123" } } } } }, "400" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "message" : [ "Vendor is blank", "Value is blank" ] } } } } } } }, "/products" : { "get" : { "summary" : "Returns a paginated list of Products", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\n", "parameters" : [ { "name" : "sort", "in" : "query", "required" : false, "description" : "A Product field to order by. Example \"name ASC\".", "schema" : { "type" : "string" } }, { "name" : "sku", "in" : "query", "required" : false, "description" : "Returns Products with the SKU.", "schema" : { "type" : "string" } }, { "name" : "name", "in" : "query", "required" : false, "description" : "Returns Products with the name.", "schema" : { "type" : "string" } }, { "name" : "upc_code", "in" : "query", "required" : false, "description" : "Returns Products with the UPC Code.", "schema" : { "type" : "string" } }, { "name" : "category_id", "in" : "query", "required" : false, "description" : "Returns Products from the Category.", "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "query", "required" : false, "description" : "Any product with ID included in the list.", "schema" : { "type" : "array", "items" : { "type" : "integer" } } }, { "name" : "id_not", "in" : "query", "required" : false, "description" : "Any product with ID not included in the list.", "schema" : { "type" : "array", "items" : { "type" : "integer" } } }, { "name" : "query", "in" : "query", "required" : false, "description" : "Search query.", "schema" : { "type" : "string" } }, { "name" : "page", "in" : "query", "required" : false, "description" : "Returns provided page of results, each 'page' contains 25 results.", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "products" : [ { "id" : 1, "price_cost" : 0.01, "price_retail" : 0.01, "condition" : null, "description" : "Description #1", "maintain_stock" : false, "name" : "Product #1", "quantity" : 100, "warranty" : null, "sort_order" : null, "reorder_at" : null, "disabled" : false, "taxable" : true, "product_category" : null, "category_path" : null, "upc_code" : null, "discount_percent" : null, "warranty_template_id" : null, "qb_item_id" : 1, "desired_stock_level" : null, "price_wholesale" : 0, "notes" : null, "tax_rate_id" : null, "physical_location" : null, "serialized" : false, "vendor_ids" : [ ], "product_skus": [ { "id" : 1, "vendor_name": "ExampleString", "sku": "SKU123" } ], "long_description" : null, "location_quantities" : [ ], "photos" : [ ] } ] } } } } } }, "post" : { "summary" : "Creates a Product", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Create\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "price_cost" : { "type" : "number" }, "price_retail" : { "type" : "number" }, "condition" : { "type" : "string" }, "description" : { "type" : "string" }, "maintain_stock" : { "type" : "boolean" }, "name" : { "type" : "string" }, "quantity" : { "type" : "integer" }, "warranty" : { "type" : "string" }, "sort_order" : { "type" : "integer" }, "reorder_at" : { "type" : "integer" }, "disabled" : { "type" : "boolean" }, "taxable" : { "type" : "boolean" }, "product_category" : { "type" : "string" }, "upc_code" : { "type" : "string" }, "discount_percent" : { "type" : "number" }, "warranty_template_id" : { "type" : "integer" }, "qb_item_id" : { "type" : "integer" }, "desired_stock_level" : { "type" : "integer" }, "price_wholesale" : { "type" : "number" }, "notes" : { "type" : "string" }, "tax_rate_id" : { "type" : "integer" }, "vendor_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "physical_location" : { "type" : "string" }, "serialized" : { "type" : "boolean" }, "category_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "product_skus_attributes" : { "type" : "array", "items" : { "type" : "object", "properties" : { "vendor_id" : { "type" : "integer" }, "value" : { "type" : "string" } } } } }, "required" : [ "name", "description" ] } } }, "description" : "Product object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product" : { "id" : 1, "price_cost" : 0.01, "price_retail" : 0.01, "condition" : null, "description" : "Description #1", "maintain_stock" : false, "name" : "Product #1", "quantity" : 100, "warranty" : null, "sort_order" : null, "reorder_at" : null, "disabled" : false, "taxable" : true, "product_category" : null, "category_path" : null, "upc_code" : null, "discount_percent" : null, "warranty_template_id" : null, "qb_item_id" : 1, "desired_stock_level" : null, "price_wholesale" : 0, "notes" : null, "tax_rate_id" : null, "physical_location" : null, "serialized" : false, "vendor_ids" : [ ], "long_description" : null, "location_quantities" : [ ], "photos" : [ ] } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Name can't be blank", "Description can't be blank" ], "params" : { "name" : "", "maintain_stock" : false } } } } } } } }, "/products/{id}" : { "get" : { "summary" : "Retrieves a Product by ID", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product" : { "id" : 1, "price_cost" : 0.01, "price_retail" : 0.01, "condition" : null, "description" : "Description #1", "maintain_stock" : false, "name" : "Product #1", "quantity" : 100, "warranty" : null, "sort_order" : null, "reorder_at" : null, "disabled" : false, "taxable" : true, "product_category" : null, "category_path" : null, "upc_code" : null, "discount_percent" : null, "warranty_template_id" : null, "qb_item_id" : 1, "desired_stock_level" : null, "price_wholesale" : 0, "notes" : null, "tax_rate_id" : null, "physical_location" : null, "serialized" : false, "vendor_ids" : [ ], "product_skus": [ { "id" : 1, "vendor_name": "ExampleString", "sku": "SKU123" } ], "long_description" : null, "location_quantities" : [ ], "photos" : [ ] } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Product by ID", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "price_cost" : { "type" : "number" }, "price_retail" : { "type" : "number" }, "condition" : { "type" : "string" }, "description" : { "type" : "string" }, "maintain_stock" : { "type" : "boolean" }, "name" : { "type" : "string" }, "quantity" : { "type" : "integer" }, "warranty" : { "type" : "string" }, "sort_order" : { "type" : "integer" }, "reorder_at" : { "type" : "integer" }, "disabled" : { "type" : "boolean" }, "taxable" : { "type" : "boolean" }, "product_category" : { "type" : "string" }, "upc_code" : { "type" : "string" }, "discount_percent" : { "type" : "number" }, "warranty_template_id" : { "type" : "integer" }, "qb_item_id" : { "type" : "integer" }, "desired_stock_level" : { "type" : "integer" }, "price_wholesale" : { "type" : "number" }, "notes" : { "type" : "string" }, "tax_rate_id" : { "type" : "integer" }, "vendor_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "physical_location" : { "type" : "string" }, "serialized" : { "type" : "boolean" }, "category_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "product_skus_attributes" : { "type" : "array", "items" : { "type" : "object", "properties" : { "value" : { "type" : "string" }, "vendor_id" : { "type" : "integer" } } } } }, "required" : [ "name", "description" ] } } }, "description" : "Product object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product" : { "id" : 1, "price_cost" : 0.01, "price_retail" : 0.01, "condition" : null, "description" : "Description #1", "maintain_stock" : false, "name" : "Product #1", "quantity" : 100, "warranty" : null, "sort_order" : null, "reorder_at" : null, "disabled" : false, "taxable" : true, "product_category" : null, "category_path" : null, "upc_code" : null, "discount_percent" : null, "warranty_template_id" : null, "qb_item_id" : 1, "desired_stock_level" : null, "price_wholesale" : 0, "notes" : null, "tax_rate_id" : null, "physical_location" : null, "serialized" : false, "vendor_ids" : [ ], "long_description" : null, "location_quantities" : [ ], "photos" : [ ] } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Name can't be blank" ] } } } } } } }, "/products/barcode" : { "get" : { "summary" : "Returns a Product by Barcode", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\n", "parameters" : [ { "name" : "barcode", "in" : "query", "description" : "Product Barcode string", "schema" : { "type" : "string" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product" : { "id" : 1, "price_cost" : 0.01, "price_retail" : 0.01, "condition" : null, "description" : "Description #1", "maintain_stock" : false, "name" : "Product #1", "quantity" : 100, "warranty" : null, "sort_order" : null, "reorder_at" : null, "disabled" : false, "taxable" : true, "product_category" : null, "category_path" : null, "upc_code" : null, "discount_percent" : null, "warranty_template_id" : null, "qb_item_id" : 1, "desired_stock_level" : null, "price_wholesale" : 0, "notes" : null, "tax_rate_id" : null, "physical_location" : null, "serialized" : false, "vendor_ids" : [ ], "long_description" : null, "location_quantities" : [ ], "photos" : [ ] } } } } } } } }, "/products/categories" : { "get" : { "summary" : "Returns a paginated list of Product Categories", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - List/Search\n", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "categories" : [ { "id" : 1, "account_id" : 1, "ancestry" : null, "name" : "Root Category", "description" : "Root Category", "device_product_id" : null, "names_depth_cache" : "Root Category" } ] } } } } } } }, "/products/{id}/add_images" : { "post" : { "summary" : "Creates a Product Image", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Files" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "Success! Those will be added shortly in background workers." } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : "Please pass 'url' & 'filename' or 'files([{}])' parameter." } } } } } } }, "/products/{id}/delete_image" : { "delete" : { "summary" : "Deletes a Product Image", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "photo_id", "in" : "query", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "Success! Image removed." } } } }, "404" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "message" : "Photo Not Found." } } } } } } }, "/products/{id}/location_quantities" : { "put" : { "summary" : "Updates a Location Quantity", "tags" : [ "Product" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Products - Edit Quantities\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "location_quantity_id" : { "type" : "integer" }, "quantity" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "product_id" : 15, "id" : 1, "quantity" : 100, "price_cost_cents" : null, "price_retail_cents" : null, "location_id" : 1, "tax_rate_id" : null, "created_at" : "2019-10-25T10:08:05.205Z", "updated_at" : "2019-10-25T10:08:05.227Z", "reorder_at" : null, "desired_stock_level" : 0 } } } } } } }, "/purchase_orders" : { "get" : { "summary" : "Returns a paginated list of Purchase Orders", "tags" : [ "Purchase Order" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Purchase Orders - List/Search\n", "parameters" : [ { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 20 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "purchase_orders" : [ { "id" : 1, "account_subdomain" : "testsubdomainwi1", "created_at" : "2019-11-15T16:44:28.521Z", "updated_at" : "2019-11-15T16:44:28.530Z", "expected_date" : "2013-04-07T01:07:34.000Z", "number" : "MyString", "other" : 0.01, "shipping" : 0.01, "shipping_notes" : "MyText", "status" : "MyString", "total" : 0.02, "user_id" : 0, "vendor_id" : 1, "location_id" : null, "due_date" : "2019-11-22T00:00:00.000Z", "paid_date" : "2019-11-15T00:00:00.000Z", "delivery_tracking" : "yourdevivery.com/tracking/link/1", "vendor" : { "id" : 1, "name" : "C & S Wholesalers", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-15T16:44:28.494Z", "updated_at" : "2019-11-15T16:44:28.494Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "Trucks" }, "location" : null, "line_items" : [ ] } ] } } } } } }, "post" : { "summary" : "Creates a Purchase Order", "tags" : [ "Purchase Order" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Purchase Orders - Edit\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "discount_percent" : { "type" : "integer" }, "expected_date" : { "type" : "string", "format" : "date-time" }, "general_notes" : { "type" : "string" }, "other_cents" : { "type" : "integer" }, "shipping_cents" : { "type" : "integer" }, "shipping_notes" : { "type" : "string" }, "user_id" : { "type" : "integer" }, "vendor_id" : { "type" : "integer" }, "location_id" : { "type" : "integer" }, "due_date" : { "type" : "string", "format" : "date-time" }, "paid_date" : { "type" : "string", "format" : "date-time" }, "order_date" : { "type" : "string", "format" : "date-time" }, "delivery_tracking" : { "type" : "string" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "purchase_order" : { "id" : 1, "account_subdomain" : "testsubdomainwi1", "created_at" : "2019-11-15T16:44:28.521Z", "updated_at" : "2019-11-15T16:44:28.530Z", "expected_date" : "2013-04-07T01:07:34.000Z", "number" : "MyString", "other" : 0.01, "shipping" : 0.01, "shipping_notes" : "MyText", "status" : "MyString", "total" : 0.02, "user_id" : 0, "vendor_id" : 1, "location_id" : null, "due_date" : "2019-11-22T00:00:00.000Z", "paid_date" : "2019-11-15T00:00:00.000Z", "delivery_tracking" : "yourdevivery.com/tracking/link/1", "vendor" : { "id" : 1, "name" : "C & S Wholesalers", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-15T16:44:28.494Z", "updated_at" : "2019-11-15T16:44:28.494Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "Trucks" }, "location" : null, "line_items" : [ ] } } } } } } } }, "/purchase_orders/{id}" : { "get" : { "summary" : "Retrieves a Purchase Order by ID", "tags" : [ "Purchase Order" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Purchase Orders - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "purchase_order" : { "id" : 1, "account_subdomain" : "testsubdomainwi1", "created_at" : "2019-11-15T16:44:28.521Z", "updated_at" : "2019-11-15T16:44:28.530Z", "expected_date" : "2013-04-07T01:07:34.000Z", "number" : "MyString", "other" : 0.01, "shipping" : 0.01, "shipping_notes" : "MyText", "status" : "MyString", "total" : 0.02, "user_id" : 0, "vendor_id" : 1, "location_id" : null, "due_date" : "2019-11-22T00:00:00.000Z", "paid_date" : "2019-11-15T00:00:00.000Z", "delivery_tracking" : "yourdevivery.com/tracking/link/1", "vendor" : { "id" : 1, "name" : "C & S Wholesalers", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-15T16:44:28.494Z", "updated_at" : "2019-11-15T16:44:28.494Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "Trucks" }, "location" : null, "line_items" : [ ] } } } } }, "404" : { "description" : "Invalid request" } } } }, "/purchase_orders/{id}/receive" : { "post" : { "summary" : "receive purchase_order", "tags" : [ "Purchase Order" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Purchase Orders - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "line_item_id" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "purchase_order" : { "id" : 1, "account_subdomain" : "testsubdomainwi1", "created_at" : "2019-11-15T16:44:28.521Z", "updated_at" : "2019-11-15T16:44:28.530Z", "expected_date" : "2013-04-07T01:07:34.000Z", "number" : "MyString", "other" : 0.01, "shipping" : 0.01, "shipping_notes" : "MyText", "status" : "MyString", "total" : 0.02, "user_id" : 0, "vendor_id" : 1, "location_id" : null, "due_date" : "2019-11-22T00:00:00.000Z", "paid_date" : "2019-11-15T00:00:00.000Z", "delivery_tracking" : "yourdevivery.com/tracking/link/1", "vendor" : { "id" : 1, "name" : "C & S Wholesalers", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-15T16:44:28.494Z", "updated_at" : "2019-11-15T16:44:28.494Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "Trucks" }, "location" : null, "line_items" : [ ] } } } } } } } }, "/purchase_orders/{id}/create_po_line_item" : { "post" : { "summary" : "Adds a Product to a Purchase Order", "tags" : [ "Purchase Order" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Purchase Orders - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "product_id" : { "type" : "integer" }, "quantity" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "po_line_item" : { "id" : 2, "purchase_order_id" : 7, "product_id" : 2, "quantity" : 10, "cost_cents" : 1, "total_cents" : 10, "created_at" : "2019-10-30T12:00:11.764Z", "updated_at" : "2019-10-30T12:00:11.764Z", "received" : false, "position" : null, "received_quantity" : 10, "parent_po_line_item_id" : null, "old_cost_cents" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "errors" : "Error adding that item - please ensure that the item you are trying to add is set to ‘Maintain Stock’." } } } } } } }, "/rmm_alerts" : { "get" : { "summary" : "Returns a paginated list of RMM Alerts", "tags" : [ "RMM Alert" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: RMM Alerts - List\nSingle-Customer Users can only access own RMM Alerts.\n", "parameters" : [ { "name" : "status", "in" : "query", "description" : "Possible values resolved, all, active.", "required" : false, "schema" : { "type" : "string", "default" : "active" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "rmm_alerts" : [ { "id" : 1, "customer_id" : 0, "ticket_number" : null, "ticket_status" : null, "computer_name" : "MyString", "properties" : { }, "resolved" : false, "check_id" : 1, "status" : "MyString", "formatted_output" : "MyText", "description" : "MyText", "created_at" : "2019-10-31T08:22:35.058Z", "updated_at" : "2019-10-31T08:22:35.058Z", "asset_id" : 1 } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates an RMM Alert", "tags" : [ "RMM Alert" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: RMM Alerts - Create\nSingle-Customer Users can only access own RMM Alerts.\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "asset_id" : { "type" : "integer" }, "description" : { "type" : "string" }, "resolved" : { "type" : "boolean" }, "status" : { "type" : "string" }, "properties" : { "type" : "object", "properties" : { "subject" : { "type" : "string" }, "body" : { "type" : "string" }, "hidden" : { "type" : "boolean" }, "sms_body" : { "type" : "string" }, "do_not_email" : { "type" : "boolean" }, "tech" : { "type" : "string" }, "skip_automation" : { "type" : "boolean" } } } } } } } }, "responses" : { "201" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : true, "alert" : { "id" : 3, "account_id" : 1, "customer_id" : 1, "computer_name" : null, "properties" : { }, "resolved" : false, "check_id" : null, "status" : null, "formatted_output" : null, "description" : "RMM Alert Description", "created_at" : "2020-08-04T12:19:25.754Z", "updated_at" : "2020-08-04T12:19:25.754Z", "ticket_id" : null, "asset_id" : 2 } } } } } } } }, "/rmm_alerts/{id}/mute" : { "post" : { "summary" : "Mutes an RMM Alert by ID", "tags" : [ "RMM Alert" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: RMM Alerts - Clear/Manage\nSingle-Customer Users can only access own RMM Alerts.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "mute_for", "in" : "query", "required" : true, "description" : "Length of time to mute alert for. Accepted values: '1-hour', '1-day', '2-days', '1-week', '2-weeks', '1-month', 'forever'", "schema" : { "type" : "string" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : "true" } } } }, "404" : { "description" : "Invalid request" }, "422" : { "description" : "Invalid Request" } } } }, "/rmm_alerts/{id}" : { "get" : { "summary" : "Retrieves an RMM Alert by ID", "tags" : [ "RMM Alert" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: RMM Alerts - List\nSingle-Customer Users can only access own RMM Alerts.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "rmm_alert" : { "id" : 1, "customer_id" : 0, "ticket_number" : null, "ticket_status" : null, "computer_name" : "MyString", "properties" : { }, "resolved" : false, "check_id" : 1, "status" : "MyString", "formatted_output" : "MyText", "description" : "MyText", "created_at" : "2019-10-31T08:22:35.058Z", "updated_at" : "2019-10-31T08:22:35.058Z", "asset_id" : 1 } } } } }, "404" : { "description" : "Invalid request" } } }, "delete" : { "summary" : "Deletes/Clears an RMM Alert by ID", "tags" : [ "RMM Alert" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: RMM Alerts - Delete\nSingle-Customer Users can only access own RMM Alerts.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : "true" } } } }, "404" : { "description" : "Invalid request" } } } }, "/schedules" : { "get" : { "summary" : "Returns a paginated list of Invoice Schedules", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - List\n", "parameters" : [ { "name" : "customer_id", "in" : "query", "description" : "Returns a list of Schedules that belong to a Customer ID", "required" : false, "schema" : { "type" : "integer" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "schedules" : [ { "id" : 1, "account_id" : 1, "customer_id" : 1, "email_customer" : false, "frequency" : "Daily", "name" : "MyString", "next_run" : "2016-01-01T00:00:00.000Z", "snail_mail" : false, "charge_mop" : false, "subtotal" : 0, "invoice_unbilled_ticket_charges" : false, "paused" : false, "last_invoice_paid" : null, "lines" : [ ] } ] } } } } } }, "post" : { "summary" : "Creates an Invoice Schedule", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - New\n", "requestBody" : { "$ref" : "#/components/requestBodies/Schedule" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "schedule" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "email_customer" : false, "frequency" : "Daily", "name" : "MyString", "next_run" : "2016-01-01T00:00:00.000Z", "snail_mail" : false, "charge_mop" : false, "subtotal" : 0, "invoice_unbilled_ticket_charges" : false, "paused" : false, "last_invoice_paid" : null, "lines" : [ ] } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : [ "Frequency Must be a valid selection", "Frequency can't be blank", "Next run can't be blank", "Name can't be blank", "Customer can't be blank" ] } } } } } } }, "/schedules/{id}" : { "get" : { "summary" : "Retrieves a Schedule by ID", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - List\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "schedule" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "email_customer" : false, "frequency" : "Daily", "name" : "MyString", "next_run" : "2016-01-01T00:00:00.000Z", "snail_mail" : false, "charge_mop" : false, "subtotal" : 0, "invoice_unbilled_ticket_charges" : false, "paused" : false, "last_invoice_paid" : null, "lines" : [ ] } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Invoice Schedule by ID", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Schedule" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "schedule" : { "id" : 1, "account_id" : 1, "customer_id" : 1, "email_customer" : false, "frequency" : "Daily", "name" : "MyString", "next_run" : "2016-01-01T00:00:00.000Z", "snail_mail" : false, "charge_mop" : false, "subtotal" : 0, "invoice_unbilled_ticket_charges" : false, "paused" : false, "last_invoice_paid" : null, "lines" : [ ] } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : [ "Next run can't be blank" ] } } } } } }, "delete" : { "summary" : "Deletes a Schedule by ID", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - Delete\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/schedules/{id}/add_line_item" : { "post" : { "summary" : "Adds a Line Item to an Invoice Schedule", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/ScheduleLineItem" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "schedule_line_item" : { "id" : 1, "cost_cents" : 0, "description" : "Description", "name" : "Name", "position" : 0, "product_id" : null, "quantity" : "0.0", "retail_cents" : 0, "schedule_id" : 11, "taxable" : false, "user_id" : 1, "price_cost" : 0, "price_retail" : 0, "product_category" : null, "asset_type_id" : null, "recurring_type_id" : null, "device_ids" : [ ], "one_time_charge" : false } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : [ "Name can't be blank" ] } } } } } } }, "/schedules/{id}/remove_line_item" : { "post" : { "summary" : "Removes a Line Item from an Invoice Schedule", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "integer" } } } }, "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/schedules/{id}/line_items/{schedule_line_item_id}" : { "put" : { "summary" : "Updates a Line Item", "tags" : [ "Schedule" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Recurring Invoices - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "schedule_line_item_id", "in" : "path", "description" : "ID of line item to update", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/ScheduleLineItem" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "schedule_line_item" : { "id" : 3, "cost_cents" : 1, "description" : "MyText", "name" : "Updated Name", "position" : 1, "product_id" : 1, "quantity" : "9.99", "retail_cents" : 1, "schedule_id" : 15, "taxable" : false, "user_id" : 1, "price_cost" : 0.01, "price_retail" : 0.01, "product_category" : null, "asset_type_id" : null, "recurring_type_id" : null, "device_ids" : [ ], "one_time_charge" : false } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : [ "Name can't be blank" ] } } } } } } }, "/search" : { "get" : { "summary" : "Search all the things", "tags" : [ "Search" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Additional permissions required depending on search results type:\n- Customer, Contact, Asset: \"Customers - List/Search\"\n- Lead: Leads - List/Search\n- Invoice: Invoices - List/Search\n- Estimate: Estimates - List/Search\n- Ticket: Tickets - List/Search\n- Product: Products - List/Search\n- Purchase Order, Vendor: Purchase Orders - List/Search\n- Report: Reports - View\n- Wiki: Documentation - Allow Usage\n", "parameters" : [ { "name" : "query", "in" : "query", "description" : "Search query", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "quick_result" : null, "results" : [ { "table" : { "_id" : 1, "_type" : "customer", "_index" : "customers", "_source" : { "table" : { "firstname" : "Walkin", "lastname" : "Customer", "email" : "walkin@somedomain.com", "business_name" : null, "phones" : [ { "id" : 1, "label" : "Phone", "number" : "123", "customer_id" : 1, "created_at" : "2019-11-01T09:13:58.626Z", "updated_at" : "2019-11-01T09:13:58.626Z", "extension" : null } ] } } } } ], "error" : null } } } } } } }, "/settings" : { "get" : { "summary" : "Returns a list of Account Settings", "tags" : [ "Setting" ], "security" : [ { "bearerAuth" : [ ] } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "customers" : { "required_fields" : null, "customer_fields" : [ ], "customer_field_answers" : [ ] }, "assets" : { "asset_types" : [ ], "asset_type_fields" : [ ], "asset_type_field_answers" : [ ] }, "locale" : { "iso_code" : "en", "currency_symbol" : "$", "date_format" : "mm-dd-yy", "time_format" : "hh:mm tt", "time_zone" : "America/Los_Angeles", "time_offset" : "-08:00" }, "ticket" : { "ticket_types" : [ ], "ticket_type_fields" : [ ], "ticket_type_field_answers" : [ ], "problem_types" : [ "Virus", "TuneUp", "Hardware", "Software", "Other" ], "priorities" : [ "", "0 Urgent", "1 High", "2 Normal", "3 Low" ] }, "business_hours_enabled" : true, "business_hours" : [ { "day" : "Sunday", "start" : "09:00", "end" : "17:00", "closed" : false }, { "day" : "Monday", "start" : "09:00", "end" : "17:00", "closed" : false }, { "day" : "Tuesday", "start" : "09:00", "end" : "17:00", "closed" : false }, { "day" : "Wednesday", "start" : "09:00", "end" : "17:00", "closed" : false }, { "day" : "Thursday", "start" : "09:00", "end" : "17:00", "closed" : false }, { "day" : "Friday", "start" : "09:00", "end" : "17:00", "closed" : false }, { "day" : "Saturday", "start" : "09:00", "end" : "17:00", "closed" : false } ], "default_holiday_calendar" : "USA", "msp_addon" : null } } } } } } }, "/settings/tabs" : { "get" : { "summary" : "Returns Tabs Settings", "tags" : [ "Setting" ], "security" : [ { "bearerAuth" : [ ] } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "tabs" : { "msp_dashboard" : true, "customers" : true, "assets" : false, "alerts" : false, "contracts" : false, "invoices" : true, "customer_purchases" : false, "refurbs" : false, "estimates" : true, "tickets" : true, "parts" : true, "products" : true, "purchase_orders" : false, "field_jobs" : true, "kabuto_policies" : true, "scripts" : true, "sales" : true, "leads" : true, "domo" : false, "marketr" : true, "recur" : false, "reports" : false, "wiki" : false, "app_center" : false, "pax8" : false } } } } } } } }, "/settings/printing" : { "get" : { "summary" : "Returns Printing Settings", "tags" : [ "Setting" ], "security" : [ { "bearerAuth" : [ ] } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "messaging_channel" : "100000000000000000001", "registers" : [ ] } } } } } } }, "/ticket_timers" : { "get" : { "summary" : "Returns a paginated list of Ticket Timers", "tags" : [ "Ticket Timer" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Ticket Timers - Overview\n", "parameters" : [ { "name" : "created_at_lt", "in" : "query", "description" : "Returns Ticket Timers created before the date. Example \"2019-01-22\"", "required" : false, "schema" : { "type" : "string", "format" : "date-time" } }, { "name" : "created_at_gt", "in" : "query", "description" : "Returns Ticket Timers created after the date. Example \"2019-12-22\"", "required" : false, "schema" : { "type" : "string", "format" : "date-time" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket_timers" : [ { "id" : 1, "ticket_id" : 1, "user_id" : 1, "start_time" : "2013-08-06T13:41:15.000Z", "end_time" : "2013-08-06T14:41:15.000Z", "recorded" : false, "created_at" : "2019-11-05T15:18:43.727Z", "updated_at" : "2019-11-05T15:18:43.727Z", "billable" : false, "notes" : null, "toggl_id" : null, "product_id" : null, "comment_id" : null, "ticket_line_item_id" : null, "active_duration" : null, "billable_time" : 120, "billable_override" : null } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } } }, "ticket_timers/{id}" : { "patch": { "summary": "Update the billable property of a Ticket Timer", "tags": [ "Ticket Timer" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permission: Ticket Timers - Edit\n", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },{ "name": "billable", "in": "query", "required": true, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "successful", "content": { "application/json": { "example": { "ticket_timer": { "id": 1, "ticket_id": 1, "user_id": 1, "start_time": "2024-01-15T08:00:00.000Z", "end_time": "2024-01-15T09:00:00.000Z", "recorded": false, "created_at": "2024-01-15T08:00:00.000Z", "updated_at": "2024-01-15T09:00:00.000Z", "billable": false, "notes": null, "toggl_id": null, "product_id": null, "comment_id": null, "ticket_line_item_id": null, "active_duration": 3600, "since_updated_at": "2024-01-15T09:00:00.000Z", "billable_time": 3600, "billable_override": null } } } } }, "404": { "description": "Not found", "content": { "application/json": { "example": { "message": "Not found" } } } }, "422": { "description": "Unprocessable Entity - invalid billable value", "content": { "application/json": { "example": { "errors": ["billable must be true or false"] } } } } } } }, "/tickets" : { "get" : { "summary" : "Returns a paginated list of Tickets", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - List/Search\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "customer_id", "in" : "query", "required" : false, "description" : "Any Ticket with customer_id equal to the parameter.", "schema" : { "type" : "integer" } }, { "name" : "contact_id", "in" : "query", "required" : false, "description" : "Any Ticket with contact_id equal to the parameter.", "schema" : { "type" : "integer" } }, { "name" : "number", "in" : "query", "required" : false, "description" : "Any Ticket with number equal to the parameter.", "schema" : { "type" : "string" } }, { "name" : "resolved_after", "in" : "query", "required" : false, "description" : "Returns Tickets resolved after the date. Example \"2019-01-23\".", "schema" : { "type" : "string", "format" : "date-time" } }, { "name" : "created_after", "in" : "query", "required" : false, "description" : "Returns Tickets created after the date. Example \"2019-02-25\".", "schema" : { "type" : "string", "format" : "date-time" } }, { "name" : "since_updated_at", "in" : "query", "required" : false, "description" : "Returns Tickets updated after the date. Example \"2019-02-25\".", "schema" : { "type" : "string", "format" : "date-time" } }, { "name" : "status", "in" : "query", "required" : false, "description" : "Any Ticket with status equal to the parameter. Examples \"New\", \"In Progress\", \"Resolved\", \"Invoiced\", \"Waiting for Parts\", \"Waiting on Customer\", \"Scheduled\", \"Customer Reply\", \"Not Closed\".", "schema" : { "type" : "string" } }, { "name" : "query", "in" : "query", "required" : false, "description" : "Search query", "schema" : { "type" : "string" } }, { "name" : "user_id", "in" : "query", "required" : false, "description" : "Any Ticket assigned to a User ID", "schema" : { "type" : "integer" } }, { "name" : "mine", "in" : "query", "required" : false, "description" : "Any Ticket assigned to the current user", "schema" : { "type" : "boolean" } }, { "name" : "ticket_search_id", "in" : "query", "required" : false, "description" : "Returns results of a Ticket Search", "schema" : { "type" : "integer" } }, { "name" : "page", "in" : "query", "required" : false, "description" : "Returns provided page of results, each 'page' contains 25 results", "schema" : { "type" : "integer" } }, { "name": "comment_format", "in": "query", "required": false, "description": "Returns comments in the specified format. Allowed values: 'plaintext', 'richtext', 'original'. Defaults to 'plaintext'.", "schema": { "type": "string" } }, { "name": "all_comments", "in": "query", "required": false, "description": "(DEPRICATED PARAM) When set to true includes all ticket comments in the response. When set to false, only the initial comment is returned. Defaults to true, but WILL DEFAULT TO FALSE as of March 11, 2026. Param will be sunset in 2026.", "schema": { "type": "boolean" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "tickets" : [ { "id" : 1, "number" : 1, "subject" : "Some major problem", "created_at" : "2019-11-04T08:59:31.034Z", "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "due_date" : "2019-11-04T08:59:31.016Z", "resolved_at" : null, "start_at" : null, "end_at" : null, "location_id" : null, "location_name": null, "problem_type" : "Virus", "status" : "New", "ticket_type_id" : 1, "ticket_type_name": "Hardware", "properties" : { }, "user_id" : null, "updated_at" : "2019-11-04T08:59:31.034Z", "pdf_url" : null, "priority" : null, "billing_status": null, "tag_list": [ ], "sla_name": null, "creator_name_or_email": null, "contact_fullname": null, "contract_name": null, "address_id": null, "parent": false, "parent_id": null, "child": false, "recurring": false, "customer_reply": false, "total_formatted_billable_time": null, "contact_id": null, "sla_breached": false, "sla_breaching_soon": false, "contract_id": null, "sla_id": null, "customer_tag_list": [ ], "resolution_time": null, "response_time": null, "customer_icons": [ ], "comments" : [ ], "user" : null } ], "meta" : { "total_pages" : 1, "page" : 1 } } } } } } }, "post" : { "summary" : "Creates a Ticket", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Create\nSingle-Customer Users can only access own tickets.\n", "requestBody" : { "$ref" : "#/components/requestBodies/Ticket" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket" : { "id" : 3, "number" : 2012, "subject" : "Ticket Subject", "created_at" : "2019-11-04T14:55:01.883Z", "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "due_date" : "2025-10-10T08:00:00.000Z", "start_at" : null, "end_at" : "2025-10-10T18:45:00.000Z", "location_id" : null, "problem_type" : "Virus", "status" : "New", "properties" : { "Device Type" : "Hard Drive", "Maker" : "Text field" }, "user_id" : 1, "updated_at" : "2019-11-04T14:55:01.928Z", "pdf_url" : null, "intake_form_html" : null, "signature_name" : "Joe", "signature_date" : null, "asset_ids" : [ 1 ], "priority" : "High", "resolved_at" : null, "outtake_form_name" : null, "outtake_form_date" : null, "outtake_form_html" : null, "tag_list": ["tag1", "tag2"], "comments" : [ { "id" : 1, "created_at" : "2019-11-04T14:55:01.884Z", "updated_at" : "2019-11-04T14:55:01.884Z", "ticket_id" : 3, "subject" : "Comment Subject", "body" : "Comment Body", "tech" : null, "hidden" : true, "user_id" : null } ], "attachments" : [ ], "ticket_timers" : [ ], "line_items" : [ ], "worksheet_results" : [ ], "assets" : [ { "id" : 1, "name" : "Vileplume", "customer_id" : 1, "created_at" : "2019-11-04T14:55:01.790Z", "updated_at" : "2019-11-04T14:55:01.790Z", "properties" : { }, "asset_type" : "Sandshrew", "asset_serial" : null, "external_rmm_link" : null, "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-11-04T14:54:50.735Z", "updated_at" : "2019-11-04T14:54:50.735Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=3g85nj295ar5u4c9zq1o", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer" }, "rmm_links" : [ ], "rmm_store" : { "id" : 1, "asset_id" : 1, "account_id" : 1, "triggers" : { "bsod_triggered" : "false", "time_triggered" : "false", "no_av_triggered" : "false", "defrag_triggered" : "false", "firewall_triggered" : "false", "app_crash_triggered" : "false", "low_hd_space_triggered" : "false", "smart_failure_triggered" : "false", "device_manager_triggered" : "false", "agent_offline_triggered" : "false" }, "windows_updates" : { }, "emsisoft" : { }, "general" : { }, "created_at" : "2019-11-04T14:55:01.991Z", "updated_at" : "2019-11-04T14:55:01.991Z", "override_alert_agent_offline_mins" : null, "override_alert_agent_rearm_after_mins" : null, "override_low_hd_threshold" : null, "override_autoresolve_offline_alert" : null } } ], "appointments" : [ ], "ticket_fields" : [ { "id" : 2, "name" : "Maker", "field_type" : "text_field", "required" : null, "account_id" : 1, "created_at" : "2019-11-04T14:55:01.761Z", "updated_at" : "2019-11-04T14:55:01.761Z", "ticket_type_id" : 1, "hidden" : false, "position" : null, "answers" : [ ] }, { "id" : 1, "name" : "Device Type", "field_type" : "select_box", "required" : null, "account_id" : 1, "created_at" : "2019-11-04T14:55:01.743Z", "updated_at" : "2019-11-04T14:55:01.743Z", "ticket_type_id" : 1, "hidden" : false, "position" : null, "answers" : [ { "id" : 1, "ticket_field_id" : 1, "content" : "Hard Drive", "created_at" : "2019-11-04T14:55:01.758Z", "updated_at" : "2019-11-04T14:55:01.758Z", "account_id" : null } ] } ], "ticket_answers" : [ { "id" : 1, "ticket_field_id" : 1, "content" : "Hard Drive", "created_at" : "2019-11-04T14:55:01.758Z", "updated_at" : "2019-11-04T14:55:01.758Z", "account_id" : null } ], "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-11-04T14:54:50.735Z", "updated_at" : "2019-11-04T14:54:50.735Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=cfrwzra6wo3ybuj598pa", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] }, "contact" : null, "user" : { "id" : 1, "email" : "bat1man44128@man.com", "full_name" : "Bat Man", "created_at" : "2019-11-04T14:54:51.081Z", "updated_at" : "2019-11-04T14:54:51.081Z", "group" : "Admins", "admin" : true, "color" : "1e3e96" }, "ticket_type" : { "id" : 1, "name" : "Devices", "account_id" : 1, "created_at" : "2019-11-04T14:55:01.722Z", "updated_at" : "2019-11-04T14:55:01.722Z", "disabled" : false, "intake_terms" : null, "skip_intake" : false, "outtake_terms" : null, "skip_outtake" : false, "ticket_fields" : [ { "id" : 2, "name" : "Maker", "field_type" : "text_field", "required" : null, "account_id" : 1, "created_at" : "2019-11-04T14:55:01.761Z", "updated_at" : "2019-11-04T14:55:01.761Z", "ticket_type_id" : 1, "hidden" : false, "position" : null, "answers" : [ ] }, { "id" : 1, "name" : "Device Type", "field_type" : "select_box", "required" : null, "account_id" : 1, "created_at" : "2019-11-04T14:55:01.743Z", "updated_at" : "2019-11-04T14:55:01.743Z", "ticket_type_id" : 1, "hidden" : false, "position" : null, "answers" : [ { "id" : 1, "ticket_field_id" : 1, "content" : "Hard Drive", "created_at" : "2019-11-04T14:55:01.758Z", "updated_at" : "2019-11-04T14:55:01.758Z", "account_id" : null } ] } ] } } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : "Customer required field" } } } } } } }, "/tickets/{id}" : { "get" : { "summary" : "Retrieves a Ticket by ID", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket" : { "id" : 5, "number" : 4, "subject" : "Some major problem", "created_at" : "2019-11-05T07:40:54.824Z", "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "due_date" : "2019-11-05T07:40:54.820Z", "start_at" : null, "end_at" : null, "location_id" : null, "problem_type" : "Virus", "status" : "New", "properties" : { }, "user_id" : null, "updated_at" : "2019-11-05T07:40:54.824Z", "pdf_url" : null, "intake_form_html" : null, "signature_name" : null, "signature_date" : null, "asset_ids" : [ ], "priority" : null, "resolved_at" : null, "outtake_form_name" : null, "outtake_form_date" : null, "outtake_form_html" : null, "comments" : [ ], "attachments" : [ ], "ticket_timers" : [ ], "line_items" : [ ], "worksheet_results" : [ ], "assets" : [ ], "appointments" : [ ], "ticket_fields" : [ ], "ticket_answers" : [ ], "tag_list": [ ], "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-11-05T07:40:44.365Z", "updated_at" : "2019-11-05T07:40:44.365Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=2ry2wdlnaybl86oetmbr", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] }, "contact" : null, "user" : { "id" : 1, "email" : "bat1man44128@man.com", "full_name" : "Bat Man", "created_at" : "2019-11-04T14:54:51.081Z", "updated_at" : "2019-11-04T14:54:51.081Z", "group" : "Admins", "admin" : true, "color" : "1e3e96" }, "ticket_type" : { "id" : 1, "name" : "Devices", "account_id" : 1, "created_at" : "2019-11-04T14:55:01.722Z", "updated_at" : "2019-11-04T14:55:01.722Z", "disabled" : false, "intake_terms" : null, "skip_intake" : false, "outtake_terms" : null, "skip_outtake" : false, "ticket_fields" : [ ] }, "address" : null } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Ticket by ID", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Ticket" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket" : { "id" : 5, "number" : 4, "subject" : "Some major problem", "created_at" : "2019-11-05T07:40:54.824Z", "customer_id" : 1, "customer_business_then_name" : "Walkin Customer", "due_date" : "2019-11-05T07:40:54.820Z", "start_at" : null, "end_at" : null, "location_id" : null, "problem_type" : "Virus", "status" : "New", "properties" : { }, "user_id" : null, "updated_at" : "2019-11-05T07:40:54.824Z", "pdf_url" : null, "intake_form_html" : null, "signature_name" : null, "signature_date" : null, "asset_ids" : [ ], "priority" : null, "resolved_at" : null, "outtake_form_name" : null, "outtake_form_date" : null, "outtake_form_html" : null, "comments" : [ ], "attachments" : [ ], "ticket_timers" : [ ], "line_items" : [ ], "worksheet_results" : [ ], "assets" : [ ], "appointments" : [ ], "ticket_fields" : [ ], "ticket_answers" : [ ], "tag_list": [ ], "customer" : { "id" : 1, "firstname" : "Walkin", "lastname" : "Customer", "fullname" : "Walkin Customer", "business_name" : null, "email" : "walkin@somedomain.com", "phone" : "123", "mobile" : null, "created_at" : "2019-11-05T07:40:44.365Z", "updated_at" : "2019-11-05T07:40:44.365Z", "pdf_url" : null, "address" : null, "address_2" : null, "city" : null, "state" : null, "zip" : null, "latitude" : null, "longitude" : null, "notes" : null, "get_sms" : false, "opt_out" : false, "disabled" : false, "no_email" : true, "location_name" : null, "location_id" : null, "properties" : { }, "online_profile_url" : "http://testsubdomainwi1.lvh.me//my_profile/v2/index?portal_key=2ry2wdlnaybl86oetmbr", "tax_rate_id" : null, "notification_email" : null, "invoice_cc_emails" : null, "invoice_term_id" : null, "referred_by" : null, "ref_customer_id" : null, "business_and_full_name" : "Walkin Customer", "business_then_name" : "Walkin Customer", "contacts" : [ ] }, "contact" : null, "user" : { "id" : 1, "email" : "bat1man44128@man.com", "full_name" : "Bat Man", "created_at" : "2019-11-04T14:54:51.081Z", "updated_at" : "2019-11-04T14:54:51.081Z", "group" : "Admins", "admin" : true, "color" : "1e3e96" }, "ticket_type" : { "id" : 1, "name" : "Devices", "account_id" : 1, "created_at" : "2019-11-04T14:55:01.722Z", "updated_at" : "2019-11-04T14:55:01.722Z", "disabled" : false, "intake_terms" : null, "skip_intake" : false, "outtake_terms" : null, "skip_outtake" : false, "ticket_fields" : [ ] }, "address" : null } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Subject can't be blank" ] } } } } } }, "delete" : { "summary" : "Deletes a Ticket by ID", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Delete\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "Ticket was successfully deleted. " } } } }, "404" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "message" : "Not found" } } } } } } }, "/tickets/settings" : { "get" : { "summary" : "Returns Tickets Settings", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket_status_list" : [ "New", "In Progress", "Resolved", "Invoiced", "Waiting for Parts", "Waiting on Customer", "Scheduled", "Customer Reply" ], "default_labor_product_id" : null, "ticket_timer_charge_by_default" : null, "saved_searches" : [ ], "ticket_types" : [ ], "ticket_type_fields" : [ ], "ticket_type_field_answers" : [ ], "appointment_types" : [ ], "users" : [ { "id" : 1, "name" : "Bat Man" } ], "dashboard_settings" : null, "worksheet_templates" : [ ], "require_ticket_type" : null, "require_intake_form_with_ticket" : null, "require_outtake_form_with_ticket" : null, "ticket_workflow_default_id" : null } } } } } } }, "/tickets/{id}/print" : { "post" : { "summary" : "Prints a Ticket by ID", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - View Details\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" } } } }, "/tickets/{id}/comments": { "get": { "summary": "Returns Comments for a Ticket", "tags": [ "Ticket" ], "security": [ { "bearerAuth": [ ] } ], "description": "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access comments for their own tickets.\n", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "sort_by", "in": "query", "required": false, "description": "Sort by field, created_at or updated_at", "schema": { "type": "string" } }, { "name": "sort_direction", "in": "query", "required": false, "description": "Sort direction, ASC or DESC", "schema": { "type": "string" } }, { "name": "created_after", "in": "query", "format": "date-time", "required": false, "description": "Filter comments created after this date", "schema": { "type": "string" } }, { "name": "created_before", "in": "query", "format": "date-time", "required": false, "description": "Filter comments created before this date", "schema": { "type": "string" } }, { "name": "updated_after", "in": "query", "format": "date-time", "required": false, "description": "Filter comments updated after this date", "schema": { "type": "string" } }, { "name": "updated_before", "in": "query", "format": "date-time", "required": false, "description": "Filter comments updated before this date", "schema": { "type": "string" } }, { "name": "page", "in": "query", "required": false, "description": "Returns provided page of results, each page contains 10 comments by default, default can be changed by setting the 'per_page' parameter", "schema": { "type": "integer" } }, { "name": "per_page", "in": "query", "required": false, "description": "Sets the number of comments per page, default is 10", "schema": { "type": "integer" } }, { "name": "comment_format", "in": "query", "required": false, "description": "Returns comments in the specified format. Allowed values: 'plaintext', 'richtext', 'original'. Defaults to 'plaintext'.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful", "content": { "application/json": { "examples": { "example_0": { "value": { "comments": [ { "id": 1, "created_at": "2025-12-23T00:00:00Z", "updated_at": "2025-12-23T00:00:00Z", "ticket_id": 1, "subject": "Test Subject", "body": "Test Body", "tech": "Test Tech", "hidden": false, "user_id": 1, "is_rich_text": false, "user": { } } ], "meta": { "total_pages": 1, "page": 1, "per_page": 10 } } } } } } } } } }, "/tickets/{id}/comment" : { "post" : { "summary" : "Adds a Comment to a Ticket", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "subject" : { "type" : "string" }, "tech" : { "type" : "string" }, "body" : { "type" : "string" }, "hidden" : { "type" : "boolean" }, "sms_body" : { "type" : "string" }, "do_not_email" : { "type" : "boolean" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "comment" : { "id" : 2, "created_at" : "2019-11-05T09:13:33.422Z", "updated_at" : "2019-11-05T09:13:33.422Z", "ticket_id" : 13, "subject" : "Comment Subject", "body" : "Comment Body", "tech" : "Joe", "hidden" : true, "user_id" : 1 } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Body can't be blank", "Subject can't be blank" ] } } } } } } }, "/tickets/{id}/timer_entry" : { "post" : { "summary" : "Create a Ticket Timer for a Ticket", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Ticket Timers - Overview\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "start_at" : { "type" : "string", "format" : "date-time" }, "end_at" : { "type" : "string", "format" : "date-time" }, "duration_minutes" : { "type" : "integer" }, "user_id" : { "type" : "integer", "description" : "Current user by default" }, "notes" : { "type" : "string" }, "product_id" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "ticket_id" : 15, "user_id" : 1, "start_time" : "2019-11-05T12:15:59.000Z", "end_time" : "2019-11-05T12:25:59.000Z", "recorded" : false, "created_at" : "2019-11-05T12:15:59.365Z", "updated_at" : "2019-11-05T12:15:59.365Z", "billable" : false, "notes" : "API Timer", "toggl_id" : null, "product_id" : null, "comment_id" : null, "ticket_line_item_id" : null, "active_duration" : 600, "billable_time" : 120, "billable_override" : null } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : "no implicit conversion of nil into String" } } } } } } }, "/tickets/{id}/add_line_item" : { "post" : { "summary" : "Creates a Ticket Line Item", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "upc_code" : { "type" : "string" }, "product_id" : { "type" : "integer" }, "description" : { "type" : "string" }, "quantity" : { "type" : "number" }, "price_cost" : { "type" : "number" }, "price_retail" : { "type" : "number" }, "taxable" : { "type" : "boolean" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "ticket_id" : 17, "user_id" : 1, "product_id" : null, "name" : "Manual Item", "description" : "No Product", "quantity" : "1.0", "product_category" : null, "upc_code" : null, "taxable" : true, "cost_cents" : 1000, "retail_cents" : 1500, "created_at" : "2019-11-05T11:46:20.347Z", "updated_at" : "2019-11-05T11:46:20.347Z", "converted" : false, "item_id" : null, "position" : 2, "estimate_line_item_id" : null, "old_price" : null, "line_discount_percent" : null, "discount_dollars" : null, "original_ticket_line_item_id" : null, "price_cost" : 10, "price_retail" : 15 } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "errors" : "Name can't be blank, Description can't be blank", "params" : { } } } } } } } }, "/tickets/{id}/attach_file_url" : { "post" : { "summary" : "Attach a file to a Ticket", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Files" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "message" : "Processing - refresh ticket in a moment to see if it worked." } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "error" : "Missing files param - or not an array like [{'url':'http://foo','filename': 'test'}]" } } } } } } }, "/tickets/{id}/remove_line_item" : { "post" : { "summary" : "Deletes a Ticket Line Item", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "ticket_line_item_id" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : true, "message" : "" } } } }, "404" : { "description" : "Invalid request" } } } }, "/tickets/{id}/update_line_item" : { "put" : { "summary" : "Updates an existing Ticket Line Item", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "ticket_line_item_id" : { "type" : "integer" }, "name" : { "type" : "string" }, "upc_code" : { "type" : "string" }, "product_id" : { "type" : "integer" }, "description" : { "type" : "string" }, "quantity" : { "type" : "number" }, "price_cost" : { "type" : "number" }, "price_retail" : { "type" : "number" }, "taxable" : { "type" : "boolean" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket_line_item" : { "id" : 3, "ticket_id" : 23, "user_id" : null, "product_id" : null, "name" : "Updated Line Name", "description" : "Description", "quantity" : "1.0", "product_category" : null, "upc_code" : null, "taxable" : true, "cost_cents" : null, "retail_cents" : 10000, "created_at" : "2019-11-05T14:20:25.673Z", "updated_at" : "2019-11-05T14:20:25.692Z", "converted" : false, "item_id" : null, "position" : 3, "estimate_line_item_id" : null, "old_price" : null, "line_discount_percent" : null, "discount_dollars" : null, "original_ticket_line_item_id" : null, "price_cost" : 0, "price_retail" : 100 } } } } }, "404" : { "description" : "Invalid request" } } } }, "/tickets/{id}/delete_attachment" : { "post" : { "summary" : "Deletes a Ticket Attachment", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Tickets - Edit\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "attachment_id" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : true } } } }, "404" : { "description" : "Invalid request" } } } }, "/tickets/{id}/delete_timer_entry" : { "post" : { "summary" : "Deletes a Ticket Timer", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Ticket Timers - Overview\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/TimerEntryId" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "success" : true } } } }, "404" : { "description" : "Invalid request" } } } }, "/tickets/{id}/update_timer_entry" : { "put" : { "summary" : "Updates an existing Ticket Timer", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Ticket Timers - Overview\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "timer_entry_id" : { "type" : "integer" }, "start_at" : { "type" : "string", "format" : "date-time" }, "duration_minutes" : { "type" : "integer" }, "user_id" : { "type" : "integer", "description" : "Current user by default" }, "notes" : { "type" : "string" }, "product_id" : { "type" : "integer" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket_id" : 29, "id" : 3, "notes" : "Updated Notes", "user_id" : 1, "toggl_id" : null, "start_time" : "2013-08-06T13:41:15.000Z", "end_time" : "2013-08-06T14:41:15.000Z", "recorded" : false, "created_at" : "2019-11-05T14:58:58.047Z", "updated_at" : "2019-11-05T14:58:58.062Z", "billable" : false, "product_id" : 2, "comment_id" : null, "ticket_line_item_id" : null, "active_duration" : null, "billable_time" : 120, "billable_override" : null } } } }, "404" : { "description" : "Invalid request" } } } }, "/tickets/{id}/charge_timer_entry" : { "post" : { "summary" : "Charges a Ticket Timer", "tags" : [ "Ticket" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Ticket Timers - Overview\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/TimerEntryId" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "ticket_id" : 29, "id" : 3, "notes" : "Updated Notes", "user_id" : 1, "toggl_id" : null, "start_time" : "2013-08-06T13:41:15.000Z", "end_time" : "2013-08-06T14:41:15.000Z", "recorded" : true, "created_at" : "2019-11-05T14:58:58.047Z", "updated_at" : "2019-11-05T14:58:58.062Z", "billable" : false, "product_id" : 2, "comment_id" : null, "ticket_line_item_id" : null, "active_duration" : null, "billable_time" : 120, "billable_override" : null } } } }, "404" : { "description" : "Invalid request" } } } }, "/timelogs" : { "get" : { "summary" : "Returns a paginated list of Timelogs", "tags" : [ "Timelog" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Users with permission \"Timelogs - Manage\" may see timelogs for any/all users.\nOtherwise, results scoped to current user.\n", "parameters" : [ { "name" : "user_id", "in" : "query", "description" : "Returns Timelogs that belong to a User", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "timelogs" : [ { "id" : 1, "in_at" : "2019-11-01T12:50:26.882Z", "out_at" : null, "account_id" : 1, "user_id" : 1, "in_note" : null, "out_note" : null, "created_at" : "2019-11-01T12:50:26.934Z", "updated_at" : "2019-11-01T12:50:26.934Z", "lunch" : null, "manually_updated" : null } ] } } } } } }, "put" : { "summary" : "Updates a Timelog", "tags" : [ "Timelog" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Users with permission \"Timelogs - Manage\" may see timelogs for any/all users.\nOtherwise, results scoped to current user.\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "lunch" : { "type" : "boolean" }, "in_at" : { "type" : "string", "format" : "date-time" }, "out_at" : { "type" : "string", "format" : "date-time" }, "in_note" : { "type" : "string" }, "out_note" : { "type" : "string" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "in_at" : "2019-11-01T12:50:26.882Z", "out_at" : null, "account_id" : 1, "user_id" : 1, "in_note" : null, "out_note" : null, "created_at" : "2019-11-01T12:50:26.934Z", "updated_at" : "2019-11-01T12:50:26.934Z", "lunch" : null, "manually_updated" : null } } } } } } }, "/timelogs/last" : { "get" : { "summary" : "Returns last Timelog", "tags" : [ "Timelog" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Users with permission \"Timelogs - Manage\" may see timelogs for any/all users.\nOtherwise, results scoped to current user.\n", "parameters" : [ { "name" : "user_id", "in" : "query", "required" : false, "description" : "Returns Timelogs that belong to a User. The default is current user ID.", "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "id" : 1, "in_at" : "2019-11-01T12:50:26.882Z", "out_at" : null, "account_id" : 1, "user_id" : 1, "in_note" : null, "out_note" : null, "created_at" : "2019-11-01T12:50:26.934Z", "updated_at" : "2019-11-01T12:50:26.934Z", "lunch" : null, "manually_updated" : null } } } } } } }, "/user_devices" : { "post" : { "summary" : "Creates a User Device", "tags" : [ "User Device" ], "security" : [ { "bearerAuth" : [ ] } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "device_uuid" : { "type" : "string" }, "device_name" : { "type" : "string" }, "registration_token_gcm" : { "type" : "string" }, "system_name" : { "type" : "string" }, "model" : { "type" : "string" }, "screen_size" : { "type" : "string" } } } } } }, "description" : "", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "user_id" : 1, "registration_token_gcm" : "new_token", "id" : 5, "device_uuid" : "u12345", "account_id" : null, "name" : null, "device_name" : null, "system_name" : null, "model" : null, "screen_size" : null, "disabled" : false, "created_at" : "2019-11-04T08:18:32.476Z", "updated_at" : "2019-11-04T08:18:32.490Z" } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "message" : "Missing params device_uuid" } } } } } } }, "/user_devices/{id}" : { "get" : { "summary" : "Retrieves an existing User Device by UUID", "tags" : [ "User Device" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "id", "in" : "path", "description" : "User Device UUID", "required" : true, "schema" : { "type" : "integer" } } ], "description" : "", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "user_id" : 1, "registration_token_gcm" : "new_token", "id" : 5, "device_uuid" : "u12345", "account_id" : null, "name" : null, "device_name" : null, "system_name" : null, "model" : null, "screen_size" : null, "disabled" : false, "created_at" : "2019-11-04T08:18:32.476Z", "updated_at" : "2019-11-04T08:18:32.490Z" } } } } } }, "put" : { "summary" : "Updates an existing User Device by UUID", "tags" : [ "User Device" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "id", "in" : "path", "description" : "Device UUID", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "registration_token_gcm" : { "type" : "string" } } } } } }, "description" : "", "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "user_id" : 1, "registration_token_gcm" : "new_token", "id" : 5, "device_uuid" : "u12345", "account_id" : null, "name" : null, "device_name" : null, "system_name" : null, "model" : null, "screen_size" : null, "disabled" : false, "created_at" : "2019-11-04T08:18:32.476Z", "updated_at" : "2019-11-04T08:18:32.490Z" } } } } } } }, "/me" : { "get" : { "summary" : "Returns the current user", "tags" : [ "User" ], "security" : [ { "bearerAuth" : [ ] } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "user_token" : "3746f72b-9852-4d1a-84e9-eedb5c50abcd", "user_email" : "joedoe@example.com", "user_name" : "Joe Doe", "user_id" : 1, "admin" : true, "can_use_app" : true, "two_factor_required" : false, "subdomain" : "testsubdomainwi1", "default_location" : null, "enable_multi_locations" : false, "locations_allowed" : [ ], "permissions" : { "asset" : { "read" : true, "write" : true, "delete" : true }, "customer" : { "read" : true, "write" : true, "delete" : true }, "ticket" : { "read" : true, "write" : true, "delete" : true }, "invoice" : { "read" : true, "write" : true, "delete" : true }, "payment" : { "read" : true, "write" : true, "delete" : true }, "worksheet" : { "add" : true, "manage" : true, "delete" : true }, "script" : { "execute" : true } } } } } } } } }, "/users" : { "get" : { "summary" : "Returns a paginated list of Users", "tags" : [ "User" ], "security" : [ { "bearerAuth" : [ ] } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "users" : [ [ 1, "Joe Doe" ] ] } } } } } } }, "/otp_login" : { "post" : { "summary" : "Authorize a User with One Time Password", "tags" : [ "User" ], "security" : [ { "bearerAuth" : [ ] } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "code" : { "type" : "string" } } } } }, "description" : "Time-based one-time password from your authentication application." }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "login" : true, "session_token" : "1cbe0553-9fcd-4035-8e69-52792e16d489", "token_expiration" : "2019-12-01T11:39:33.042Z", "instructions" : "Save the session token somewhere safe and send that with the api_key for all future web requests. It goes in a header called Authorization2FAToken." } } } }, "401" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "login" : false, "instructions" : "Your multi-factor authentication attempt failed for the 6th time, please open Syncro in browser and recover MFA." } } } } } } }, "/users/{id}" : { "get" : { "summary" : "Retrieves an existing User by ID", "tags" : [ "User" ], "security" : [ { "bearerAuth" : [ ] } ], "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "user" : { "id" : 1, "email" : "username@example.com", "full_name" : "User Name", "created_at" : "2019-11-01T11:39:20.554Z", "updated_at" : "2019-11-01T11:39:20.554Z", "group" : "Admins", "admin" : true, "color" : "55b932" } } } } } } } }, "/vendors" : { "get" : { "summary" : "Returns a paginated list of Vendors", "tags" : [ "Vendor" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Vendors - List\n", "parameters" : [ { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 100 result", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "vendors" : [ { "id" : 1, "name" : "Vendor Name", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-05T16:11:12.409Z", "updated_at" : "2019-11-05T16:11:12.409Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "White label trucks" } ] } } } } } }, "post" : { "summary" : "Creates a Vendor", "tags" : [ "Vendor" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Vendors - New\n", "requestBody" : { "$ref" : "#/components/requestBodies/Vendor" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "vendor" : { "id" : 1, "name" : "Vendor Name", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-05T16:11:12.409Z", "updated_at" : "2019-11-05T16:11:12.409Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "White label trucks" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Email is not an email" ], "params" : { "name" : "Vendor1", "email" : "broken_emailmail.com" } } } } } } } }, "/vendors/{id}" : { "get" : { "summary" : "Retrieves a Vendor Page", "tags" : [ "Vendor" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Vendors - View Details\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "vendor" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "name" : { "type" : "string" }, "rep_first_name" : { "type" : "string" }, "rep_last_name" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "account_number" : { "type" : "string", "nullable" : true }, "created_at" : { "type" : "string", "format" : "date-time" }, "updated_at" : { "type" : "string", "format" : "date-time" }, "address" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "website" : { "type" : "string" }, "notes" : { "type" : "string" } } } } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Vendor page by ID", "tags" : [ "Vendor" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Vendors - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "$ref" : "#/components/requestBodies/Vendor" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "vendor" : { "id" : 7, "name" : "New name", "rep_first_name" : "Bill", "rep_last_name" : "Sales", "email" : "info@candswholes.com", "phone" : "603-344-5555", "account_number" : null, "created_at" : "2019-11-06T08:52:42.139Z", "updated_at" : "2019-11-06T08:52:42.169Z", "address" : "44 Billings Circle", "city" : "Keene", "state" : "NH", "zip" : "03455", "website" : "www.candswholes.com", "notes" : "White label trucks" } } } } }, "404" : { "description" : "Not found" }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "message" : [ "Email is not an email" ] } } } } } } }, "/wiki_pages" : { "get" : { "summary" : "Returns a paginated list of Wiki Pages", "tags" : [ "Wiki Page" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Documentation - Allow Usage\n", "parameters" : [ { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 100 result", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "wiki_pages" : [ { "id" : 1, "account_id" : 1, "name" : "API Doc", "slug" : "api-doc", "body" : "a sample body", "interpolated_body" : "a sample body" } ] } } } } } }, "post" : { "summary" : "Creates a Wiki Page", "tags" : [ "Wiki Page" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Documentation - Create\n", "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "slug" : { "type" : "string" }, "body" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "asset_id" : { "type" : "integer" }, "visibility" : { "type" : "string" } } } } }, "description" : "Wiki Page object that needs to be added" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "wiki_page" : { "id" : 1, "account_id" : 1, "name" : "API Doc", "slug" : "api-doc", "body" : "a sample body", "interpolated_body" : "a sample body" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "errors" : [ "Body can't be blank", "Name can't be blank" ], "params" : { "name" : "" } } } } } } } }, "/wiki_pages/{id}" : { "get" : { "summary" : "Retrieves a Wiki Page", "tags" : [ "Wiki Page" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Documentation - Allow Usage\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "*/*" : { "schema" : { "type" : "object", "properties" : { "wiki_page" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "account_id" : { "type" : "integer" }, "name" : { "type" : "string" }, "slug" : { "type" : "string" }, "body" : { "type" : "string" }, "interpolated_body" : { "type" : "string" } } } } } } } }, "404" : { "description" : "Invalid request" } } }, "put" : { "summary" : "Updates an existing Wiki Page by ID", "tags" : [ "Wiki Page" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Documentation - Edit\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "slug" : { "type" : "string" }, "body" : { "type" : "string" }, "customer_id" : { "type" : "integer" }, "asset_id" : { "type" : "integer" }, "visibility" : { "type" : "string" } } } } }, "description" : "Wiki Page object that needs to be updated" }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "wiki_page" : { "id" : 1, "account_id" : 1, "name" : "API Doc", "slug" : "api-doc", "body" : "a sample body", "interpolated_body" : "a sample body" } } } } }, "422" : { "description" : "Invalid request", "content" : { "application/json" : { "example" : { "success" : false, "errors" : [ "Name can't be blank" ], "params" : { "name" : "" } } } } } } }, "delete" : { "summary" : "Deletes a Wiki Page by ID", "tags" : [ "Wiki Page" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permission: Documentation - Delete\n", "parameters" : [ { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" }, "404" : { "description" : "Invalid request" } } } }, "/tickets/{ticket_id}/worksheet_results" : { "get" : { "summary" : "Returns a paginated list of Worksheet Results", "tags" : [ "Worksheet Result" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "ticket_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "page", "in" : "query", "description" : "Returns provided page of results, each 'page' contains 25 results", "required" : false, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "worksheet_results" : [ { "id" : 1, "worksheet_template_id" : 1, "name" : "Worksheet Result from a Template", "public" : true, "complete" : null, "required" : false, "field_list" : [ { "name" : "section", "slug" : "section", "id" : 1, "position" : 0, "history" : [ ] }, { "name" : "check", "slug" : "check", "id" : 2, "position" : 1, "history" : [ ] } ] } ] } } } } } }, "post" : { "summary" : "Creates Worksheet Result", "tags" : [ "Worksheet Result" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "ticket_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "worksheet_template_id" : { "type" : "integer" }, "title" : { "type" : "string" } } } } } }, "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "worksheet_result" : { "id" : 1, "worksheet_template_id" : 1, "name" : "Worksheet Result from a Template", "public" : true, "complete" : null, "required" : false, "field_list" : [ { "name" : "section", "slug" : "section", "id" : 1, "position" : 0, "history" : [ ] }, { "name" : "check", "slug" : "check", "id" : 2, "position" : 1, "history" : [ ] } ] } } } } } } } }, "/tickets/{ticket_id}/worksheet_results/{id}" : { "get" : { "summary" : "Retrieves a Worksheet Result by ID", "tags" : [ "Worksheet Result" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "ticket_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful", "content" : { "application/json" : { "example" : { "worksheet_result" : { "id" : 1, "worksheet_template_id" : 1, "name" : "Worksheet Result from a Template", "public" : true, "complete" : null, "required" : false, "field_list" : [ { "name" : "section", "slug" : "section", "id" : 1, "position" : 0, "history" : [ ] }, { "name" : "check", "slug" : "check", "id" : 2, "position" : 1, "history" : [ ] } ] } } } } } } }, "put" : { "summary" : "Updates a Worksheet Result", "tags" : [ "Worksheet Result" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "ticket_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "worksheet_template_id" : { "type" : "integer" }, "user_id" : { "type" : "integer" }, "title" : { "type" : "string" }, "complete" : { "type" : "boolean" }, "public" : { "type" : "boolean" }, "required" : { "type" : "boolean" }, "answers" : { "type" : "object", "properties" : { "value" : { "type" : "string" }, "user" : { "type" : "string" } } } } } } } }, "responses" : { "200" : { "description" : "successful" } } }, "delete" : { "summary" : "Deletes a Worksheet Result", "tags" : [ "Worksheet Result" ], "security" : [ { "bearerAuth" : [ ] } ], "description" : "Required permissions: \"Tickets - View Details\" or \"Tickets - View 'Their Ticket' Details (assigned to them)\"\nSingle-Customer Users can only access own tickets.\n", "parameters" : [ { "name" : "ticket_id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } }, { "name" : "id", "in" : "path", "required" : true, "schema" : { "type" : "integer" } } ], "responses" : { "200" : { "description" : "successful" } } } } }, "servers" : [ { "url" : "https://{subdomain}.syncromsp.com/api/v1", "variables" : { "subdomain" : { "default" : "your-subdomain", "description": "Syncro Subdomain" } } } ], "components" : { "requestBodies" : { "Vendor" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "rep_first_name" : { "type" : "string" }, "rep_last_name" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "account_number" : { "type" : "string" }, "address" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "website" : { "type" : "string" }, "notes" : { "type" : "string" } } } } } }, "LineItem" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "upc_code" : { "type" : "string" }, "product_id" : { "type" : "integer" }, "item" : { "type" : "string" }, "name" : { "type" : "string" }, "quantity" : { "type" : "number" }, "price" : { "type" : "number" }, "cost" : { "type" : "number" }, "discount_percent" : { "type" : "number" }, "taxable" : { "type" : "boolean" }, "tax_note" : { "type" : "string" }, "tax_rate_id" : { "type" : "integer" }, "user_id" : { "type" : "integer" }, "position" : { "type" : "integer" }, "product_category" : { "type" : "string" } } } } } }, "PortalUser" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "contact_id" : { "type" : "integer" }, "customer_id" : { "type" : "integer" }, "password" : { "type" : "string" }, "password_confirmation" : { "type" : "string" }, "email" : { "type" : "string" }, "portal_group_id" : { "type" : "integer" } } } } } }, "ScheduleLineItem" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "product_id" : { "type" : "integer" }, "cost_cents" : { "type" : "integer" }, "description" : { "type" : "string" }, "name" : { "type" : "string" }, "position" : { "type" : "integer" }, "quantity" : { "type" : "number" }, "retail_cents" : { "type" : "integer" }, "one_time_charge" : { "type" : "boolean" }, "taxable" : { "type" : "boolean" }, "user_id" : { "type" : "integer" }, "asset_type_id" : { "type" : "integer" }, "contact_field_type_id" : { "type" : "integer" }, "contact_field_answer_id" : { "type" : "integer" }, "recurring_type_id" : { "type" : "integer", "enum" : [ 1, 2, 3, 4, 5, 6 ] }, "saved_asset_search_id" : { "type" : "integer" } } } } } }, "TimerEntryId" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "timer_entry_id" : { "type" : "integer" } } } } } }, "LineItem2" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "id" : { "type" : "integer" }, "line_discount_percent" : { "type" : "integer" }, "discount_dollars" : { "type" : "string" }, "item" : { "type" : "string" }, "name" : { "type" : "string" }, "price" : { "type" : "number" }, "cost" : { "type" : "number" }, "taxable" : { "type" : "boolean" } } } } }, "description" : "ID of line item to update" }, "Customer" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "business_name" : { "type" : "string" }, "firstname" : { "type" : "string" }, "lastname" : { "type" : "string" }, "email" : { "type" : "string" }, "phone" : { "type" : "string" }, "mobile" : { "type" : "string" }, "address" : { "type" : "string" }, "address_2" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "notes" : { "type" : "string" }, "get_sms" : { "type" : "boolean" }, "opt_out" : { "type" : "boolean" }, "no_email" : { "type" : "boolean" }, "get_billing" : { "type" : "boolean" }, "get_marketing" : { "type" : "boolean" }, "get_reports" : { "type" : "boolean" }, "ref_customer_id" : { "type" : "integer" }, "referred_by" : { "type" : "string" }, "tax_rate_id" : { "type" : "integer" }, "notification_email" : { "type" : "string" }, "invoice_cc_emails" : { "type" : "string" }, "invoice_term_id" : { "type" : "integer" }, "properties" : { "type" : "object" }, "consent" : { "type" : "object" } } } } } }, "Phone" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "label" : { "type" : "string" }, "number" : { "type" : "string" }, "extension" : { "type" : "string" } } } } } }, "Files" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "files" : { "type" : "array", "items" : { "type" : "object", "properties" : { "url" : { "type" : "string" }, "filename" : { "type" : "string" } } } } } } } } }, "Schedule" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "email_customer" : { "type" : "boolean" }, "frequency" : { "type" : "string", "enum" : [ "Daily", "Monthly", "Weekly", "Biweekly", "Quarterly", "Semi-Annually", "Annually", "Biennially", "Triennially" ] }, "name" : { "type" : "string" }, "next_run" : { "type" : "string", "format" : "date" }, "snail_mail" : { "type" : "boolean" }, "charge_mop" : { "type" : "boolean" }, "invoice_unbilled_ticket_charges" : { "type" : "boolean" }, "paused" : { "type" : "boolean" } } } } } }, "Ticket" : { "content" : { "application/json" : { "schema" : { "type" : "object", "properties" : { "customer_id" : { "type" : "integer" }, "ticket_type_id" : { "type" : "integer" }, "number" : { "type" : "string" }, "subject" : { "type" : "string" }, "due_date" : { "type" : "string", "format" : "date" }, "start_at" : { "type" : "string", "format" : "date-time" }, "end_at" : { "type" : "string", "format" : "date-time" }, "location_id" : { "type" : "integer" }, "problem_type" : { "type" : "string" }, "status" : { "type" : "string" }, "user_id" : { "type" : "integer" }, "properties" : { "type" : "object", "properties" : { } }, "asset_ids" : { "type" : "array", "items" : { "type" : "integer" } }, "signature_name" : { "type" : "string" }, "signature_data" : { "type" : "string" }, "sla_id" : { "type" : "integer" }, "contact_id" : { "type" : "integer" }, "priority" : { "type" : "string" }, "outtake_form_data" : { "type" : "string" }, "outtake_form_date" : { "type" : "string", "format" : "date-time" }, "outtake_form_name" : { "type" : "string" }, "tag_list": { "type" : "array", "items" : { "type" : "string" } }, "comments_attributes" : { "type" : "array", "items" : { "type" : "object", "properties" : { "subject" : { "type" : "string" }, "body" : { "type" : "string" }, "hidden" : { "type" : "boolean" }, "sms_body" : { "type" : "string" }, "do_not_email" : { "type" : "boolean" }, "tech" : { "type" : "string" } } } } } } } } } }, "securitySchemes" : { "bearerAuth" : { "type" : "apiKey", "in" : "header", "name" : "Authorization", "scheme" : "bearer" } } } }