---
title: Webhooks for Memberships and Orders
shortDescription: Use Fourthwall webhooks to receive real-time notifications for membership and order events in your own applications.
articleType: Reference
primaryTopic: webhooks
categories:
  - Developer Tools
  - Integrations
tags:
  - webhooks
  - developer
  - api
  - memberships
  - orders
  - real-time
  - integrations
  - subscription-events
tasks:
  - Register a webhook endpoint in Fourthwall
  - Choose which events to subscribe to
  - Handle incoming webhook payloads
  - Test webhook delivery from the dashboard
  - Receive membership and order event notifications
terms:
  - fourthwall webhooks
  - webhook setup fourthwall
  - membership webhook events
  - order webhook events
  - subscription purchased webhook
  - subscription expired webhook
  - webhook endpoint registration
  - real-time order notifications
  - developer webhooks fourthwall
  - webhook payload structure
  - api webhooks fourthwall
labels:
  - webhooks
  - developer-tools
  - api
  - memberships
  - orders
contextString: Available to creators with developer access. Requires registering a public HTTPS endpoint. Configured in Dashboard > Settings > For Developers > Webhooks.
breadcrumbPath: "Manage my shop > Apps, features, and integrations > Webhooks for Memberships and Orders"
relatedModules:
  - name: settings-for-developers
    route: /admin/dashboard/settings/for-developers
path: manage-my-shop/apps-features-and-integrations/webhooks-for-memberships-and-orders
last_updated: '2026-05-09'
---

# Webhooks for Memberships and Orders

Fourthwall webhooks send HTTP POST requests to your endpoint whenever specific events happen in your shop: a membership purchased, an order placed, a subscription expired. You define the endpoint, choose which events to receive, and handle the payload in your own application.

## Register a webhook endpoint

To start receiving webhook events, add your endpoint in the developer settings under [**Settings > For Developers > Webhooks**](https://my-shop.fourthwall.com/admin/dashboard/settings/for-developers/?redirect).

1. Go to **Settings > For Developers > Webhooks** in your Fourthwall dashboard.
2. Click **Add endpoint**.
3. Enter your endpoint URL. It must be a publicly reachable HTTPS address.
4. Select the events you want to receive.
5. Save the configuration.

Fourthwall immediately begins sending events to your endpoint when the selected triggers occur.

## Available events

Fourthwall sends webhook notifications across four event categories: membership events, order events, cart events, and other events.

**Membership events**

- `SUBSCRIPTION_PURCHASED`: A supporter starts a new membership.
- `SUBSCRIPTION_CHANGED`: A supporter upgrades or downgrades their membership tier.
- `SUBSCRIPTION_EXPIRED`: A membership ends, either through cancellation or failed renewal.

**Order events**

- `ORDER_PLACED`: A supporter completes a purchase.
- `ORDER_UPDATED`: An order is updated after placement.
- `GIFT_PURCHASE`: A supporter sends a gift.
- `DONATION`: A supporter makes a donation.

**Cart events**

- `CART_ABANDONED_1H`: A cart is abandoned for 1 hour.
- `CART_ABANDONED_24H`: A cart is abandoned for 24 hours.
- `CART_ABANDONED_72H`: A cart is abandoned for 72 hours.

**Other events**

- `NEWSLETTER_SUBSCRIBED`: A supporter subscribes to your newsletter.
- `THANK_YOU_SENT`: A thank-you is sent to a supporter.
- `PROMOTION_CREATED`, `PROMOTION_UPDATED`, `PROMOTION_STATUS_CHANGED`: Promotion lifecycle events.
- `COLLECTION_UPDATED`: A collection is modified.

## Webhook payload structure

Every webhook Fourthwall sends uses the same envelope structure. The `type` field identifies the event, `version` indicates the payload version (all current events use `V1`), and `data` contains the event-specific payload whose shape depends on the event type.

```json
{
  "type": "ORDER_PLACED",
  "version": "V1",
  "data": {
    "id": "order-uuid",
    "offers": [
      {
        "id": "b2c201d3-8104-4b2a-b2c9-1f6b335b650a",
        "name": "New T-shirt",
        "slug": "new-t-shirt",
        "variant": {
          "id": "e3c12d65-a3aa-417e-a289-dabf71a87194",
          "sku": "Z3YD-8CTV00S"
        }
      }
    ]
  }
}
```

Key fields in the payload:

- **`type`**. The event name (e.g., `ORDER_PLACED`, `SUBSCRIPTION_PURCHASED`).
- **`version`**. The payload version. All current events use `V1`.
- **`data`**. The event-specific payload. Shape depends on the event type.
- **`data.offers`**. An array of line items in the order. A single order can contain multiple offers, so iterate over the array when processing.
- **`data.offers[n].id`**. The product (offer) UUID. Use this to identify which product was purchased.
- **`data.offers[n].name`**. The product name.
- **`data.offers[n].slug`**. The product URL slug.
- **`data.offers[n].variant.id`**. The variant UUID for variant-level filtering (e.g., a specific size or color).
- **`data.offers[n].variant.sku`**. The Stock Keeping Unit (SKU) code, useful for SKU-based matching with external inventory systems.

Fourthwall retries failed deliveries up to 3 times if your endpoint does not return a `2xx` response.

## Filtering by product or offer

Fourthwall sends an `ORDER_PLACED` webhook for every order, with no server-side filtering by product. To trigger workflows for a specific product, filter at your endpoint by checking `data.offers[n].id` against the product UUID you care about.

Because `data.offers` is an array, an order can contain multiple line items. Iterate over the array and check each entry. Common filter fields:

- **Product match**: compare `data.offers[n].id` to the product (offer) UUID.
- **Variant match**: compare `data.offers[n].variant.id` to the specific variant UUID.
- **SKU match**: compare `data.offers[n].variant.sku` to the SKU code.

You can find a product's UUID in the dashboard URL when editing the product, or by inspecting the payload of a test event sent to your endpoint.

## Test webhook delivery

You can send a test event to your endpoint directly from the dashboard to verify your setup before going live.

1. Go to **Settings > For Developers > Webhooks**.
2. Open the endpoint configuration you want to test.
3. Click **Send test event** and select an event type.
4. Check your endpoint logs to confirm the payload arrived correctly.

## Frequently asked questions

### Does Fourthwall sign webhook requests?

Webhook signature verification details are available in the developer settings when you configure your endpoint. Use the provided secret to verify that incoming requests originate from Fourthwall.

### What happens if my endpoint is down?

Fourthwall retries failed webhook deliveries up to 3 times. If all retries fail, the event is not re-queued. Build your endpoint to respond quickly and return a `2xx` status to acknowledge receipt.

### Can I receive events for all event types at once?

Yes. When registering your endpoint, you can select all available event types or pick a subset. You can update your selections at any time from the developer settings.

### Where do I find my API credentials for authenticated endpoints?

API keys are managed separately under **Settings > For Developers > OpenAPI**. Use those credentials if your endpoint requires authentication to accept incoming requests.
