Introduction

Amilia's Webhooks form a complement to the API. You can subscribe to a webhook to stay informed, in real-time, of changes to the platform, removing the need to poll the API endpoints continuously. This reduces overhead and allows you to react faster to new information.

You can subscribe to the webhooks through the API management UI under the admin settings tab (Webhooks 'Module' must be enabled), or through the webhooks API endpoint.
You'll need to specify a name, URL and the context / action for each webhook.

Delivery and failure modes

The webhooks will be sent with an http post request to the URL you specify, and expect an HTTP 200 response as soon as possible. In case an error message is received, the webhook will be retried at a regular interval for approximately 72 hours, after which the webhook subscription will be disabled and any messages remaining in the queue will be discarded.
You can see the status of your webhook subscriptions in the API management tab, or poll them through the API endpoint.

Program

A program is a set of activities organized in a hierarchy. It can have categories and subcategories.

# Create Program

This webhook will fire when a new program is created.

CODE SAMPLE JSON
{
  "Context": "Program",
  "Action": "Create",
  "Name": "Program Create",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 1,
    "Name": "Test Program",
    "Url": "//www.google.com",
    "Online": false,
    "StartDate": "2022-08-25T14:41:03.5283954-04:00",
    "ExpirationDate": "2022-09-08T14:41:03.5283954-04:00"
  }
}
                                                                    

# Update Program

This webhook will fire on a program update, such as a name change.

CODE SAMPLE JSON
{
  "Context": "Program",
  "Action": "Update",
  "Name": "Program Update",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 1,
    "Name": "Test Program",
    "Url": "//www.google.com",
    "Online": false,
    "StartDate": "2022-08-25T14:41:03.5283954-04:00",
    "ExpirationDate": "2022-09-08T14:41:03.5283954-04:00"
  }
}
                                                                    

# Delete Program

This webhook will fire on a program being archived.

CODE SAMPLE JSON
{
  "Context": "Program",
  "Action": "Delete",
  "Name": "Program Delete",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 123
  }
}
                                                                    

Account

This is the webhook context Account.

# Create Account

This is the webhook payload returned when the action Create is called with the context Account.

CODE SAMPLE JSON
{
  "Context": "Account",
  "Action": "Create",
  "Name": "Account Create",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 1,
    "Owners": [
      null
    ],
    "Members": [
      null
    ],
    "Corporate": null
  }
}
                                                                    

# Update Account

This is the webhook payload returned when the action Update is called with the context Account.

CODE SAMPLE JSON
{
  "Context": "Account",
  "Action": "Update",
  "Name": "Account Update",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 1,
    "Owners": [
      null
    ],
    "Members": [
      null
    ],
    "Corporate": null
  }
}
                                                                    

# Delete Account

This is the webhook payload returned when the action Delete is called with the context Account.

CODE SAMPLE JSON
{
  "Context": "Account",
  "Action": "Delete",
  "Name": "Account Delete",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 123
  }
}
                                                                    

Person

This is the webhook context Person.

# Create Person

This is the webhook payload returned when the action Create is called with the context Person.

CODE SAMPLE JSON
{
  "Context": "Person",
  "Action": "Create",
  "Name": "Person Create",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "OrganizationId": null,
    "AccountId": null,
    "AccountOwnerId": null,
    "AccountOwnerFirstName": null,
    "AccountOwnerLastName": null,
    "AccountOwnerFullName": null,
    "AccountOwnerEmail": null,
    "AccountOwnerTelephoneMobile": null,
    "IsArchived": false,
    "Contacts": null,
    "Skills": null,
    "MedicalInformation": null,
    "JoinDate": null,
    "PictureUrl": null,
    "Memberships": null,
    "ExternalId": null,
    "Friend": null,
    "PickupPassword": null,
    "Id": 1,
    "FirstName": "Test",
    "LastName": "Test",
    "FullName": null,
    "Gender": "NotSpecified",
    "DateOfBirth": null,
    "Email": null,
    "Address": null,
    "Telephone": null,
    "TelephoneMobile": null,
    "TelephoneWork": null,
    "TelephoneWorkExtension": null,
    "IsChild": false
  }
}
                                                                    

# Update Person

This is the webhook payload returned when the action Update is called with the context Person.

