Webhooks

How to configure webhooks to automate workflows and integrate external platforms

What are webhooks?

A webhook sends real-time data to your system when a customer completes a payment or form submission. Use webhooks to trigger emails, update databases, or sync data with your tools.

How to set up webhooks

Checkout Page supports two types of webhook integrations:

Store-level webhooks receive events from all pages in your store.

  1. Go to Store settings → Integrations → Webhooks.
  2. Add your webhook URL.
  3. Select which events to listen for.
  4. Click Save.

For more information on our store-level webhook integration, click here.

Page-level webhooks receive events from a specific page only. Currently, page-level webhooks support one event: conversion, which triggers whenever a checkout is submitted successfully.

  1. Go to Pages and open the page you want to integrate.
  2. Go to After payment → Integrations (or After submission → Integrations for forms).
  3. Click Add integration and select Webhooks.
  4. Enter your webhook URL.
  5. Click Save.

Webhook event payload

Each webhook sends a JSON payload containing:

  • timestamp — when the event occurred.
  • event — the event type (e.g. conversion).
  • data — the event details.

The data object varies depending on the checkout type:

  • One-time payment — contains a payment object.
  • Subscription — contains a subscription object.
  • Form submission — contains a submission object.

The payload content may vary depending on your checkout settings, products, and pricing.

Use Test payments in the dashboard to simulate a conversion event. Use the livemode property in the payload to distinguish between test and live payments.

Payments

When a new payment is made, the following information is sent:

{
  "event": "conversion",
  "object": "payment",
  "data": {
    "fields": {
      "customer_email": "test@checkoutpage.co", // field reference: field value
      "quantity": "1", // field reference: field value
      "shipping_address_line1": "357 Elm Drive", // field reference: field value
      "shipping_address_city": "New York", // field reference: field value
      "shipping_address_country": "United States", // field reference: field value
      "shipping_address_postal_code": "10025" // field reference: field value
    },
    "variants": {
      "size": { // variant reference
        "name": "Size", // variant name
        "selectedOption": "Medium ", // variant option name
        "price": "10.00", // variant option price
        "sku": "100" // variant option sku
      },
      "color": { // variant reference
        "name": "Color", // variant name
        "selectedOption": "Green", // variant option name
        "sku": "" // variant option sku
      }
    },
    "amount": "23.99", // total payment amount
    "currency": "usd", // currency
    "orderId": "02009743", // order id

    "customerName": "Sander", // customer name
    "customerEmail": "test@checkoutpage.co", // customer email
    "customerCreatedDate": "2021-08-19T13:58:27.604Z", // customer created date
    "customerId": "611e6383cf7d2c0020380e53", // customer id
    "stripeCustomerId": "cus_K4KQBkiwC8LG9E", // stripe customer id
    
    "licenseKey": "1234567890", // license key
    "licenseKeyUses": 0, // license key uses
    "licenseKeyEnabled": true, // license key enabled
    
    "couponId": "645136a20779606f5a659dec", // coupon id
    "couponCode": "COUPON", // coupon code
    "couponPercentOff": 20, // coupon percent off
    "couponAmountOff": "0", // coupon amount off 
    "couponDiscount": "4.80", // coupon discount

    "createdDate": "2023-05-17T12:43:51.251Z", // payment created date
    "status": "paid", // payment status
    "id": "6464cc07822f15f2aca067dd", // payment id
    "stripePaymentId": "pi_1N3LpOJ7i86GeQKlEcsyGnwY",
    "productPrice": "13.99", // product price
    "queryParameters": {
      "utm_source": "google" // query parameter key: query parameter value
    },
    "livemode": false, // livemode
    "productTitle": "T-shirt", // product title
    "productTotalRevenue": "23.99", // product total revenue
    "productTotalNumberOfSales": 1, // product total number of sales
    "checkoutId": "6464cbba822f15f2aca06734", // checkout id
    "checkoutSlug": "t-shirt" // checkout slug
  }
}

Subscriptions

When a new subscription is created, the following information is sent:

