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 Name | Value | Description |
---|---|---|
dealerUUID | string | Unique identifier (UUID) of the dealership for which you want to save the operation codes |
Authorization
This request requires following scopes
Scope | Level | Description |
---|---|---|
kopcode.operation.write | Dealer | Authorizes client to save operation codes for given dealership |
Request Body
Parameter Name | Value Type | Required | Description |
---|---|---|---|
requesterUserUUID | string | NO | The unique identifier (UUID) of the user making the request. |
operationDTO.laborOpCode | string | Yes | The laborOpcode (Unique Identifier) associated with the operation. |
operationDTO.opCodeName | string | No | The name of the operation code. |
operationDTO.description | string | No | A brief description of the operation. |
operationDTO.totalPrice | string | No | The total price of the operation. |
operationDTO.opCodeDurationInMinutes | string | No | The duration of the operation in minutes. |
operationDTO.isValid | boolean | No | A flag indicating whether the operation is valid. |
operationDTO.uuid | string | No | The unique identifier (UUID) for the operation. |
operationDTO.inMobileService | boolean | No | Indicates if the operation is available in mobile service. |
operationDTO.inOnlineScheduler | boolean | No | Indicates if the operation is available in the online scheduler. |
operationDTO.communicationCode | string | No | The communication code associated with the operation. |
operationDTO.payType | string | No | The type of payment associated with the operation. |
operationDTO.inServiceCart | boolean | No | Indicates if the operation is included in the service cart. |
operationDTO.inDealerAppScheduler | boolean | No | Indicates if the operation is available in the dealer app scheduler. |
operationDTO.dmsDescription | string | No | The DMS (Dealer Management System) description of the operation. |
operationDTO.laborPrice | string | No | The labor price for the operation. |
operationDTO.dmsLaborPrice | string | No | The DMS labor price for the operation. |
operationDTO.partsPrice | string | No | The parts price for the operation. |
operationDTO.dmsPartsPrice | string | No | The DMS parts price for the operation. |
operationDTO.taxAmount | string | No | The tax amount associated with the operation. |
operationDTO.dmsTaxAmount | string | No | The DMS tax amount associated with the operation. |
operationDTO.dmsTotalPrice | string | No | The total price according to the DMS. |
operationDTO.sortOrder | number | No | The sort order of the operation. |
operationDTO.correction | string | No | The correction information related to the operation. |
operationDTO.cause | string | No | The cause information related to the operation. |
operationDTO.soldHours | number | No | The number of hours sold for the operation. |
operationDTO.dispatchCode | string | No | The dispatch code associated with the operation. |
operationDTO.comebackFlag | boolean | No | Indicates if the operation is a comeback. |
operationDTO.usagePercentile | number | No | The usage percentile of the operation. |
operationDTO.position | number | No | The position of the operation. |
operationDTO.leadTimeInMinutes | number | No | The lead time in minutes for the operation. |
operationDTO.isIndexed | boolean | No | Indicates if the operation is indexed. |
operationDTO.isDefault | boolean | No | Indicates if the operation is set as default. |
operationDTO.notes | string | No | Any additional notes related to the operation. |
operationDTO.serviceType | string | No | The type of service associated with the operation. Possible values are MAINTENANCE , REPAIR , INSPECT , SERVICE |
operationDTO.serviceTypeServiceCart | string | No | The service type for the service cart. |
operationDTO.recallId | string | No | The recall ID associated with the operation. |
operationDTO.vehicleMileageConfigDTOList[].brandDTO.id | number | No | The identifier for the brand in the mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].brandDTO.name | string | No | The name of the brand in the mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].brandDTO.motorsMakeId | number | No | The identifier for the motors make in the mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].brandDTO.motorsMakeName | string | No | The name of the motors make in the mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].year | string | No | The year associated with the vehicle mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].model | string | No | The model associated with the vehicle mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].trim | string | No | The trim associated with the vehicle mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].engine | string | No | The engine type associated with the vehicle mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].mileageUuid | string | No | The unique identifier (UUID) for the mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].uuid | string | No | The unique identifier (UUID) for the vehicle mileage configuration. |
operationDTO.vehicleMileageConfigDTOList[].motorsBaseVehicleId | string | No | The base vehicle ID in the motors configuration. |
operationDTO.vehicleMileageConfigDTOList[].motorsEngineId | string | No | The engine ID in the motors configuration. |
operationDTO.vehicleMileageConfigDTOList[].isValid | boolean | No | Indicates if the vehicle mileage configuration is valid. |
operationDTO.dailyLimitConfigDTOList[].dayNumber | number | No | The day number for the daily limit configuration. |
operationDTO.dailyLimitConfigDTOList[].dayLimit | number | No | The limit for the specified day in the daily limit configuration. |
operationDTO.pullEstimateInSC | boolean | No | Indicates if the estimate should be pulled into the service cart. |
operationDTO.miscPrice | string | No | The miscellaneous price associated with the operation. |
operationDTO.useDmsPrice | boolean | No | Indicates if the DMS price should be used for the operation. |
operationDTO.showDmsPriceMismatchWarning | boolean | No | Indicates if a warning should be shown when there is a price mismatch between the DMS and MyKaarma. |
operationDTO.noPartsNeeded | boolean | No | Indicates if no parts are needed for the operation. |
operationDTO.inCheckIn | boolean | No | Indicates if the operation is available during check-in. |
operationDTO.quickOpLiteUuid | string | No | The unique identifier (UUID) for the parent operation code. Only needed for service-menu. |
operationDTO.invoiceLineList[] | list<string> | No | A list of invoice lines (operations codes) associated with the service-menu. |
operationDTO.menuName | string | No | The name of the service-menu. |
operationDTO.operationType | OPCODE | No | The type of operation, OPCODE or SERVICEMENU . |
operationDTO.dealerUuid | string | No | The unique identifier (UUID) of the dealer associated with the operation. |
operationDTO.isCustomConcern | boolean | No | Indicates if the operation is a custom concern. |
operationDTO.taxonomyId | number | No | The taxonomy identifier associated with the operation. |
operationDTO.severityFlag | string | No | The severity flag associated with the operation. |
operationDTO.isSeverityNormal | boolean | No | Indicates if the severity of the operation is normal. |
operationDTO.isSeveritySevere | boolean | No | Indicates if the severity of the operation is severe. |
operationDTO.notesSevere[] | list<string> | No | A list of notes related to severe operations. |
operationDTO.notesNormal[] | list<string> | No | A list of notes related to normal operations. |
operationDTO.motorsOperationName | string | No | The name of the motors operation. |
operationDTO.mileage | number | No | The mileage associated with the operation. |
operationDTO.motorsMake | string | No | The make of the motors associated with the operation. |
operationDTO.motorsMakeId | number | No | The identifier for the motors make. |
operationDTO.totalPriceForConversion | number | No | The total price for conversion related to the operation. |
updateOnDuplicate | boolean | No | Indicates 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"
}
}