CODE SAMPLE JSON
{
  "Context": "Person",
  "Action": "Update",
  "Name": "Person Update",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "OrganizationId": null,
    "AccountId": null,
    "AccountOwnerId": null,
    "AccountOwnerFirstName": null,
    "AccountOwnerLastName": null,
    "AccountOwnerFullName": null,
    "AccountOwnerEmail": null,
    "AccountOwnerTelephoneMobile": null,
    "IsArchived": false,
    "Contacts": null,
    "Skills": null,
    "MedicalInformation": null,
    "JoinDate": null,
    "PictureUrl": null,
    "Memberships": null,
    "ExternalId": null,
    "Friend": null,
    "PickupPassword": null,
    "Id": 1,
    "FirstName": "Test",
    "LastName": "Test",
    "FullName": null,
    "Gender": "NotSpecified",
    "DateOfBirth": null,
    "Email": null,
    "Address": null,
    "Telephone": null,
    "TelephoneMobile": null,
    "TelephoneWork": null,
    "TelephoneWorkExtension": null,
    "IsChild": false
  }
}
                                                                    

# Delete Person

This is the webhook payload returned when the action Delete is called with the context Person.

CODE SAMPLE JSON
{
  "Context": "Person",
  "Action": "Delete",
  "Name": "Person Delete",
  "EventTime": "2022-09-01T14:41:03.5395961-04:00",
  "Payload": {
    "Id": 123
  }
}
                                                                    

FacilityBooking

A facility booking is any action that results in a facility being occupied for a time, for example an activity, a client reservation or a facility closing.

Webhook generated id prefix    Description
AB- Admin booking
AC- Activity
PL- Private lesson
FB- Facility booking
RC- Rental contact
CR- Client reservation

# Create FacilityBooking

This webhook will fire on a facility booking, which can be any one of the following: an activity being created, a private lesson booking, an admin facility booking, a client reservation of a facility through the checkout, or a rental contract being finalized. Note that a facility closure will fire a admin booking creation webhook.

CODE SAMPLE JSON
{
  "Context": "FacilityBooking",
  "Action": "Create",
  "Name": "FacilityBooking Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "ReservationId": "AB-/CR-/RC-/FB-345",
    "Title": "Test Reservation",
    "Type": "FacilityBooking",
    "Start": "2022-09-02T14:41:03.5283954-04:00",
    "End": "2022-09-03T14:41:03.5283954-04:00",
    "AllDay": false,
    "IsCancelled": false,
    "Location": {
      "Address": {
        "Latitude": 45.34564,
        "Longitude": 65.45645,
        "Address1": "123 Test Street",
        "Address2": "Block 4",
        "City": "Test City",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "T3S S3T"
      },
      "Id": 1,
      "Name": "Test Location"
    },
    "BookingType": {
      "Id": 2,
      "Name": "Admin Booking",
      "Color": "#000000"
    },
    "AdminBooking": {
      "Id": 3,
      "Name": "Test Admin Booking",
      "Description": "Test Description",
      "SetupOption": null
    },
    "Activity": {
      "Id": 3,
      "Name": "Test Activity",
      "ProgramId": 4,
      "ProgramName": "Test Program",
      "CategoryId": 5,
      "CategoryName": "Test Category",
      "SubCategoryId": 6,
      "SubCategoryName": "Test Subcategory",
      "Url": "www.test.com",
      "Status": "Normal"
    },
    "Contract": {
      "Id": 7,
      "ContractNumber": "Nr123",
      "AdminNotes": "Test Admin Notes",
      "Notes": "Public Notes",
      "Version": 2,
      "LastUpdated": "2022-02-22T22:22:22-04:00",
      "SetupOption": null
    },
    "Client": {
      "Id": 8,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "Gender": 0,
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.34564,
        "Longitude": 65.45645,
        "Address1": "123 Test Street",
        "Address2": "Block 4",
        "City": "Test City",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "T3S S3T"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567",
      "TelephoneWorkExtension": "46456",
      "IsChild": false
    }
  }
}
                                                                    

# Update FacilityBooking

This webhook will fire on a facility booking update, such as changing the time of an admin booking, or an activity being rescheduled.

