Webhooks
Collection Created

COLLECTION_CREATED

Delivered immediately after a collection is created. Nothing has been paid yet — this is your confirmation that the address and payment link are live.

Envelopebody wrapperKeyssnake_case

Delivered to the collection's merchantCallbackUrl, falling back to your business webhook URL.

Payload

COLLECTION_CREATED
{
  "body": {
    "eventType": "COLLECTION_CREATED",
    "collection": {
      "id": "9cddd3ad-c2a8-463c-a703-158b900beea8",
      "business_id": "b7b93a40-4e18-4e97-9c5f-8a7a4fd0df92",
      "network": "MATIC_MAINNET",
      "token": "USDT",
      "address": "0x3761f3504104f4faa8959963a5d8dce89989d45b",
      "token_amount": "2500.000000000000000000",
      "token_amount_requested": "2500.000000000000000000",
      "token_amount_received": null,
      "token_to_usd": "1.00000000",
      "fee_in_usd": "0.00000000",
      "status": "PENDING",
      "transaction_hash": null,
      "number_of_confirmations": null,
      "confirmation_threshold": 10,
      "merchant_redirect_url": "https://example.com/thanks",
      "merchant_callback_url": "https://example.com/webhooks/knit",
      "payment_link_url": "https://checkout.collection.useknit.io/9cddd3ad-c2a8-463c-a703-158b900beea8",
      "expires_at": "2024-08-27T14:02:10.000000Z",
      "created_at": "2024-08-27T13:32:10.000000Z",
      "updated_at": "2024-08-27T13:32:10.000000Z"
    }
  }
}
⚠️

Collection payloads use snake_case keys — token_amount, not tokenAmount. This differs from the camelCase you get back from GET /api/v1/collections.

Handling

Treat this as an acknowledgement, not a payment. Do not release goods or credit a customer here — wait for COLLECTION_SUCCESSFUL.

Because a collection expires 30 minutes after creation, this is a good moment to start your own expiry timer.

See also