| Create WorkOrder | |
| URL | /WorkOrder/Create | 
| Method | POST | 
| Body | { | 
| Response | HTTP/1.1 400 Business rule violation. CustomId should be unique HTTP/1.1 200 OK { "ActorId":1, "CreateDate":"\/Date(1347012989707)\/", "CustomId":"3-2-2", "Description":"", "EndDate":"\/Date(1357030000000)\/", "FieldWorkerId":1, "Id":37, "IdInContext":1, "InvoicingMemo":"Invoice memo test", "LocationId":null, "ServiceRequestId":3, "StartDate":"\/Date(1357022800000)\/", "StatusId":1, "TaxNameId":null } | 
| Comments | 
 | 
| Update Work Order | |
| URL | /WorkOrder | 
| Method | PUT | 
| Body | 
 { "ActorId":1, "CreateDate":"\/Date(1347012989707)\/", "CustomId":"3-2-2", "Description":"", "EndDate":"\/Date(1357030000000)\/", "FieldWorkerId":1, "Id":37, "IdInContext":1, "InvoicingMemo":"Invoice memo test", "LocationId":null, "ServiceRequestId":3, "StartDate":"\/Date(1357022800000)\/", "StatusId":2 } 
 | 
| Response | HTTP/1.1 400 Business rule violation.  CustomId should be unique HTTP/1.1 200 OK { "ActorId":1, "CreateDate":"\/Date(1347012989707)\/", "CustomId":"3-2-2", "Description":"", "EndDate":"\/Date(1357030000000)\/", "FieldWorkerId":1, "Id":37, "IdInContext":1, "InvoicingMemo":"Invoice memo test", "LocationId":null, "ServiceRequestId":3, "StartDate":"\/Date(1357022800000)\/", "StatusId":2, "TaxNameId":null } | 
| Comments | 
 | 
| Delete Work Order | |
| URL | /WorkOrder/{id} | 
| Method | DELETE | 
| Body | 
 | 
| Response | HTTP/1.1 400 Entity not found HTTP/1.1 200 OK | 
| Comments | 
 | 
| Get Work Orders | |
| URL | /WorkOrder/List | 
| Method | POST | 
| Body | { | 
| Response | [ { "ActorId":1, "CreateDate":"\/Date(1347012989707)\/", "CustomId":"3-2-2", "Description":"", "EndDate":"\/Date(1357030000000)\/", "FieldWorkerId":1, "Id":37, "IdInContext":1, "InvoicingMemo":"Invoice memo test", "LocationId":null, "ServiceRequestId":3, "StartDate":"\/Date(1357022800000)\/", "StatusId":2, "TaxNameId":null } ] | 
| Comments | 
 | 
| Get WorkOrder | |
| URL | /WorkOrder/{id} | 
| Method | GET | 
| Body | 
 | 
| Response | { "ActorId":1, "CreateDate":"\/Date(1347012989707)\/", "CustomId":"3-2-2", "Description":"", "EndDate":"\/Date(1357030000000)\/", "FieldWorkerId":1, "Id":37, "IdInContext":1, "InvoicingMemo":"Invoice memo test", "LocationId":null, "ServiceRequestId":3, "StartDate":"\/Date(1357022800000)\/", "StatusId":2, "TaxNameId":null } 
 | 
| Comments | 
 | 
|  | Get Addresses list to be exported into QB as SubCustomers | 
|---|---|
| URL | /WorkOrder/GetAddressesAsSubCustomers | 
| Method | POST | 
| Body | { | 
| Response | [ | 
|  | Get Service Request list to be exported into QB as Jobs | 
|---|---|
| URL | /WorkOrder/GetServiceRequestsAsJobs | 
| Method | POST | 
| Body | { | 
| Response | [ | 
|  | Update Address QuickBooks IDs | 
|---|---|
| URL | /WorkOrder/UpdateQuickBooksAddressIds | 
| Method | POST | 
| Body | { "QuickBooksIds": [ { "ServerId":1, "QuickBooksId":"80000031-1314102902", "Name":"Address name" } ] } | 
| Response | [{"Id":1,"IsSuccess":true,"Message":null}] | 
|  | Get Work Orders For Creating Invoices | 
|---|---|
| URL | /WorkOrder/GetWorkOrdersForCreatingInvoices?startDate=09/22/2014&endDate=10/22/2014 | 
| Method | GET | 
| Response | [ { "ActorId":0, "CreateDate":"\/Date(1412260466310)\/", "CustomId":"1077-122", "Description":"Install Shower", "EndDate":"\/Date(1412703000000)\/", "FieldWorkerId":1, "Id":1619, "IdInContext":122, "InvoicingMemo":null, "LocationId":null, "ServiceRequestId":1077, "StartDate":"\/Date(1412694000000)\/", "StatusId":2, "TaxNameId":null } ] | 
| Comments | startDate/endDate are optional parameters | 
|  | Generate Invoice Entities | 
|---|---|
| URL | /WorkOrder/GenerateInvoiceEntities | 
| Method | POST | 
| Body | { | 
| Response | [ | 
| Responce 2 | [ | 
| Comment | Response Id is Invoice.WorkOrders.First.Id | 
|  | Get Invoices that can be exported to QuickBooks Desktop | 
|---|---|
| URL | WorkOrder/GetInvoicesForExport?startDate={startDate}&endDate={endDate} | 
| Method | GET | 
| Body | |
| Response | HTTP/1.1 200 OK | 
| Comments | Dateformat for start and end dates is MM/dd/yyyy For example, for getting all available for export invoices from 1th January 2016 till 24th January 2017 query should look like this: WorkOrder/GetInvoicesForExport?startDate=01/01/2016&endDate=01/24/2017 | 
|  | Updating QuickBooks Desktop identifiers for invoices | 
|---|---|
| URL | WorkOrder/UpdateInvoiceQuickbooksIds | 
| Method | POST | 
| Body | { | 
| Response | HTTP/1.1 200 OK [ 
 | 
| Comments | ServerId is identifier of invoice in invoices table | 
|  | Get all payments information that need to send to QuickBooks Desktop List | 
|---|---|
| URL | WorkOrder/GetPaymentsForExport | 
| Method | GET | 
| Body | |
| Response | HTTP/1.1 200 OK | 
| Comments | 
|  | UpdatePaymentsQuickbooksIds | 
|---|---|
| URL | WorkOrder/UpdatePaymentQuickbooksIds | 
| Method | POST | 
| Body | { | 
| Response | HTTP/1.1 200 OK HTTP/1.1 200 OK [ | 
| Comments | ServerId is identifier of payment in payments table | 