CODE SAMPLE JSON
{
  "Context": "FacilityBooking",
  "Action": "Update",
  "Name": "FacilityBooking Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "ReservationId": "AB-/CR-/RC-/FB-345",
    "Title": "Test Reservation",
    "Type": "FacilityBooking",
    "Start": "2022-09-02T14:41:03.5283954-04:00",
    "End": "2022-09-03T14:41:03.5283954-04:00",
    "AllDay": false,
    "IsCancelled": false,
    "Location": {
      "Address": {
        "Latitude": 45.34564,
        "Longitude": 65.45645,
        "Address1": "123 Test Street",
        "Address2": "Block 4",
        "City": "Test City",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "T3S S3T"
      },
      "Id": 1,
      "Name": "Test Location"
    },
    "BookingType": {
      "Id": 2,
      "Name": "Admin Booking",
      "Color": "#000000"
    },
    "AdminBooking": {
      "Id": 3,
      "Name": "Test Admin Booking",
      "Description": "Test Description",
      "SetupOption": null
    },
    "Activity": {
      "Id": 3,
      "Name": "Test Activity",
      "ProgramId": 4,
      "ProgramName": "Test Program",
      "CategoryId": 5,
      "CategoryName": "Test Category",
      "SubCategoryId": 6,
      "SubCategoryName": "Test Subcategory",
      "Url": "www.test.com",
      "Status": "Normal"
    },
    "Contract": {
      "Id": 7,
      "ContractNumber": "Nr123",
      "AdminNotes": "Test Admin Notes",
      "Notes": "Public Notes",
      "Version": 2,
      "LastUpdated": "2022-02-22T22:22:22-04:00",
      "SetupOption": null
    },
    "Client": {
      "Id": 8,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "Gender": 0,
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.34564,
        "Longitude": 65.45645,
        "Address1": "123 Test Street",
        "Address2": "Block 4",
        "City": "Test City",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "T3S S3T"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567",
      "TelephoneWorkExtension": "46456",
      "IsChild": false
    }
  }
}
                                                                    

# Delete FacilityBooking

This webhook will fire on a facility booking deletion, such as cancelling an activity or refunding a client reservation.

CODE SAMPLE JSON
{
  "Context": "FacilityBooking",
  "Action": "Delete",
  "Name": "FacilityBooking Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Id": "AB-/CR-/RC-/FB-345"
  }
}
                                                                    

MembershipPurchased

A membership can take different forms: it can be a membership card, an annual fee, an activity-specific membership, etc.

# Create MembershipPurchased

This webhook will fire on a membership being purchased through the checkout.

CODE SAMPLE JSON
{
  "Context": "MembershipPurchased",
  "Action": "Create",
  "Name": "MembershipPurchased Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "SubscriptionId": 123,
    "Membership": {
      "Id": 1,
      "Name": "Test Member",
      "EffectiveDate": "2022-09-01T04:00:00",
      "ExpirationDate": "2022-09-30T04:00:00"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "InvoiceItem": {
      "Id": 35374222
    }
  }
}
                                                                    

# Update MembershipPurchased

This webhook will fire on a membership being updated.

CODE SAMPLE JSON
{
  "Context": "MembershipPurchased",
  "Action": "Update",
  "Name": "MembershipPurchased Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "SubscriptionId": 123,
    "Membership": {
      "Id": 1,
      "Name": "Test Member",
      "EffectiveDate": "2022-09-01T04:00:00",
      "ExpirationDate": "2022-09-30T04:00:00"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "InvoiceItem": {
      "Id": 35374222
    }
  }
}
                                                                    

# Delete MembershipPurchased

This webhook will fire when a membership is refunded or cancelled.

CODE SAMPLE JSON
{
  "Context": "MembershipPurchased",
  "Action": "Delete",
  "Name": "MembershipPurchased Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "SubscriptionId": 123,
    "Membership": {
      "Id": 1,
      "Name": "Test Member",
      "EffectiveDate": "2022-09-01T04:00:00",
      "ExpirationDate": "2022-09-30T04:00:00"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "InvoiceItem": {
      "Id": 35374222
    },
    "CreditMemo": {
      "Id": 35374333
    }
  }
}
                                                                    

MerchandisePurchased

This is the webhook context MerchandisePurchased.

# Create MerchandisePurchased

This is the webhook payload returned when the action Create is called with the context MerchandisePurchased.

CODE SAMPLE JSON
{
  "Context": "MerchandisePurchased",
  "Action": "Create",
  "Name": "MerchandisePurchased Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Merchandise": {
      "Id": 1,
      "Name": "Test Member",
      "Quantity": 0
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "LinkedPurchase": {
      "Type": "Activity",
      "Id": 1
    },
    "InvoiceItem": {
      "Id": 35374222
    }
  }
}
                                                                    

# Update MerchandisePurchased

This is the webhook payload returned when the action Update is called with the context MerchandisePurchased.

