Skip to main content

How to save or update operation codes and service-menus

This document is designed to help you understand how you can save or update a new operation code or service-menu for a dealership. To be able to do this, you first need your credentials. If you don't already have one, head over to the

page to see how you can request for credentials from us.

The endpoint mentioned below can be used to save or update a new operation code or service-menu for a dealership.

Request

HTTP request

POST https://api.mykaarma.com/opcodes/v1/dealers/{{dealerUUID}}/operations

Parameters

Parameter NameValueDescription
dealerUUIDstringUnique identifier (UUID) of the dealership for which you want to save the operation codes

Authorization

This request requires following scopes

ScopeLevelDescription
kopcode.operation.writeDealerAuthorizes client to save operation codes for given dealership

Request Body

Parameter NameValue TypeRequiredDescription
requesterUserUUIDstringNOThe unique identifier (UUID) of the user making the request.
operationDTO.laborOpCodestringYesThe laborOpcode (Unique Identifier) associated with the operation.
operationDTO.opCodeNamestringNoThe name of the operation code.
operationDTO.descriptionstringNoA brief description of the operation.
operationDTO.totalPricestringNoThe total price of the operation.
operationDTO.opCodeDurationInMinutesstringNoThe duration of the operation in minutes.
operationDTO.isValidbooleanNoA flag indicating whether the operation is valid.
operationDTO.uuidstringNoThe unique identifier (UUID) for the operation.
operationDTO.inMobileServicebooleanNoIndicates if the operation is available in mobile service.
operationDTO.inOnlineSchedulerbooleanNoIndicates if the operation is available in the online scheduler.
operationDTO.communicationCodestringNoThe communication code associated with the operation.
operationDTO.payTypestringNoThe type of payment associated with the operation.
operationDTO.inServiceCartbooleanNoIndicates if the operation is included in the service cart.
operationDTO.inDealerAppSchedulerbooleanNoIndicates if the operation is available in the dealer app scheduler.
operationDTO.dmsDescriptionstringNoThe DMS (Dealer Management System) description of the operation.
operationDTO.laborPricestringNoThe labor price for the operation.
operationDTO.dmsLaborPricestringNoThe DMS labor price for the operation.
operationDTO.partsPricestringNoThe parts price for the operation.
operationDTO.dmsPartsPricestringNoThe DMS parts price for the operation.
operationDTO.taxAmountstringNoThe tax amount associated with the operation.
operationDTO.dmsTaxAmountstringNoThe DMS tax amount associated with the operation.
operationDTO.dmsTotalPricestringNoThe total price according to the DMS.
operationDTO.sortOrdernumberNoThe sort order of the operation.
operationDTO.correctionstringNoThe correction information related to the operation.
operationDTO.causestringNoThe cause information related to the operation.
operationDTO.soldHoursnumberNoThe number of hours sold for the operation.
operationDTO.dispatchCodestringNoThe dispatch code associated with the operation.
operationDTO.comebackFlagbooleanNoIndicates if the operation is a comeback.
operationDTO.usagePercentilenumberNoThe usage percentile of the operation.
operationDTO.positionnumberNoThe position of the operation.
operationDTO.leadTimeInMinutesnumberNoThe lead time in minutes for the operation.
operationDTO.isIndexedbooleanNoIndicates if the operation is indexed.
operationDTO.isDefaultbooleanNoIndicates if the operation is set as default.
operationDTO.notesstringNoAny additional notes related to the operation.
operationDTO.serviceTypestringNoThe type of service associated with the operation. Possible values are MAINTENANCE, REPAIR, INSPECT, SERVICE
operationDTO.serviceTypeServiceCartstringNoThe service type for the service cart.
operationDTO.recallIdstringNoThe recall ID associated with the operation.
operationDTO.vehicleMileageConfigDTOList[].brandDTO.idnumberNoThe identifier for the brand in the mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].brandDTO.namestringNoThe name of the brand in the mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].brandDTO.motorsMakeIdnumberNoThe identifier for the motors make in the mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].brandDTO.motorsMakeNamestringNoThe name of the motors make in the mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].yearstringNoThe year associated with the vehicle mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].modelstringNoThe model associated with the vehicle mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].trimstringNoThe trim associated with the vehicle mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].enginestringNoThe engine type associated with the vehicle mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].mileageUuidstringNoThe unique identifier (UUID) for the mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].uuidstringNoThe unique identifier (UUID) for the vehicle mileage configuration.
operationDTO.vehicleMileageConfigDTOList[].motorsBaseVehicleIdstringNoThe base vehicle ID in the motors configuration.
operationDTO.vehicleMileageConfigDTOList[].motorsEngineIdstringNoThe engine ID in the motors configuration.
operationDTO.vehicleMileageConfigDTOList[].isValidbooleanNoIndicates if the vehicle mileage configuration is valid.
operationDTO.dailyLimitConfigDTOList[].dayNumbernumberNoThe day number for the daily limit configuration.
operationDTO.dailyLimitConfigDTOList[].dayLimitnumberNoThe limit for the specified day in the daily limit configuration.
operationDTO.pullEstimateInSCbooleanNoIndicates if the estimate should be pulled into the service cart.
operationDTO.miscPricestringNoThe miscellaneous price associated with the operation.
operationDTO.useDmsPricebooleanNoIndicates if the DMS price should be used for the operation.
operationDTO.showDmsPriceMismatchWarningbooleanNoIndicates if a warning should be shown when there is a price mismatch between the DMS and MyKaarma.
operationDTO.noPartsNeededbooleanNoIndicates if no parts are needed for the operation.
operationDTO.inCheckInbooleanNoIndicates if the operation is available during check-in.
operationDTO.quickOpLiteUuidstringNoThe unique identifier (UUID) for the parent operation code. Only needed for service-menu.
operationDTO.invoiceLineList[]list<string>NoA list of invoice lines (operations codes) associated with the service-menu.
operationDTO.menuNamestringNoThe name of the service-menu.
operationDTO.operationTypeOPCODENoThe type of operation, OPCODE or SERVICEMENU.
operationDTO.dealerUuidstringNoThe unique identifier (UUID) of the dealer associated with the operation.
operationDTO.isCustomConcernbooleanNoIndicates if the operation is a custom concern.
operationDTO.taxonomyIdnumberNoThe taxonomy identifier associated with the operation.
operationDTO.severityFlagstringNoThe severity flag associated with the operation.
operationDTO.isSeverityNormalbooleanNoIndicates if the severity of the operation is normal.
operationDTO.isSeveritySeverebooleanNoIndicates if the severity of the operation is severe.
operationDTO.notesSevere[]list<string>NoA list of notes related to severe operations.
operationDTO.notesNormal[]list<string>NoA list of notes related to normal operations.
operationDTO.motorsOperationNamestringNoThe name of the motors operation.
operationDTO.mileagenumberNoThe mileage associated with the operation.
operationDTO.motorsMakestringNoThe make of the motors associated with the operation.
operationDTO.motorsMakeIdnumberNoThe identifier for the motors make.
operationDTO.totalPriceForConversionnumberNoThe total price for conversion related to the operation.
updateOnDuplicatebooleanNoIndicates if the operation should be updated in case of a duplicate.

