Skip to main content

MPI Event

The MPI (Multipoint Inspection) event fires every time an MPI is created or updated in myKaarma. The payload mirrors the MPI object available via the myKaarma MPI API.

Upcoming Breaking Change — Action Required

The MPI webhook payload schema is being updated. This change introduces two behaviour differences you must handle before the migration goes live:

1. Null fields are no longer serialized. Fields that previously appeared as null in the JSON will now be omitted entirely from the payload. Do not check field === null; instead check whether the key is present at all (e.g. "field" in payload in JavaScript/TypeScript, payload.containsKey("field") in Java, or use optional chaining payload?.field). Treat a missing key the same as a null value.

2. New fields are added. The updated schema adds isVideoFeedbackPositive, isMpiDeleted, mpiKpi, and linePunchDataList (documented below). Ensure your deserializer ignores unknown fields (e.g. @JsonIgnoreProperties(ignoreUnknown = true) in Java, or equivalent) so that future additions do not break your integration.

Field Reference

payloadTop-level payload for the MPI event.
uuid
string
type
string
inspectionTypeUuid
stringnullable
status
string
statusUpdatedOn
unix msnullable
createdOn
unix ms
updatedOn
unix ms
dealerDepartmentUUID
string
version
number
unreadMessage
boolean
isMigrated
booleannullable
isAssignedToParts
booleannullable
autoPushProcessed
booleannullable
fieldOptionsUuid
stringnullable
labels[]
arraynullable
ocrList[]
arraynullable
statusWithCustomerLinkTemplate[]
arraynullable
partsStatusList
arraynullable
workStatusList
arraynullable
populatedByPartners
arraynullable
surchargeRules
objectnullable
recommendationUuidsInCart[]
arraynullable
timeSpentInStatus
objectnullable
allowedRecommendationWorkStatuses
objectnullable
approvedTotal
decimalnullable
recommendedTotal
decimalnullable
vehicleIdentifiers
object
orderIdentifiers
object
orderDetails
object
dealerAssociateIdentifiers
object
technicianIdentifiers[]
array
assignees[]
arraynullable
partsRepresentativeIdentifiers
objectnullable
customerIdentifiers
object
dealerIdentifiers
object
mpiFlags
object
mpiCounts
objectnullable
mpiSecondaryFlags
objectnullable
totalPrices
objectnullable
workflowDetails
objectnullable
attachments[]
arraynullable
shopFeesAndTaxSettings
objectnullable
integrationData
objectnullable
fieldOptionsMapping[]
arraynullable
mpiSections[]
array
isVideoFeedbackPositive
booleannullable
isMpiDeleted
booleannullable
reportingStatusDataList[]
arraynullable
mpiKpi
objectnullable
linePunchDataList[]
arraynullable
{
  "id": "a7b9c1d3-e5f7-4891-ab23-cd45ef678901",
  "timestamp": 1728542293678,
  "dealeruuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
  "departmentuuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
  "type": "mpis",
  "payload": {
    "uuid": "Kd6eHsCqYnBr3iP8wXvOtFm4UjAzRgE0eLsDcQpNbW7",
    "type": "FULL_MPI",
    "inspectionTypeUuid": null,
    "status": "Working - MPI & Diag.",
    "statusUpdatedOn": 1778659065996,
    "createdOn": 1778659065996,
    "updatedOn": 1779381498630,
    "dealerDepartmentUUID": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
    "version": 3,
    "unreadMessage": false,
    "isMigrated": false,
    "isAssignedToParts": false,
    "autoPushProcessed": false,
    "fieldOptionsUuid": null,
    "labels": [],
    "ocrList": [],
    "statusWithCustomerLinkTemplate": [],
    "partsStatusList": [],
    "workStatusList": [],
    "populatedByPartners": [],
    "surchargeRules": {
      "maxSurcharge": null,
      "feeType": null,
      "feeValue": null
    },
    "recommendationUuidsInCart": [],
    "timeSpentInStatus": {},
    "allowedRecommendationWorkStatuses": {},
    "approvedTotal": 0,
    "recommendedTotal": 0,
    "vehicleIdentifiers": {
      "vehicleUUID": "Jc5fGrDpXmAn2hO7vWuNsEl3TiBzQwR9dKkCeYpNaV6",
      "vin": "1N4BL3AP7DC231234",
      "vehicleMake": "Nissan",
      "vehicleModel": "Altima",
      "vehicleYear": null,
      "estimatedMileage": null,
      "stockNumber": null
    },
    "orderIdentifiers": {
      "orderUUID": "Im4gFqCoWlZn1jN6uVtMrDk2ShBxPwQ8eJiCfYnMaU5",
      "orderNumber": "mykdm9904427",
      "orderStatus": "O",
      "dmsStatus": "O",
      "tagNumber": "T205",
      "originalEstimate": null,
      "orderDate": "2026-02-19",
      "orderTime": "08:30:00",
      "closeDate": null,
      "isWaiter": false,
      "dmsStatusPreInvoicedOn": 1771565906838,
      "dmsStatusUpdatedOn": 1771566577373
    },
    "orderDetails": {
      "promiseDate": "2026-02-19",
      "promiseTime": "09:00:00"
    },
    "dealerAssociateIdentifiers": {
      "dealerAssociateUUID": "9d3a7e1c5b9f3d7a1e5c9b3f7d1e5a9c3f7b1d5e9a3c7f1b5d9e3a7c1f5b9d3",
      "dealerAssociateName": "Test Dealerassociate",
      "dealerAssociateFName": "Test",
      "dealerAssociateEmailId": "test.advisor@dealer.com",
      "dealerAssociateUserUUID": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
    },
    "technicianIdentifiers": [
      {
        "dealerAssociateUUID": "4f8b2d6a0e4c8f2b6d0a4c8b2d6f0e4b8d2f6a0c4e8b2d6a0f4c8e2b6d0a4c8",
        "dealerAssociateName": "Test Technician",
        "dealerAssociateFName": "Tech",
        "dealerAssociateEmailId": "tech@dealer.com",
        "dealerAssociateUserUUID": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3"
      }
    ],
    "assignees": [
      {
        "dealerAssociateUUID": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
        "dealerAssociateName": "Test Assignee",
        "dealerAssociateFName": "Test",
        "dealerAssociateEmailId": "assignee@dealer.com",
        "dealerAssociateUserUUID": "d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5"
      }
    ],
    "partsRepresentativeIdentifiers": {
      "dealerAssociateUUID": null,
      "dealerAssociateName": null,
      "dealerAssociateFName": null,
      "dealerAssociateEmailId": null,
      "dealerAssociateUserUUID": null
    },
    "customerIdentifiers": {
      "customerUUID": "Ho3fEpBnVkYm0iM5tUsMqCj1RgAw9PxO7eIhDzNlbT4",
      "customerName": "Automation Test-443651",
      "customerKey": "CK139520",
      "company": null,
      "isBusiness": null
    },
    "dealerIdentifiers": {
      "dealerUUID": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
      "dealerName": "Mercedes-Benz of Silver lake",
      "dealerPhoneNumber": "5624435567"
    },
    "mpiFlags": {
      "version": 1,
      "isComplete": false,
      "isNotNeeded": false,
      "sentStatus": null,
      "sentToCustomerOn": null,
      "sentToNumber": null,
      "sentToName": null,
      "autoSendFailureDescription": null,
      "sentMedium": null,
      "fullMpiSentAutomatically": false,
      "customerNotifiedByTextOn": null,
      "customerNotifiedByEmailOn": null,
      "customerNotifiedByWhatsappOn": null,
      "uploadedMediaCount": 2,
      "mode": "FULL_MPI",
      "thirdPartyEventType": null
    },
    "mpiCounts": {
      "totalRecommendationCount": 5,
      "approveCount": 2,
      "declineCount": 1,
      "notNeededCount": 0,
      "completeCount": 2,
      "undecidedCount": 2,
      "laborIncompleteCount": 1,
      "partsIncompleteCount": 0,
      "laborRequestedCount": 0,
      "partsRequestedCount": 0,
      "partsPendingSaleCount": 0,
      "requestedEstimateCount": 1,
      "totalManualImageCount": 3,
      "totalManualVideoCount": 1,
      "shopNotesCount": 0,
      "requiredChecksUnfilledCount": 0,
      "populatedByPartners": []
    },
    "mpiSecondaryFlags": {
      "customerLinkViewCount": 1,
      "videoOnlyViewCount": 0,
      "videoViewCount": 1,
      "maxHierarchicalNumber": 3,
      "mediaUploadStatus": "COMPLETE",
      "videoUploadStatus": "COMPLETE",
      "customerSeenOn": null,
      "statusOverDue": false,
      "estimateOverDue": false,
      "sendToCustomerOverDue": false,
      "videoOnlySentStatus": "unsent",
      "videoOnlySendFailureDescription": null,
      "videoOnlySentMedium": null,
      "videoOnlySentToNumber": null,
      "videoOnlySentToName": null,
      "videoOnlySentToCustomerOn": null,
      "videoOnlySentToCustomerOnText": null,
      "videoOnlySentToCustomerOnEmail": null,
      "videoOnlySentToCustomerOnWhatsapp": null,
      "videoOnlySentAutomatically": false,
      "isRequestedFullMPI": false,
      "isfeedbackDone": false,
      "isSummaryFeedbackDone": false,
      "isVideoFeedbackPositive": null,
      "isMpiDispatched": true,
      "isWaiterStatusChangedManually": false,
      "captionsRequested": false,
      "linkedPreDiagUuid": null,
      "nissanLifeCycleStatus": null
    },
    "totalPrices": {
      "originalTotal": {
        "amount": 149.99,
        "unit": "dollar"
      },
      "approvedTotal": {
        "amount": 99.99,
        "unit": "dollar"
      },
      "approvedOriginalRecommendedTotal": {
        "amount": 74.99,
        "unit": "dollar"
      },
      "approvedOtherRecommendedTotal": {
        "amount": 25,
        "unit": "dollar"
      },
      "totalTax": {
        "amount": 8.5,
        "unit": "dollar"
      },
      "shopFees": {
        "amount": 5,
        "unit": "dollar"
      },
      "totalCost": {
        "amount": 113.49,
        "unit": "dollar"
      }
    },
    "workflowDetails": {
      "workflowUuid": "e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
      "currentNodeUuid": "f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1",
      "version": 2,
      "pendingEvents": [
        {
          "eventName": "SEND_TO_CUSTOMER",
          "checkUuid": null,
          "affectedDealerAssociateUuids": []
        }
      ],
      "executedEvents": [
        {
          "eventName": "DISPATCH",
          "checkUuid": null,
          "affectedDealerAssociateUuids": [
            "4f8b2d6a0e4c8f2b6d0a4c8b2d6f0e4b8d2f6a0c4e8b2d6a0f4c8e2b6d0a4c8"
          ]
        }
      ]
    },
    "attachments": [
      {
        "uuid": "ATT_X9K2M4P7R1",
        "type": "VIDEO",
        "link": "https://media.mykaarma.com/v/abc123.mp4",
        "visibility": "PUBLIC",
        "info": null,
        "source": "TECHNICIAN",
        "audioUrl": null,
        "hasAudio": "false",
        "captionsUrl": null,
        "summaryUrl": null,
        "videoLength": 45,
        "pauseCount": 0,
        "isUploaded": true,
        "isThumbnailUploaded": true,
        "originalLanguage": "en",
        "mediaUploaderUuid": "4f8b2d6a0e4c8f2b6d0a4c8b2d6f0e4b8d2f6a0c4e8b2d6a0f4c8e2b6d0a4c8",
        "mediaUploaderDAName": "Test Technician",
        "createdOn": "2026-02-19T09:15:00",
        "updatedOn": "2026-02-19T09:15:00",
        "translations": [
          {
            "language": "es",
            "videoUrl": null,
            "captionsUrl": null
          }
        ]
      }
    ],
    "shopFeesAndTaxSettings": {
      "shopfeesAlias": null,
      "shopFeesPartsPercentage": 2.5,
      "shopFeesLaborPercentage": 0,
      "taxPartsPercentage": 8.25,
      "taxLaborPercentage": 0,
      "maxShopFees": null,
      "minShopFees": null,
      "applyTaxToShopFees": false,
      "applyTaxToMiscForOcr": false,
      "applyTaxToMiscForNonOcr": false
    },
    "integrationData": {
      "signatureIdentifier": null,
      "customerFName": "John",
      "customerMName": null,
      "customerLName": "Smith",
      "customerPrefLanguage": "en",
      "totalRedYellowRecs": 3,
      "serviceAdvisorTag": null,
      "saFName": "Test",
      "saLName": "Advisor",
      "technicianTag": null,
      "techFName": "Test",
      "techLName": "Tech",
      "inspectionTypeName": "Full MPI",
      "menuSalesPriceCode": null,
      "initialRoPriceCode": null,
      "initialRoAmount": null,
      "recommendedServicesPriceCode": null,
      "recommendedServicesTotalAmount": 149.99,
      "recommendedAcceptedServicesPriceCode": null,
      "acceptedServicesTotalAmount": 99.99,
      "commentsTypeCode": null,
      "operationCode": null,
      "inspectionStatus": "COMPLETED",
      "firstRecommMadeTime": "2026-02-19T09:30:00",
      "lastCustomerActionTime": "2026-02-19T11:30:00"
    },
    "fieldOptionsMapping": [
      {
        "fieldType": "check-box",
        "options": []
      }
    ],
    "mpiSections": [
      {
        "uuid": "M2KPNZ8DFRTXVQWE",
        "name": "Vehicle Inspection",
        "description": null,
        "type": null,
        "isValid": true,
        "sortOrder": 1,
        "version": 1,
        "checks": [
          {
            "uuid": "L7HVMQ4BFNCRDKAJ",
            "name": "Check Factory Maintenance Schedule",
            "description": null,
            "type": null,
            "laborOpCode": null,
            "laborType": "Customer Pay",
            "laborTypeCustomerText": null,
            "dmsLaborType": null,
            "notes": null,
            "conditionCode": null,
            "isRequired": false,
            "isEstimateRequired": false,
            "isSafetyQuestion": false,
            "isValid": true,
            "isCustom": false,
            "sortOrder": 1,
            "version": 2,
            "populatedByPartner": null,
            "createdOn": 1778659065996,
            "updatedOn": 1779381498546,
            "shopNotes": [],
            "lastUpdatedBy": {
              "dealerAssociateUUID": "9d3a7e1c5b9f3d7a1e5c9b3f7d1e5a9c3f7b1d5e9a3c7f1b5d9e3a7c1f5b9d3",
              "dealerAssociateName": "Test Technician",
              "dealerAssociateFName": "Test",
              "dealerAssociateEmailId": "tech@dealer.com",
              "dealerAssociateUserUUID": null
            },
            "originalLaborCost": {
              "amount": 25,
              "unit": "dollar"
            },
            "originalPartsCost": {
              "amount": 24.99,
              "unit": "dollar"
            },
            "originalTax": {
              "amount": 0,
              "unit": "dollar"
            },
            "originalShopFees": {
              "amount": 0,
              "unit": "dollar"
            },
            "originalTotal": {
              "amount": 49.99,
              "unit": "dollar"
            },
            "totalApproved": {
              "amount": 49.99,
              "unit": "dollar"
            },
            "initialLaborCost": {
              "amount": 25,
              "unit": "dollar"
            },
            "initialPartsCost": {
              "amount": 24.99,
              "unit": "dollar"
            },
            "fieldList": [
              {
                "type": "check-box",
                "description": "Verified",
                "sortOrder": "1",
                "value": null,
                "state": null,
                "unit": null
              }
            ],
            "inspectionState": {
              "isEligibleToSkip": true,
              "isSkipped": null
            },
            "serviceLineDetails": {
              "jobNumber": "A",
              "originalJobNumber": "A",
              "jobIdentifier": null,
              "opCode": "30KSVC",
              "opCodeDescription": "30K Service",
              "comebackFlag": false,
              "dispatchCode": null,
              "estimatedDuration": null,
              "pushStatus": null,
              "pushStatusUpdateTs": null,
              "errorDescription": null,
              "completeErrorMessageFromDms": null,
              "retryAttempts": 0,
              "opCodeFromMpiTemplate": null,
              "isPricingFetchedFromOpcodeOnce": false
            },
            "recommendations": [
              {
                "uuid": "REC_F7X3K9M2P1N8",
                "description": "Replace cabin air filter",
                "approvalState": null,
                "approvalReason": null,
                "status": "incomplete",
                "workStatus": null,
                "isValid": true,
                "isRequested": false,
                "isCustom": false,
                "laborHours": null,
                "note": null,
                "opCodes": [
                  "AIR"
                ],
                "amount": {
                  "amount": 49.99,
                  "unit": "dollar"
                },
                "laborPricing": {
                  "amount": 25,
                  "unit": "dollar"
                },
                "partsPricing": {
                  "amount": 24.99,
                  "unit": "dollar"
                },
                "shopFees": {
                  "amount": 0,
                  "unit": "dollar"
                },
                "tax": {
                  "amount": 0,
                  "unit": "dollar"
                },
                "discount": {
                  "amount": 0,
                  "unit": "dollar"
                },
                "showZeroEstimateToCustomer": false,
                "parts": [],
                "partsInfo": "",
                "isPartsNeeded": true,
                "partsSalesHover": "Parts sales amount was pre-approved as part of an Original Customer Request",
                "lastUpdatedBy": {
                  "dealerAssociateUUID": "80c9166f65eecad91e3855555198156470d9cd3e5d7a95841c3a2a7086d1c87a",
                  "dealerAssociateName": "Donald Dunkin"
                }
              }
            ]
          }
        ]
      }
    ],
    "isVideoFeedbackPositive": null,
    "isMpiDeleted": false,
    "reportingStatusDataList": [
      {
        "uuid": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
        "status": "Unassigned",
        "assigneeName": "Donald Dunkin",
        "timeSpentInStatus": 120000,
        "changelogUUID": null
      }
    ],
    "mpiKpi": {
      "uuid": "6a042efbc71e7f12e78b34a1",
      "mpiUuid": "Kd6eHsCqYnBr3iP8wXvOtFm4UjAzRgE0eLsDcQpNbW7",
      "dealerUuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
      "dealerDepartmentUuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
      "createdOn": 1778659067.694,
      "updatedOn": 1779381498.787,
      "markAsCompleteBtnClickedTime": null,
      "firstVideoAttachedTime": null,
      "rocreatedTime": 1778659065,
      "RODispatchTime": null,
      "firstRecommMadeTime": 1779381498.687,
      "videoOnlySentTime": null,
      "fullMpiSentTime": null,
      "firstCustomerApprovalTime": null,
      "firstCustomerDeclineTime": null,
      "firstCustomerActionTime": null,
      "lastCustomerActionTime": null,
      "unassignedTagFireTime": null,
      "dispatchedTagFireTime": null,
      "techInspectionStartTime": null,
      "inspectionCompleteTime": null,
      "reviewInspectionAndEstimatesTime": null,
      "customerApprovalTagFireTime": null,
      "partsReadyTagFireTime": null,
      "servicePerformTime": null,
      "qualityCheckTime": null,
      "vehiclePickupTime": null,
      "requiredQuestionsFilledTime": 1778659067.606,
      "videoViewedTimeStamp": [],
      "incompleteOrNotNeededRecsSentWithInspection": 1,
      "recsSentWithInspection": 5,
      "requestEstimateClickCount": 0,
      "requestedEstimateCompletedCount": 2,
      "videoUploadTimeInSec": 45,
      "timeToVideoViewedFromSendInSec": 900
    },
    "linePunchDataList": [
      {
        "uuid": "LP_A1B2C3D4E5",
        "mpiUuid": "Kd6eHsCqYnBr3iP8wXvOtFm4UjAzRgE0eLsDcQpNbW7",
        "orderUuid": "Im4gFqCoWlZn1jN6uVtMrDk2ShBxPwQ8eJiCfYnMaU5",
        "orderNumber": "mykdm9904427",
        "checkUuid": "L7HVMQ4BFNCRDKAJ",
        "checkName": "Check Factory Maintenance Schedule",
        "dealerAssociateUuid": "4f8b2d6a0e4c8f2b6d0a4c8b2d6f0e4b8d2f6a0c4e8b2d6a0f4c8e2b6d0a4c8",
        "dealerUuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
        "dealerDepartmentUuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
        "punchInTime": 1778659065996,
        "punchOutTime": null,
        "elapsedTime": 1500000
      }
    ]
  }
}
note