CODE SAMPLE JSON
{
  "Context": "MerchandisePurchased",
  "Action": "Update",
  "Name": "MerchandisePurchased Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Merchandise": {
      "Id": 1,
      "Name": "Test Member",
      "Quantity": 0
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "LinkedPurchase": {
      "Type": "Activity",
      "Id": 1
    },
    "InvoiceItem": {
      "Id": 35374222
    }
  }
}
                                                                    

# Delete MerchandisePurchased

This is the webhook payload returned when the action Delete is called with the context MerchandisePurchased.

CODE SAMPLE JSON
{
  "Context": "MerchandisePurchased",
  "Action": "Delete",
  "Name": "MerchandisePurchased Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Id": "55"
  }
}
                                                                    

MultiPassPurchased

This is the webhook context MultiPassPurchased.

# Create MultiPassPurchased

This is the webhook payload returned when the action Create is called with the context MultiPassPurchased.

CODE SAMPLE JSON
{
  "Context": "MultiPassPurchased",
  "Action": "Create",
  "Name": "MultiPassPurchased Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "InvoiceItemId": 0,
    "PurchasedDateUtc": null,
    "MultiPass": {
      "Id": 1,
      "Name": "Test multipass"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    }
  }
}
                                                                    

# Update MultiPassPurchased

This is the webhook payload returned when the action Update is called with the context MultiPassPurchased.

CODE SAMPLE JSON
{
  "Context": "MultiPassPurchased",
  "Action": "Update",
  "Name": "MultiPassPurchased Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "InvoiceItemId": 0,
    "PurchasedDateUtc": null,
    "MultiPass": {
      "Id": 1,
      "Name": "Test multipass"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    }
  }
}
                                                                    

# Delete MultiPassPurchased

This is the webhook payload returned when the action Delete is called with the context MultiPassPurchased.

CODE SAMPLE JSON
{
  "Context": "MultiPassPurchased",
  "Action": "Delete",
  "Name": "MultiPassPurchased Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "OrganizationId":"123",
  "Payload": {
    "InvoiceItemId": 0,
    "PurchasedDateUtc": null,
    "MultiPass": {
      "Id": 1,
      "Name": "Test multipass"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    }
  }
}
                                                                    

DonationPurchased

This is the webhook context DonationPurchased.

# Create DonationPurchased

This is the webhook payload returned when the action Create is called with the context DonationPurchased.

CODE SAMPLE JSON
{
  "Context": "DonationPurchased",
  "Action": "Create",
  "Name": "DonationPurchased Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Donation": {
      "Value": 99.99,
      "Id": 1,
      "Name": "Test donation"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567",
    },
    "InvoiceItem": {
      "Id": 35374222
    }
  }
}
                                                                    

# Update DonationPurchased

This is the webhook payload returned when the action Update is called with the context DonationPurchased.

CODE SAMPLE JSON
{
  "Context": "DonationPurchased",
  "Action": "Update",
  "Name": "DonationPurchased Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Donation": {
      "Value": 99.99,
      "Id": 1,
      "Name": "Test donation"
    },
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "InvoiceItem": {
      "Id": 35374222
    }
  }
}
                                                                    

# Delete DonationPurchased

This is the webhook payload returned when the action Delete is called with the context DonationPurchased.

CODE SAMPLE JSON
{
  "Context": "DonationPurchased",
  "Action": "Delete",
  "Name": "DonationPurchased Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Id": "55"
  }
}
                                                                    

Activity

This is the webhook context Activity.

# Create Activity

This is the webhook payload returned when the action Create is called with the context Activity.

CODE SAMPLE JSON
{
  "Context": "Activity",
  "Action": "Create",
  "Name": "Activity Create",
  "BillingLabel": "Activity Billing Label",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Tags": [],
    "Description": "Test Description",
    "Prerequisite": null,
    "Note": null,
    "ThirdPartyUrl": null,
    "AdditionalInformation": "Test Addition info",
    "ResponsibleName": null,
    "Price": 0.0,
    "DropInPrice": 0.0,
    "DisplayOrder": 0,
    "Age": {
      "Max": 5,
      "Min": 3,
      "Months": false
    },
    "MaxAttendance": null,
    "SpotsRemaining": null,
    "SpotsReserved": 0,
    "NumberOfOccurrences": 0,
    "StartDate": null,
    "EndDate": null,
    "ScheduleSummary": null,
    "HasSessionEnabled": false,
    "HasDropInEnabled": false,
    "AgeSummary": "3-5",
    "Keywords": [],
    "Groups": [],
    "OrganizationId": 0,
    "RegistrationPeriods": null,
    "LocationLabel": null,
    "SecretUrl": null,
    "PictureUrl": null,
    "Id": 1,
    "Name": "Test activity",
    "ProgramId": 0,
    "ProgramName": null,
    "CategoryId": 2,
    "CategoryName": "Test Category",
    "SubCategoryId": 0,
    "SubCategoryName": null,
    "Url": null,
    "Status": "Normal"
  }
}
                                                                    