Curl

curl -X GET "https://api.mykaarma.com/opcodes/v1/dealers/{{dealerUuid}}/operations"
--header 'accept: application/json' \
-u "{{username}}:{{password}}" \
--header 'Content-Type: application/json' \
--data-raw '{
"requesterUserUUID": {{requesterUserUUID}},
"operationDTO": {
"laborOpCode": {{laborOpCode}},
"opCodeName": {{opCodeName}},
"description": {{description}},
"totalPrice": {{totalPrice}},
"opCodeDurationInMinutes": {{opCodeDurationInMinutes}},
"isValid": {{isValid}},
"uuid": {{uuid}},
"inMobileService": {{inMobileService}},
"inOnlineScheduler": {{inOnlineScheduler}},
"communicationCode": {{communicationCode}},
"payType": {{payType}},
"inServiceCart": {{inServiceCart}},
"inDealerAppScheduler": {{inDealerAppScheduler}},
"dmsDescription": {{dmsDescription}},
"laborPrice": {{laborPrice}},
"dmsLaborPrice": {{dmsLaborPrice}},
"partsPrice": {{partsPrice}},
"dmsPartsPrice": {{dmsPartsPrice}},
"taxAmount": {{taxAmount}},
"dmsTaxAmount": {{dmsTaxAmount}},
"dmsTotalPrice": {{dmsTotalPrice}},
"sortOrder": {{sortOrder}},
"correction": {{correction}},
"cause": {{cause}},
"soldHours": {{soldHours}},
"dispatchCode": {{dispatchCode}},
"comebackFlag": {{comebackFlag}},
"usagePercentile": {{usagePercentile}},
"position": {{position}},
"leadTimeInMinutes": {{leadTimeInMinutes}},
"isIndexed": {{isIndexed}},
"isDefault": {{isDefault}},
"notes": {{notes}},
"serviceType": {{serviceType}},
"serviceTypeServiceCart": {{serviceTypeServiceCart}},
"recallId": {{recallId}},
"vehicleMileageConfigDTOList": [
{
"brandDTO": {
"id": {{id}},
"name": {{name}},
"motorsMakeId": {{motorsMakeId}},
"motorsMakeName": {{motorsMakeName}}
},
"year": {{year}},
"model": {{model}},
"trim": {{trim}},
"engine": {{engine}},
"mileageUuid": {{mileageUuid}},
"uuid": {{uuid}},
"motorsBaseVehicleId": {{motorsBaseVehicleId}},
"motorsEngineId": {{motorsEngineId}},
"isValid": {{isValid}}
}
],
"dailyLimitConfigDTOList": [
{
"dayNumber": {{dayNumber}},
"dayLimit": {{dayLimit}}
}
],
"pullEstimateInSC": {{pullEstimateInSC}},
"miscPrice": {{miscPrice}},
"useDmsPrice": {{useDmsPrice}},
"showDmsPriceMismatchWarning": {{showDmsPriceMismatchWarning}},
"noPartsNeeded": {{noPartsNeeded}},
"inCheckIn": {{inCheckIn}},
"quickOpLiteUuid": {{quickOpLiteUuid}},
"invoiceLineList": [
{{invoiceLineList}}
],
"menuName": {{menuName}},
"operationType": {{operationType}},
"dealerUuid": {{dealerUuid}},
"isCustomConcern": {{isCustomConcern}},
"taxonomyId": {{taxonomyId}},
"severityFlag": {{severityFlag}},
"isSeverityNormal": {{isSeverityNormal}},
"isSeveritySevere": {{isSeveritySevere}},
"notesSevere": [
{{notesSevere}}
],
"notesNormal": [
{{notesNormal}}
],
"motorsOperationName": {{motorsOperationName}},
"mileage": {{mileage}},
"motorsMake": {{motorsMake}},
"motorsMakeId": {{motorsMakeId}},
"totalPriceForConversion": {{totalPriceForConversion}}
},
"updateOnDuplicate": {{updateOnDuplicate}}
}'