In the actual webhook delivery, payload is a stringified JSON string (not an object). The example above shows it as a parsed object for readability.

Handling the Payload

// Signature verification omitted for brevity — see "Signature Token Verification".
app.post('/webhook', express.raw({ type: '*/*' }), (req, res) => {
  const event = JSON.parse(req.body.toString());

  if (event.type !== 'mpis') {
    return res.sendStatus(200);
  }

  // payload is delivered as a JSON string — parse it first
  const mpi = typeof event.payload === 'string'
    ? JSON.parse(event.payload)
    : event.payload;

  // Respond 200 immediately — myKaarma retries if it doesn't receive 2xx within 5 s
  res.sendStatus(200);

  // Process asynchronously so the response is not blocked
  setImmediate(() => {
    // Fields with null values are omitted — use optional chaining or defaults
    const status             = mpi.status ?? 'unknown';
    const isMpiDeleted       = mpi.isMpiDeleted ?? false;
    const isVideoFeedbackPos = mpi.isVideoFeedbackPositive ?? null;
    const vehicleVin         = mpi.vehicleIdentifiers?.vin ?? null;
    const linePunches        = mpi.linePunchDataList ?? [];

    console.log('MPI ' + mpi.uuid + ' — status: ' + status + ', VIN: ' + vehicleVin);
  });
});

How to Test an MPI Event

  1. Login to https://app.mykaarma.com using the user credentials provided to you.

  2. In the Customer tab, search for and select the customer you want to create an MPI for:

    Search Customer
  3. At the top right corner, click on the Create RO button:

    Create RO Button
  4. Fill in the RO details (advisor DMS ID is mandatory), select OPEN in Status and add the MPI opcode, then click Save:

    Advisor DMS ID field
  5. Go to the Inspect tab. You should find an MPI created under Not Assigned status with an RO number matching the order you just created. You should receive a webhook event for this MPI creation:

    Newly created MPI
  6. Make any changes to the MPI and you should receive corresponding MPI events on your webhook URL.