{
  "event": "conversion",
  "object": "subscription",
  "data": {
    "fields": {
      "customer_name": "Test", // field reference: field value
      "customer_email": "test@checkoutpage.co"
    },
    "variants": {
      "tier": { // variant reference
        "name": "Tier", // variant name
        "selectedOption": "Grow", // variant option name
        "price": "49.00", // variant option price
        "sku": "grow-tier", // variant option sku
        "stripePriceId": "price_1N3KttJ7i86GeQKlrttqR7gj", // variant option stripe price id
        "stripeProductId": "prod_NoyrrdTsenY3qK" // variant option stripe product id
      }
    },
    "amount": "49.00", // total subscription amount
    "currency": "usd", // currency
    "orderId": "16635413", // order id

    "customerName": "Test", // customer name
    "customerEmail": "test@checkoutpage.co", // customer email
    "customerCreatedDate": "2023-05-02T16:13:22.190Z", // customer created date
    "customerId": "645136a20779606f5a659dec", // customer id
    "stripeCustomerId": "cus_NozpnZaByGmgr7", // stripe customer id

    "licenseKey": "1234567890", // license key
    "licenseKeyUses": 0, // license key uses
    "licenseKeyEnabled": true, // license key enabled

    "couponId": "645136a20779606f5a659dec", // coupon id
    "couponCode": "COUPON", // coupon code
    "couponPercentOff": 20, // coupon percent off
    "couponAmountOff": "0", // coupon amount off 
    "couponDuration": "forever", // coupon duration (once, repeating, forever)
    "couponDurationInMonths": null, // coupon duration in months
    "couponDiscount": "9.80", // coupon discount

    "createdDate": "2023-05-02T16:13:22.234Z", // subscription created date
    "status": "active", // subscription status
    "id": "645136a20779606f5a659dfc", // subscription id
    "productPrice": "49.00", // product price
    "discountedFrom": "69.00", // discounted from
    "interval": "month", // subscription interval
    "intervalCount": 1, // subscription interval count (1 is monthly/yearly, 2 is every 2 months/years, and so on)
    "endsAfterPayments": 4, // payment plan ends after payments (null for regular subscription)
    "setupFee": "0", // setup fee
    "trailStart": "2023-05-02T16:13:21.000Z", // subscription trail start date
    "trialEnd": "2023-05-09T16:13:21.000Z", // subscription trail end date
    "canceledAt": "2023-05-02T16:13:21.000Z", // subscription canceled date
    "cancelAt": "2023-09-02T16:13:21.000Z", // subscription cancel at date
    "currentSubscriptionPeriodStart": "2023-05-02T16:13:21.000Z", // current subscription period start date
    "currentSubscriptionPeriodEnd": "2023-06-02T16:13:21.000Z", // current subscription period end date
    "sku": "", // sku
    "paymentGateway": "stripe", // payment gateway
    "paymentMethod": "card", // payment method
    "queryParameters": {
      "utm_source": "google" // query parameter key: query parameter value
    },
    "livemode": true, // livemode
    "stripeSubscriptionId": "sub_1N3LpOJ7i86GeQKlEcsyGsmD", // stripe subscription id
    "productTitle": "Subscription", // product title
    "productStock": 100, // product stock
    "productTrialPeriodDays": null, // product trial period days
    "productNumberOfSubscribers": 4, // product number of subscribers
    "productStripePlanId": "price_Noyr6dXsenY3qK", // product stripe price id
    "productStripeProductId": "prod_NoyrrdTsenY3qK", // product stripe product id
    "checkoutId": "64512687dd63fb2fac1e281c", // checkout id
    "checkoutSlug": "subscription" // checkout slug
  }
}

Submissions

When a new submission is made, the following information is sent:

{
  "event": "conversion",
  "object": "submission",
  "data": {
    "fields": {
      "customer_name": "Test", // field reference: field value
      "customer_email": "test@checkoutpage.co"
    },
    "variants": {
      "tier": { // variant reference
        "name": "Tier", // variant name
        "selectedOption": "Grow", // variant option name
        "sku": "grow-tier" // variant option sku
      }
    },
    "orderId": "52560220",  // order id
    "customerName": "Test", // customer name
    "customerEmail": "test@checkoutpage.co", // customer email
    "customerCreatedDate": "2023-05-02T16:13:22.190Z", // customer created date
    "customerId": "645136a20779606f5a659dec", // customer id
    "stripeCustomerId": "cus_NozpnZaByGmgr7", // stripe customer id, if exists

    "licenseKey": "1234567890", // license key
    "licenseKeyUses": 0, // license key uses
    "licenseKeyEnabled": true, // license key enabled

    "createdDate": "2023-05-02T16:13:22.234Z", // submission created date
    "id": "6464b541822f15f2aca06477", // submission id
    "sku": "", // sku
    "queryParameters": {
      "utm_source": "google" // query parameter key: query parameter value
    },
    "livemode": false, // livemode
    "productTitle": "Lead", // product title
    "productTotalNumberOfSales": 1, // total number of submissions
    "checkoutId": "645a4af4ef36dfae673f283f", // checkout id
    "checkoutSlug": "lead-3" // checkout slug
  }
}