Webhook Model
All webhook events share the same structure. Following code snippet shows an example JSON event.
{
    "testMode": false,
    "id": "weve_geAva6c1RAuyb9HQxbSlmA",
    "webhookId": "wcon_P-VkRfmJTBaC6_Tst22cew",
    "shopId": "sh_7ad0c438-beda-4779-a885-0dc325a755c1",
    "type": "ORDER_PLACED",
    "apiVersion": "V1_BETA",
    "createdAt": "2023-07-12T15:05:11.078089+00:00",
    "data": {
      "id": "00aa4abd-5778-4199-8161-0b49b2f212e5",
      "shopId": "sh_c689d374-22ca-43d3-8d29-9ef0805cc4cb",
      "friendlyId": "D3XZFWPP",
      "checkoutId": "ch_BV44UYrXQA2T_Xcf1288tw",
      "promotionId": "prm_a1bc23",
      "status": "CONFIRMED",
      "email": "supporter@fourthwall.com",
      "emailMarketingOptIn": true,
      "message": "Sample message",
      "amounts": {
        "subtotal": {
          "value": 5.5,
          "currency": "USD"
        },
        "shipping": {
          "value": 5.5,
          "currency": "USD"
        },
        "tax": {
          "value": 5.5,
          "currency": "USD"
        },
        "donation": {
          "value": 5.5,
          "currency": "USD"
        },
        "discount": {
          "value": 5.5,
          "currency": "USD"
        },
        "total": {
          "value": 5.5,
          "currency": "USD"
        }
      },
      "billing": {
        "address": {
          "name": "Joe Doe",
          "address1": "Main Street 1",
          "address2": "string",
          "city": "San Francisco",
          "state": "CA",
          "country": "US",
          "zip": "12345",
          "phone": "123456789"
        }
      },
      "shipping": {
        "address": {
          "name": "Joe Doe",
          "address1": "Main Street 1",
          "address2": "string",
          "city": "San Francisco",
          "state": "CA",
          "country": "US",
          "zip": "12345",
          "phone": "123456789"
        }
      },
      "offers": [
        {
          "id": "00aa4abd-5778-4199-8161-0b49b2f212e5",
          "name": "My TShirt",
          "slug": "my-tshirt",
          "description": "Sample description",
          "primaryImage": {
            "id": "00aa4abd-5778-4199-8161-0b49b2f212e5",
            "url": "https://fourthwall.com/image.png",
            "width": 800,
            "height": 600
          },
          "variant": {
            "id": "00aa4abd-5778-4199-8161-0b49b2f212e5",
            "name": "My TShirt",
            "sku": "WDEK-DRE200L",
            "unitPrice": {
              "amount": 5.5,
              "currency": "USD"
            },
            "quantity": 1,
            "price": {
              "amount": 5.5,
              "currency": "USD"
            },
            "attributes": {
              "description": "Black, L",
              "color": {
                "name": "Black",
                "swatch": "#000000"
              },
              "size": {
                "name": "L"
              }
            }
          }
        }
      ],
      "type": "ORDER",
      "createdAt": "2020-08-13T09:05:36.939Z",
      "updatedAt": "2020-08-13T09:05:36.939Z"
    }
}
Fields Description
| Field | Description | 
|---|---|
| testMode | If value is true, it indicates that the event contains only test data. See Testing paragraph for more info. | 
| id | Identificator of the event, the value is always unique. If you receive multiple events with the same id, you should treat them as duplicates. See Limitations paragraph. | 
| webhookId | Indicates which webhook configuration was used. | 
| shopId | Your shopId, useful if you want to manage multiple shops under the same webhook endpoint. | 
| type | Indicates which data type you should expect within the event. | 
| apiVersion | Version of the data type that was chosen. | 
| createdAt | Date at which the event was created. | 
| data | Contains all the actual data specific to the type of the event. Refer to the Open API model to see available fields for types. |