Skip to main content

How to update an order for Service Department

This document is designed to help you understand how you can update a Repair Order for the Service Department. The endpoint enables users to submit an existing Repair order with various parameters like orderDate, closeDate, orderNumber, etc.. The endpoint mentioned below can assist you in updating a Repair Order with customized parameters :-

Note:

Before updating a Repair Order, it is essential to first read the RO using the endpoint described in Read Service Order. Retrieve the orderReadChecksum from the response and include it as the required orderReadorderReadChecksum header value in your update request. This ensures data integrity and consistency during the update process.

Decision Tree

Parameters Used

Path parameters

Parameter NameValueDescriptionRequired
departmentUUIDStringUnique identifier of dealer departmentYes
orderUUIDStringUnique identifier of dealer orderYes
Parameter NameDescriptionRequired
{{basic_auth_token}}Authorization: Base64 encoded string using Service Subscriber Username and passwordYes
{{orderReadChecksum}}orderReadChecksum is a required header value that must be included in update requests. It should be the same value that the vendor received from the previous read order response, ensuring data integrity and consistency during the update process.Yes

Scope

This request requires the following authorization scopes:

ScopeLevelDescription
order.updateDealerDepartmentAuthorizes client to update service order for provided user's dealer department

Endpoint

curl -X POST "https://api.mykaarma.com/order/v2/department/{{departmentUUID}}/order/{{orderUUID}}"
-H "Authorization: {{basic_auth_token}}"
-H "Content-Type: application/json"
-H "orderReadorderReadChecksum : {{orderReadorderReadChecksum}}"
-d '{
"order":{
"type":"RO",
"header":{
"orderNumber":"string",
"serviceAccount":"string",
"accountingAccount":"string",
"status":"string",
"deptType":"string",
"advisorNumber":"string",
"advisorName":"string",
"assignedUserUuid":"string",
"creatorUserUuid":"string",
"appointmentNumber":"string",
"tagNumber":"string",
"mileageIn":"string",
"mileageOut":"string",
"createDate":"string",
"createTime":"string",
"promisedDate":"string",
"promisedTime":"string",
"voidDate":"string",
"closeDate":"string",
"closeTime":"string",
"waiter":"string",
"rental":"string",
"soldHours":"string",
"actualHours":"string",
"laborCost":"string",
"laborSale":"string",
"laborSaleCustomer":"string",
"laborSaleInternal":"string",
"laborSaleWarranty":"string",
"partsCost":"string",
"partsCostCustomer":"string",
"partsCostInternal":"string",
"partsCostWarranty":"string",
"partsSale":"string",
"partsSaleCustomer":"string",
"partsSaleInternal":"string",
"partsSaleWarranty":"string",
"lubeSale":"string",
"lubeSaleCustomer":"string",
"lubeSaleInternal":"string",
"lubeSaleWarranty":"string",
"miscSale":"string",
"miscSaleCustomer":"string",
"miscSaleInternal":"string",
"miscSaleWarranty":"string",
"subletSale":"string",
"subletSaleCustomer":"string",
"subletSaleInternal":"string",
"subletSaleWarranty":"string",
"customerPayAmount":"string",
"customerPayStateTax":"string",
"internalPayAmount":"string",
"warrantyPayAmount":"string",
"description":"string"
},
"vehicle":{
"uuid":"string"
},
"customer":{
"uuid":"string",
},
"jobs":[
{
"jobIdentifier":"string",
"jobNumberString":"string",
"lopSeqNumber":"string",
"laborOpCode":"string",
"laborOpCodeDesc":"string",
"laborType":"string",
"laborSale":"string",
"soldHours":"string",
"actualHours":"string",
"partsSale":"string",
"miscSale":"string",
"bookerNo":"string",string
"dispatchLineStatus":"string",
"techNo":"string",
"campaignCode":"string",
"parts":[
{

"partNumber":"string",
"description":"string",
"seqNo":"string",
"quantityOrdered":"string",
"quantitySold":"string",
"cost":"string",
"salePrice":"string",
"saleTotal":"string",
"laborType":"string"
}
],
"gog":[
{
"itemType":"string",
"itemDescription":"string",
"jobNumber":"string",
"quantity":"string",
"saleTotal":"string",
"salePrice":"string",
"laborType":"string"
}
],
"techHours":[
{
"techNo":"string",
"partSeqNo":"string",
"laborCost":"string",
"laborSale":"string",
"soldHours":"string",
"otherHours":"string",
"laborType":"string"
}
],
"comments":[
{
"comment":"string",
"lastUpdatedBy":"string",
"updateDate":string"",
"updateTime":"string"
}
],
"ccc":{
"complaint":"string",
"complaintCode":"string",
"cause":"string",
"correction":"string"
}
}

],
"mls" :[
{
"laborType": "string",
"opCode" : "string",
"opCodeDesc" : "string",
"failureCode" : "string",
"salePrice" : "string",
"costPrice" : "string",
"saleCompany" : "string",
"sourceCompany" : "string",
"lineCode" : "string",
"poNumber" : "string",
"poCreateDate" :"string",
"poLineID" : "string",
"mlsType" : "string"
}
]
}
}'