# Update Activity

This is the webhook payload returned when the action Update is called with the context Activity.

CODE SAMPLE JSON
{
  "Context": "Activity",
  "Action": "Update",
  "Name": "Activity Update",
  "BillingLabel": "Activity Billing Label",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Tags": [],
    "Description": "Test Description",
    "Prerequisite": null,
    "Note": null,
    "ThirdPartyUrl": null,
    "AdditionalInformation": "Test Addition info",
    "ResponsibleName": null,
    "Price": 0.0,
    "DropInPrice": 0.0,
    "DisplayOrder": 0,
    "Age": {
      "Max": 5,
      "Min": 3,
      "Months": false
    },
    "MaxAttendance": null,
    "SpotsRemaining": null,
    "SpotsReserved": 0,
    "NumberOfOccurrences": 1,
    "StartDate": null,
    "EndDate": null,
    "ScheduleSummary": null,
    "HasSessionEnabled": false,
    "HasDropInEnabled": false,
    "AgeSummary": "3-5",
    "Keywords": [],
    "Groups": [],
    "OrganizationId": 0,
    "RegistrationPeriods": null,
    "LocationLabel": null,
    "Forms": [],
    "SecretUrl": null,
    "PictureUrl": null,
    "Id": 1,
    "Name": "Test activity",
    "ProgramId": 0,
    "ProgramName": null,
    "CategoryId": 2,
    "CategoryName": "Test Category",
    "SubCategoryId": 0,
    "SubCategoryName": null,
    "Url": null,
    "Status": "Normal"
  }
}
                                                                    

# Delete Activity

This is the webhook payload returned when the action Delete is called with the context Activity.

CODE SAMPLE JSON
{
  "Context": "Activity",
  "Action": "Delete",
  "Name": "Activity Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Id": "69"
  }
}
                                                                    

Registration

An activity registration is either an activity session, a drop-in spot, or a private lesson.

Webhook generated id prefix    Description
SUB- Subscription
DI- Drop-in
PL- Private lesson

# Create Registration

This webhook will fire on an activity registration, through a normal checkout process, on redeeming a multipass, or through the mobile app.

CODE SAMPLE JSON
{
  "Context": "Registration",
  "Action": "Create",
  "Name": "Registration Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "RegistrationId": "SUB-/DI-/PL-456",
    "Program": {
      "Id": 1,
      "Name": "Test Program"
    },
    "Activity": {
      "Id": 2,
      "Name": "Test Activity"
    },
    "Category": {
      "Id": 3,
      "Name": "Test Category"
    },
    "SubCategory": {
      "Id": 4,
      "Name": "Test SubCategory"
    },
    "Group": {
      "Id": 5,
      "Name": "Test Group"
    },
    "DropIn": {
      "OccurrenceId": 6,
      "OccurrenceDate": "2022-09-02T14:41:03.5283954-04:00"
    },
    "DateCreated": "2022-09-01T14:41:03.5283954-04:00",
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "AccountOwner": {
      "AccountId": 7,
      "AccountOwnerPersonId": 8
    },
    "Staff": {
      "Id": 2,
      "FirstName": "Staff",
      "LastName": "Member",
      "State": "Normal"
    },
    "InvoiceItem": {
      "Id": 35374222
    },
    "IsCancelled": false
  }
}
                                                                    

# Update Registration

This is the webhook payload returned when the action Update is called with the context Registration.

CODE SAMPLE JSON
{
  "Context": "Registration",
  "Action": "Update",
  "Name": "Registration Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "RegistrationId": "SUB-/DI-/PL-456",
    "Program": {
      "Id": 1,
      "Name": "Test Program"
    },
    "Activity": {
      "Id": 2,
      "Name": "Test Activity"
    },
    "Category": {
      "Id": 3,
      "Name": "Test Category"
    },
    "SubCategory": {
      "Id": 4,
      "Name": "Test SubCategory"
    },
    "Group": {
      "Id": 5,
      "Name": "Test Group"
    },
    "DropIn": {
      "OccurrenceId": 6,
      "OccurrenceDate": "2022-09-02T14:41:03.5283954-04:00"
    },
    "DateCreated": "2022-09-01T14:41:03.5283954-04:00",
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "AccountOwner": {
      "AccountId": 7,
      "AccountOwnerPersonId": 8
    },
    "Staff": {
      "Id": 2,
      "FirstName": "Staff",
      "LastName": "Member",
      "State": "Normal"
    },
    "InvoiceItem": {
      "Id": 35374222
    },
    "IsCancelled": false
  }
}
                                                                    