Response

{
"errors": [
{
"errorName": "string",
"errorMessage": "string",
"errorCode": 0
}
],
"warnings": [
{
"warningCode": "string",
"warningTitle": "string",
"warningMessage": "string"
}
],
"statusCode": 0,
"apiRequestId": "string",
"uuid": "string",
"operationType": "string"
}

Sample Response 200

{
"errors" : [ ],
"warnings" : [ ],
"statusCode" : 200,
"apiRequestId" : "b62f8795-ba1e-4be1-92e4-f9345321e448",
"uuid" : "2x2jiTDAReyD8N729wMWV8K2jQrbuhpNsSiVowKnrZ0",
"operationType" : "MAINTENANCE"
}

Sample Response 403

{
"statusCode": 403,
"errors": [
{
"errorCode": "403",
"errorTitle": "FORBIDDEN_EXCEPTION",
"errorMessage": "ApiScope does not exist for the provided serviceSubscriber at the required scope level - Authorization failed"
}
],
"warnings": [],
"authenticationAndAuthorizationDTO": {
"isAuthenticated": true,
"isAuthorized": false,
"unauthenticatedUuids": [
"2x2jiTDAReyD8N729wMWV8K2jQrbuhpNsSiVowKnrZ0"
],
"subscriberName": "dummy-ss"
}
}