Skip to content
Developer docs
⌘ K
Dashboard ↗

Webhook events

incentive.flagged

Sent with order.completed when Grizzlee accepted an order whose incentiveAppliedCents did not match its reservation.

Example payload

This illustrative payload follows the current event validator. Amounts use minor units.

json
{
  "id": "00000000-0000-4000-8000-000000000001",
  "companyId": "company-example",
  "type": "incentive.flagged",
  "data": {
    "orderId": "order-example",
    "eventId": "payment-example",
    "customerId": "customer-example",
    "currency": "CAD",
    "incentiveAppliedCents": 500,
    "incentiveFlag": {
      "reason": "no_reservation",
      "maxCents": 500,
      "reportedCents": 500
    }
  },
  "createdAt": "2026-10-11T12:00:00.000Z"
}

Payload fields

FieldTypeRequiredDetails
orderIdstringYes
eventIdstringYes
customerIdstringYes
currency"CAD", "USD", "EUR", "GBP"Yes
incentiveAppliedCentsintegerYesminimum 0. maximum 1000000000000
incentiveFlagobjectYes
partnerIdstringNo
partnerExternalIdstringNo

incentiveFlag

FieldTypeRequiredDetails
incentiveFlag.reasonstringYes
incentiveFlag.programIdstringNo
incentiveFlag.reservationIdstringNo
incentiveFlag.maxCentsunionYes
incentiveFlag.reportedCentsintegerYesminimum 0. maximum 1000000000000

incentiveFlag.maxCents

Variant 1

Type: integer.

Variant 2

Type: null.

Payload schema

json
{
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "minLength": 1
    },
    "eventId": {
      "type": "string",
      "minLength": 1
    },
    "customerId": {
      "type": "string",
      "minLength": 1
    },
    "currency": {
      "type": "string",
      "enum": [
        "CAD",
        "USD",
        "EUR",
        "GBP"
      ]
    },
    "incentiveAppliedCents": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "incentiveFlag": {
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "minLength": 1
        },
        "programId": {
          "type": "string",
          "minLength": 1
        },
        "reservationId": {
          "type": "string",
          "minLength": 1
        },
        "maxCents": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000000000
            },
            {
              "type": "null"
            }
          ]
        },
        "reportedCents": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        }
      },
      "required": [
        "reason",
        "maxCents",
        "reportedCents"
      ],
      "additionalProperties": true
    },
    "partnerId": {
      "type": "string",
      "minLength": 1
    },
    "partnerExternalId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "orderId",
    "eventId",
    "customerId",
    "currency",
    "incentiveAppliedCents",
    "incentiveFlag"
  ],
  "additionalProperties": true
}

Handle delivery

Verify the signature over the raw body before parsing JSON. Check that the body ID matches Grizzlee-Event-Id. Process each ID once, since delivery can repeat.