Public API

Good News RepairDesk users! We've launched our Public API option which will allow you to create cool and exciting integrations with RepairDesk. Build outstanding widgets, customized tools and integrations according to your business needs and be a part of POS revolution!

Excited? Let's get you started:

A. API Key
Getting RepairDesk API key is a piece of cake! You can get our API key by:
1. Logging in to RepairDesk.
2. Heading to Store Settings.
3. Under Other Information section, you will find an API generated for you under the heading API KEY.


  
4. To reset API key, simply click on Reset. RepairDesk will ask for confirmation. Click on Yes to proceed.
 


5. Hit the Save Changes button to confirm changes.  

B. Settings & Requirements

To start working on API, you would need some information from our side. We're mentioning these details below (For your eyes only): 

Base URL: To work on API, please use the URL : https://api.repairdesk.co/api/web/v1/

Request Rate: At this moment you can send up to 50 requests per minute. Once the limit is reached you'll receive an error message. 

Format: RepairDesk will return data in JSON format. You can send data in regular encoding or by setting the content type as JSON while using it in body. 

You will also be able to send a simple HTTP GET request to many endpoints. In order do that, set the API Key parameter as follwoing: 
GET https://api.repairdesk.co/api/web/v1/customers?api_key=YOUR_KEY

C. End Points
We've set some basic end points to facilitate you while you're working on API development. Please see the list below with HTTP Verb and End Points:



A brief description of these end points are as following:

GET – Allows you to retrieve a list or collection
POST – Helps you in creating a  new item in collection
PUT –Replaces an item with another item in parameters
PATCH – Enables you to update an item with information in parameters
DELETE – Enables you to remove item or collection

D. Information on Sections & Parameters

I. Customers
1- index GET /customers
Search is also supported by passing a parameter named "keyword" to do a search
2- show GET /customers/:id
3- create POST /customers
4- update PUT /customers/:id 
 
Request Example:
{"first_name":"Josh","last_name":"Hanlon","phone":"+310 928 1115","mobile":"","address1":"","address2":"","postcode":"1111","city":"Chicago","state":"","country":"United States","email":"josh@repairdesk.co","orgonization":"Repairdesk","driving_licence":"","contact_person":"","tax_number":"","network":""}


Valid parameters for Customers:
first_name, last_name, phone, mobile, email, address1, address2, postcode, city, state, country, organization,driving_licence,contact_person,tax_number,network

II. Tickets
1- index GET /tickets
Search is also supported by passing a parameter named "keyword" in URL to do a search.

Parameters for Filters:

a) : pagesize: number of ticket to be displayed per request
b) : page: refers to pagination limits e.g. Page 1,2 3 etc. Default page is identified by 0
c) : status: search by ticket status
d) : assigned_to: Send ID of the ticket assignee
e) : from_date,to_date: Send time stamp to search tickets base on the basis of date of creation. If not set, this will return tickets for today as default. To get tickets for previous dates, send an extra parameter in URL titled "filter" with values:
Yesterday: 1
Last Week: 7
Last Month: 30
All: 0  
  
2- show GET /tickets/:id

Request Sample:
https://api.repairdesk.co/api/web/v1/tickets/359324?api_key=jBrUJSC-Ceov-ReYI-uSJj-Ss16UQedT

3- create POST /tickets

Request Sample: 

{"summary":{"customer_id":"388","signature":""},"devices":[{"device":"12229","repairProdItems":[{"name":"SIM card tray / Holder","id":"40440"},{"name":"Battery Replacement","id":"40439"}],"imei":"111111111111111","serial":"","security_code":"9876","status":"Pending","task_type":"2","due_on":"1472122800","price":"116.36","line_discount":"0.00","gst":"23.27","assigned_to":"149","staff_comments":"","public_comments":"","PreConditions":[{"name":"Power Button","result":"0"},{"name":"Volume Button","result":"1"}],"supplied":[{"name":"Battery","result":"1"},{"name":"Charger","result":"1"}],"taxclass":"1047","device_location":"","network":"T-Mobile","Parts":[{"product_id":"492565","supplier":"","warrenty":"190","warranty_timeframe":"1","sku":"090000","name":"Antenna for iPhone 4S","quantity":"1","price":"6.67","gst":"1.33","taxclass":"1047"}]}]}

For signature parameter, send the parameter in base 64 format. 

4- update PUT /tickets/:id

Pass IDs in the devices object, obtained from the ticket details API. 

Additional APIs
Following are some additional APi’s to retrieve information for creating or updating tickets such as list of problems, devices etc.

1: Get /devices  
It will return list of devices
2: Get/problems
2: Get/problems/:id
Pass device id to get problems against device.
3: Get /statuses
Get list of Ticket status
4: Get /employees
Get employee list it will used to search or for assign ticket to technician
5: Get /networks
6: Get /parts
It will be used to get list of part to associate with the repair ticket.
7: Get /taxclasses
8: Get /devicelocations
9: Get /supplies
To get list of supplied items like sim card, battery etc.
10: Get /tasktypes 
To get list of task type
11: GET /tickets/:id/converttoinvoice 
Convert ticket into invoice


III. Invoices
1- index GET /invoices
Also supports search pass parameter named “keyword” in the URL

Additional parameter (filters) 
1: pagesize: number of invoice per request
2: page: for pagination like page 1,2 3 etc. default is page 0
3: status: search by status of the ticket
  Supported status words paid,unpaid,refunded,partial
5: from_date ,to_date: send time stamp to search tickets base on created date.
By default, it returns today invoices if no parameter is passed for the search. If you want to get yesterday, 7 days 30 days invoices pass parameter named “filter” 1 for yesterday 7 or 30 etc. if you want to get all invoices send 0 in this parameter.
2- show GET /invoices/:id
3- create POST /invoices/:id

Request Sample:
{"summary":{"customer_id":"388","due_on":"1472122800","created_date":"1472122800"},"items":[{"product_id":"1742698","sku":"090000","name":"Antenna Interconnect Cable for iPhone 5","quantity":"1","description":"test desc","notes":"test notes","line_discount":"","price":"30.00","gst":"3.00","taxclass":"1047"},{"product_id":"40775","description":"","notes":"test notes","sku":"090000","name":"Antenna Interconnect Cable for iPhone 5","quantity":"1","line_discount":"","price":"18.33","gst":"3.67","taxclass":"1047"}]}

4- update PUT /invoices/:id


Additional APIs
Following are some additional APi’s to get information for creating/updating Invoice

1: GET/inventory return list of all accessories items with price, tax and tax class

1- GET //invoices/:id/dueamount
It returns invoice due amount

2- GET /invoices/paymentmethodsreturn
List of available payment methods

3- POST /invoices/:id/payments
Adds payment to invoice

Request Sample:
{"amount":"30.00","payment_date":"1472122800","method":"Cash","notes":"Test Notes"}



Feedback and Knowledge Base