Skip to content
Developer docs
⌘ K
Dashboard ↗

Webhook events

partner.created

Receive this event when Grizzlee records partner.created.

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": "partner.created",
  "data": {
    "externalId": "merchant-partner-001",
    "customerIds": [
      "customer-example"
    ],
    "name": "Example referral program",
    "email": "partner@example.com",
    "programIds": [
      "program-example"
    ],
    "partnerId": "partner-example",
    "partnerExternalId": "merchant-partner-001",
    "id": "partner-example",
    "companyId": "company-example",
    "referralCode": "EXAMPLE",
    "active": true,
    "createdAt": "2026-10-11T12:00:00.000Z"
  },
  "createdAt": "2026-10-11T12:00:00.000Z"
}

Payload fields

FieldTypeRequiredDetails
externalIdstringYes
customerIdsarrayNo
namestringYes
emailunionYes
programIdsarrayYes
labelsarrayNo
propertiesobjectNo
stripeAccountIdunionNo
localeunionNo
partnerIdstringYes
partnerExternalIdstringYes
idstringYes
companyIdstringYes
referralCodestringYes
aliasstringNo
activebooleanYes
createdAtstringYesdate-time

email

Variant 1

Type: string.

Variant 2

Type: string.

stripeAccountId

Variant 1

Type: string.

Variant 2

Type: null.

locale

Variant 1

Type: string.

Variant 2

Type: null.

Payload schema

json
{
  "type": "object",
  "properties": {
    "externalId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "customerIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      },
      "maxItems": 100
    },
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100
    },
    "email": {
      "anyOf": [
        {
          "type": "string",
          "format": "email",
          "maxLength": 254
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "programIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      },
      "maxItems": 100
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 60
      },
      "maxItems": 10
    },
    "properties": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number",
            "minimum": -1000000000000,
            "maximum": 1000000000000
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "stripeAccountId": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255,
          "pattern": "^acct_[A-Za-z0-9]+$"
        },
        {
          "type": "null"
        }
      ]
    },
    "locale": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "en",
            "fr-CA",
            "hy",
            "ru"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "partnerId": {
      "type": "string",
      "minLength": 1
    },
    "partnerExternalId": {
      "type": "string",
      "minLength": 1
    },
    "id": {
      "type": "string",
      "minLength": 1
    },
    "companyId": {
      "type": "string",
      "minLength": 1
    },
    "referralCode": {
      "type": "string",
      "minLength": 1
    },
    "alias": {
      "type": "string",
      "minLength": 1
    },
    "active": {
      "type": "boolean"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "externalId",
    "name",
    "email",
    "programIds",
    "partnerId",
    "partnerExternalId",
    "id",
    "companyId",
    "referralCode",
    "active",
    "createdAt"
  ],
  "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.