Response


{
"errors": [
{
"errorCode": "string",
"errorDescription": "string",
"errorUID": "string"
}
],
"warnings": [
{
"warningCode": 0,
"warningDescription": "string"
}
],
"orderUUID": "string",
"statusCode": "Integer"
}

Request Body

Order Details

Parameter NameDescriptionRequiredField Length
type"RO" for service/repair orderYes2
orderNumberUnique identifier for the order. Ordernumber should match regex ^[a-zA-Z0-9-#_\s]*$Yes75
serviceAccountAccount associated with the service in the DMS.No20
accountingAccountAccount used for accounting purposes in the DMS.No20
statusCurrent status of the order .Yes ( allowed values are OPENED, PRE-INVOICED, CLOSED )50
deptTypeType of department handling the order.No20
advisorNumberIdentifier for the service advisor in the DMS to which RO is being assigned.No( only required if assignedUserUuid is blank)20
advisorNameName of the service advisor.No90
assignedUserUuidUnique token issued by mykaarma of the dealer associate to which RO is being assignedNo( Required Only if advisorNumber is blank )-
creatorUserUuidUnique token issued by mykaarma of the dealer associate which is creating the RO.No-
appointmentNumberAppointment Number (generated in the DMS) associated with RO.No100
tagNumberIdentifier for the vehicle tag.No45
mileageInMileage of the vehicle when it arrived.No30
mileageOut Mileage of the vehicle when it left.No30
createDateDate when the order was created. yyyy-MM-dd format in UTC timezoneYes-
createTimeTime when the order was created. HH:mm:ss in UTC timezoneYes-
promisedDateDate by which the service is promised to be completed. yyyy-MM-dd format in UTC timezone.No-
promisedTimeTime by which the service is promised to be completed. HH:mm:ss format in UTC timezone.No-
voidDateDate when the order was voided. yyyy-MM-dd HH:mm:ss format in UTC timezone.No-
closeDateDate when the order was closed. yyyy-MM-dd format in UTC timezoneNo-
closeTimeTime when the order was closed. HH:mm:ss formatNo-
waiterIndicates if the customer is waiting for the service. "Y" /"N"No1
rentalIndicates if a rental vehicle is provided. "Y"/"N"No1
soldHoursNumber of hours sold for the service.No10
actualHoursActual hours spent on the service.No10
laborCostCost of labor for the service. (Only numerics alowed upto 2 decimal places like "12.56" )No10
laborSaleSale amount for labor. (Only numerics alowed upto 2 decimal places like "12.56" )No10
laborSaleCustomerSale amount for labor charged to the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
laborSaleInternalSale amount for internal labor. (Only numerics alowed upto 2 decimal places like "12.56" )No10
laborSaleWarrantySale amount for labor under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsCostCost of parts used in the service. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsCostCustomerCost of parts charged to the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsCostInternalCost of parts for internal use. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsCostWarrantyCost of parts under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsSaleSale amount for parts. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsSaleCustomerSale amount for parts charged to the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsSaleInternalSale amount for internal parts. (Only numerics alowed upto 2 decimal places like "12.56" )No10
partsSaleWarrantySale amount for parts under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
lubeSaleSale amount for lubricants. (Only numerics alowed upto 2 decimal places like "12.56" )No10
lubeSaleCustomerSale amount for lubricants charged to the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
lubeSaleInternalSale amount for internal lubricants. (Only numerics alowed upto 2 decimal places like "12.56" )No10
lubeSaleWarrantySale amount for lubricants under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
miscSaleSale amount for miscellaneous items. (Only numerics alowed upto 2 decimal places like "12.56" )No10
miscSaleCustomerSale amount for miscellaneous items charged to the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
miscSaleInternalSale amount for internal miscellaneous items. (Only numerics alowed upto 2 decimal places like "12.56" )No10
miscSaleWarrantySale amount for miscellaneous items under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
subletSaleSale amount for miscellaneous items under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
subletSaleCustomerSale amount for sublet services charged to the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
subletSaleInternalSale amount for internal sublet services. (Only numerics alowed upto 2 decimal places like "12.56" )No10
subletSaleWarrantySale amount for sublet services under warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
customerPayAmountTotal amount payable by the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
customerPayStateTaxState tax amount payable by the customer. (Only numerics alowed upto 2 decimal places like "12.56" )No10
internalPayAmountTotal internal charges. (Only numerics alowed upto 2 decimal places like "12.56" )No10
warrantyPayAmountTotal amount covered by warranty. (Only numerics alowed upto 2 decimal places like "12.56" )No10
descriptionDescription of the order.No800

Vehicle Information

Parameter NameDescriptionRequired
vehicle.uuidUnique identifier issued by mykaarma for the vehicle for which the order is being created.No
Not sending vehicle.uuid will update the order without a vehicle in mykaarma. Please contact your API support representative at mykaarma before making any decision on this.

Customer Information

Parameter NameDescriptionRequired
customer.uuidUnique identifier issued by mykaarma for the customer for which the order is being created. To obtain this, use the Create or update customer with search for duplicates API.Yes

Job details

Parameter NameDescriptionRequired
job.jobIdentifierUnique identifier for the line + labor operation. Example "A-1","B-2"No
job.jobNumberStringUnique identifier for the line. Example "A","B","C"Yes
job.lopSeqNumberSequence number for the labor operation. Example "1","2" ,"3"No
job.laborOpCodeCode for the labor operation. Example "OIL"Yes
job.laborOpCodeDescDescription of the labor operation.No
job.laborTypeType of labor performed. Perferred allowed values are C/W/INo
job.laborSaleSale amount for the labor.(Only numerics alowed upto 2 decimal places like "12.56" )No
job.soldHoursNumber of hours sold for the job.No
job.actualHoursActual hours spent on the job.No
job.partsSaleSale amount for parts used in the job. (Only numerics alowed upto 2 decimal places like "12.56" )No
job.miscSaleSale amount for miscellaneous items in the job. (Only numerics alowed upto 2 decimal places like "12.56" )No
job.bookerNoBooker number for the job.No
job.dispatchLineStatusStatus of the dispatch line.No
job.techNoIdentifier for the technician in the DMS who performed the job.No
job.campaignCodeCode for any applicable campaign.No

Parts Information

Parameter NameDescriptionRequired
part.partNumberNumber identifying the part.Yes( Required only if one is sending parts along with job )
part.descriptionDescription of the part.No
part.seqNoSequence number for the part.No
part.quantityOrderedQuantity of the part ordered.No
part.quantitySoldQuantity of the part sold.No
part.costCost of the part.No
part.salePriceSale price of the part.No
part.saleTotalTotal sale amount for the part.No
part.laborTypeType of labor associated with the part.No

GOG Information

Parameter NameDescriptionRequired
gog.itemTypeType of item in the GOG.No
gog.itemDescriptionDescription of the item.No
gog.jobNumberJob number associated with the item.No
gog.quantityQuantity of the item.No
gog.saleTotalTotal sale amount for the item.No
gog.salePriceSale price of the item.No
gog.salePriceSale price of the item.No
gog.laborTypeType of labor associated with the item.No

Tech Hours

Parameter NameDescriptionRequired
tech.techNoIdentifier for the technician in the DMS who performed the job.No
tech.partSeqNoSequence number for the part.No
tech.laborCostCost of labor for the technician.No
tech.laborSaleSale amount for the labor.No
tech.soldHoursNumber of hours sold for the technician's work.No
tech.otherHoursAdditional hours associated with the technician's work.No
tech.laborTypeType of labor performed by the technician.No

Comments

Parameter NameDescriptionRequired
comments.commentText of the comment.No
comments.lastUpdatedByIdentifier for the person who last updated the comment.No
comments.updateDateDate when the comment was last updated. yyyy-MM-dd format UTC timezoneNo
comments.updateTimeTime when the comment was last updated. HH:mm:ss format UTC timezoneNo

Complaint cause correction

Parameter NameDescriptionRequired
ccc.complaintDescription of the customer's complaint.No
ccc.complaintCodeCode for the complaint.No
ccc.causeCause of the job.No
ccc.correctionCorrection made to address the complaint.No

MLS Information

Parameter NameDescriptionRequired
mls.laborTypeType of labor in the MLS.No
mls.opCodeOperation code in the MLS.No
mls.opCodeDescDescription of the operation code.No
mls.failureCodeCode for any failure.No
mls.salePriceSale price in the MLS..No
mls.costPriceCost price in the MLS.No
mls.saleCompanyCompany responsible for the sale.No
mls.sourceCompanyCompany that sourced the item.No
mls.lineCodeCode for the line item.No
mls.poNumberPurchase order number.No
mls.poCreateDateDate when the purchase order was created in UTC timezoneNo
mls.poLineIDLine ID for the purchase order.No
mls.mlsTypeType of MLS entry.No

Response Object Explanation

{{orderUUID}} uuid of the order which was created/updated .

{{errors}} An array of error objects detailing issues encountered during order creation or update.

{{warnings}} An array of warning objects providing non-critical alerts encountered during order creation or update.

{{errors.errorCode}} Code indicating the specific error encountered during order creation or update; refer to the API reference for a list of possible error codes.

{{errors.errorTitle}} Title describing the specific error encountered during order creation or update; refer to the API reference for detailed descriptions.

{{errors.errorDescription}} Detailed message describing the specific error encountered during order creation or update; refer to the API reference for more information.

{{warnings.warningCode}} Code indicating the specific warning encountered during order creation or update; refer to the API reference for a list of possible warning codes.

{{warnings.warningDescription}} Detailed message describing the specific warning encountered during order creation or update; refer to the API reference for more information.

Ownership change

In myKaarma, we provide the flexibility to change the ownership of a Repair Order (RO) for existing orders. This means that if you pass a different customer UUID in the update order request, the ownership of the order will switch from the existing customer to the incoming one. This feature allows for seamless transitions and updates in customer information, ensuring that the correct customer is associated with each order. By enabling this functionality, we help maintain accurate and up-to-date records, reflecting any changes in customer relationships or order management.

Order updates for DMS Orders

Presently we don't allow any updates to be made on Orders originated from the (dealer's DMS)(unless they are created via myKaarma in the first place)

In case any vendor(non DMS) wants to update the order, they are requested to propagate that change in the DMS itself and which will eventually be synced with myKaarma.