MERCHANT_STATUS_UPDATE

Fired when a merchant becomes available or unavailable (even if temporarily), including when a brand new merchant is made availble on the Knot platform for the first time.

Availability is unique to product types, platforms, and versions of the SDK. As such, the event will fire independently for each product type and platform. Particularly if you are implementing multiple of Knot’s products, you should consider the type property to determine whether a merchant is available for a given product, as availability can differ.

This event does not include a session_id, which is relevant when generating a hash map for webhook verification, as described in Webhook Verification.

{
  "event": "MERCHANT_STATUS_UPDATE",
  "merchant": {
    "id": 10,
    "name": "Uber",
    "logo": "https://storage.googleapis.com/knot-api/merchants/vAUzKgPbYRMk3180qW8ncAiizrNjxrvW61LBA23n.png"
  },
  "data": {
    "type": "card_switcher", // card_switcher, transaction_link
	"status": "UP", // UP, DOWN
    "platform": "ios", // ios, android, web
    "sdk": "1.0.0" // nullable
  },
  "timestamp": 1710864923198
}

AUTHENTICATED

Fired when the authentication to a merchant is successful.

{
  "event": "AUTHENTICATED",
  "session_id": "fb5aa994-ed1c-4c3e-b29a-b2a53222e584",
  "task_id": 25605,
  "external_user_id": "3dcbb19a-b2f1-4a7b-8792-d76027b627b3",
  "merchant": {
    "id": 10,
    "name": "Uber"
  },
  "data": {
    "card_id": "123456789",
    "send_card": true,
    "entrypoint": "onboarding"
  },
  "timestamp": 1710864923198
}

NEW_TRANSACTIONS_AVAILABLE

Triggered when new transactions for a user’s merchant account are available. See a sample payload below:

{
  "event": "NEW_TRANSACTIONS_AVAILABLE",
  "external_user_id": "{your-unique-identifier}",
  "merchant": {
    "id": 36,
    "name": "Uber Eats"
  },
  "timestamp": 1710864923198
}

UPDATED_TRANSACTIONS_AVAILABLE

Triggered when updated data is available for existing transactions for a user’s merchant account. The webhook includes an array of transaction IDs for which there exists updated data. See a sample payload below:

{
  "event": "UPDATED_TRANSACTIONS_AVAILABLE",
  "external_user_id": "{your-unique-identifier}",
  "merchant": {
    "id": 36,
    "name": "Uber Eats"
  },
  "updated": [
    {
       "id": "123abc456def"
    },
    {
       "id": "789ghi012jkl"
    }
  ],
  "timestamp": 1710864923198
}