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.

Field Reference

payloadTop-level payload for the MPI event.
uuid
string
type
string
inspectionTypeUuid
stringnullable
status
string
statusUpdatedOn
datetimenullable
createdOn
datetime
updatedOn
datetime
dealerDepartmentUUID
string
version
number
approvedTotal
decimal
recommendedTotal
decimal
vehicleIdentifiers
object
orderIdentifiers
object
orderDetails
object
dealerAssociateIdentifiers
object
technicianIdentifiers[]
array
partsRepresentativeIdentifiers
object
customerIdentifiers
object
dealerIdentifiers
object
mpiFlags
object
mpiSections[]
array
{
  "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": "2026-02-19T10:30:00",
    "createdOn": "2026-02-19T09:00:00",
    "updatedOn": "2026-02-19T10:30:00",
    "dealerDepartmentUUID": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
    "version": 3,
    "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",
      "isWaiter": false,
      "dmsStatusPreInvoicedOn": 1771565906838,
      "dmsStatusUpdatedOn": 1771566577373
    },
    "orderDetails": {
      "promiseDate": "2026-02-19",
      "promiseTime": "09:00:00"
    },
    "dealerAssociateIdentifiers": {
      "dealerAssociateUUID": "9d3a7e1c5b9f3d7a1e5c9b3f7d1e5a9c3f7b1d5e9a3c7f1b5d9e3a7c1f5b9d3",
      "dealerAssociateName": "Test Dealerassociate"
    },
    "technicianIdentifiers": [
      {
        "dealerAssociateUUID": "4f8b2d6a0e4c8f2b6d0a4c8b2d6f0e4b8d2f6a0c4e8b2d6a0f4c8e2b6d0a4c8",
        "dealerAssociateName": "Test Technician"
      }
    ],
    "partsRepresentativeIdentifiers": {
      "dealerAssociateUUID": null,
      "dealerAssociateName": 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": {
      "isComplete": false,
      "sentStatus": null,
      "sentToCustomerOn": null,
      "sentMedium": null,
      "mode": "FULL_MPI"
    },
    "mpiSections": [
      {
        "uuid": "M2KPNZ8DFRTXVQWE",
        "name": "Vehicle Inspection",
        "description": null,
        "type": null,
        "isValid": true,
        "sortOrder": 1,
        "checks": [
          {
            "uuid": "L7HVMQ4BFNCRDKAJ",
            "name": "Check Factory Maintenance Schedule",
            "description": null,
            "type": null,
            "laborOpCode": null,
            "laborType": null,
            "dmsLaborType": null,
            "notes": null,
            "isRequired": false,
            "isEstimateRequired": false,
            "isSafetyQuestion": false,
            "isValid": true,
            "isCustom": false,
            "sortOrder": 1,
            "createdOn": "2026-02-19T09:00:00",
            "updatedOn": "2026-02-19T10:30:00",
            "fieldList": [
              {
                "type": "check-box",
                "description": "Verified",
                "sortOrder": "1",
                "value": null,
                "state": null,
                "unit": null
              }
            ],
            "inspectionState": {
              "isEligibleToSkip": true,
              "isSkipped": null
            },
            "recommendations": [
              {
                "uuid": "REC_F7X3K9M2P1N8",
                "description": "Replace cabin air filter",
                "approvalState": null,
                "approvalReason": null,
                "status": "PENDING",
                "workStatus": null,
                "isValid": true,
                "isRequested": false,
                "isCustom": false,
                "laborHours": null,
                "note": null,
                "opCodes": [
                  {
                    "laborOpCode": "AIR",
                    "description": "Cabin Air Filter"
                  }
                ],
                "amount": {
                  "amount": 49.99,
                  "unit": "USD"
                },
                "laborPricing": {
                  "amount": 25,
                  "unit": "USD"
                },
                "partsPricing": {
                  "amount": 24.99,
                  "unit": "USD"
                },
                "shopFees": {
                  "amount": 0,
                  "unit": "USD"
                },
                "tax": {
                  "amount": 0,
                  "unit": "USD"
                },
                "discount": {
                  "amount": 0,
                  "unit": "USD"
                }
              }
            ]
          }
        ]
      }
    ]
  }
}
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.

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.