# Delete Registration

This webhook will fire on a activity registration cancellation, either with a refund or an activity cancellation.

CODE SAMPLE JSON
{
  "Context": "Registration",
  "Action": "Delete",
  "Name": "Registration Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "RegistrationId": "SUB-/DI-/PL-456",
    "Program": {
      "Id": 1,
      "Name": "Test Program"
    },
    "Activity": {
      "Id": 2,
      "Name": "Test Activity"
    },
    "Category": {
      "Id": 3,
      "Name": "Test Category"
    },
    "SubCategory": {
      "Id": 4,
      "Name": "Test SubCategory"
    },
    "Group": {
      "Id": 5,
      "Name": "Test Group"
    },
    "DropIn": {
      "OccurrenceId": 6,
      "OccurrenceDate": "2022-09-02T14:41:03.5283954-04:00"
    },
    "DateCreated": "2022-09-01T14:41:03.5283954-04:00",
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "AccountOwner": {
      "AccountId": 7,
      "AccountOwnerPersonId": 8
    },
    "Staff": {
      "Id": 2,
      "FirstName": "Staff",
      "LastName": "Member",
      "State": "Normal"
    },
    "InvoiceItem": {
      "Id": 35374222
    },
    "IsCancelled": true
  }
}

                                                                    

WaitListRegistration

This is the webhook context WaitListRegistration.

# Create WaitListRegistration

This webhook will fire when a person is added to an activity waitlist.

CODE SAMPLE JSON
{
  "Context": "WaitListRegistration",
  "Action": "Create",
  "Name": "WaitListRegistration Create",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Program": {
      "Id": 1,
      "Name": "Awesome Program #1"
    },
    "Activity": {
      "Id": 1,
      "Name": "Awesome Activity #1"
    },
    "Category": {
      "Id": 1,
      "Name": "Awesome Category #1"
    },
    "SubCategory": {
      "Id": 1,
      "Name": "Awesome SubCategory #1"
    },
    "DateCreated": "2022-09-01T18:41:03.5283954+00:00",
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "AccountOwner": {
      "AccountId": 1,
      "AccountOwnerPersonId": 1
    },
    "Status": "None",
    "ActivitySegment": null
  }
}
                                                                    

# Update WaitListRegistration

This webhook will fire when a person on an activity waitlist change status.

CODE SAMPLE JSON
{
  "Context": "WaitListRegistration",
  "Action": "Update",
  "Name": "WaitListRegistration Update",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Program": {
      "Id": 1,
      "Name": "Awesome Program #1"
    },
    "Activity": {
      "Id": 1,
      "Name": "Awesome Activity #1"
    },
    "Category": {
      "Id": 1,
      "Name": "Awesome Category #1"
    },
    "SubCategory": {
      "Id": 1,
      "Name": "Awesome SubCategory #1"
    },
    "DateCreated": "2022-09-01T18:41:03.5283954+00:00",
    "Person": {
      "Id": 1,
      "FirstName": "First",
      "LastName": "Last",
      "FullName": "First Last",
      "DateOfBirth": "2002-09-01",
      "Email": "test@email.com",
      "Address": {
        "Latitude": 45.000000,
        "Longitude": -73.000000,
        "Address1": "1234 First street",
        "Address2": "App 3",
        "City": "TestVille",
        "Country": "CA",
        "StateProvince": "QC",
        "ZipPostalCode": "H0H 0h0"
      },
      "Telephone": "(514) 123-4567",
      "TelephoneMobile": "(514) 987-6543",
      "TelephoneWork": "(514) 133-5567"
    },
    "AccountOwner": {
      "AccountId": 1,
      "AccountOwnerPersonId": 1
    },
    "Status": "None",
    "ActivitySegment": null
  }
}
                                                                    

# Delete WaitListRegistration

This is the webhook payload returned when the action Delete is called with the context WaitListRegistration.

CODE SAMPLE JSON
{
  "Context": "WaitListRegistration",
  "Action": "Delete",
  "Name": "WaitListRegistration Delete",
  "EventTime": "2022-09-01T14:41:03.548669-04:00",
  "Payload": {
    "Id": "69"
  }
}