Available Events
The full list of events Raisely can notify you about via our webhooks.
Donation Events
Event | Description |
---|---|
donation.created | Fired when a donation is created and ready to be charged, or when an offline donation is added. |
donation.succeeded | When an online donation is successfully charged. There's no guarantee this is sent after the donation.created event. |
donation.updated | On donation updates, normally when the email is updated in the process of re-sending a receipt. |
donation.refunded | When a donation is refunded, either in part or full |
donation.deleted | When an offline donation is deleted. |
All donation events will have the following payload:
{
"secret": "",
"data": {
"type": "donation.created|succeeded|updated|deleted",
"uuid": "79d37040-c333-11e7-8f3c-c766ac08c846",
"createdAt": "2017-11-13T03:33:55.142Z",
"source": "campaign:916fdb80-c82d-11e7-8f3c-c766ac08c846",
"context": {
"referrer": "google.com",
"userAgent": "...",
"pathname": "/my-example-page",
"utmSource": "example"
},
"data": {
"uuid": "13540340-0fcf-11e8-bfb9-e1688dd03f70",
"type": "ONLINE", // ONLINE or OFFLINE
"method": "CREDIT_CARD", // CREDIT_CARD, APPLE_PAY, IDEAL
"currency": "AUD",
"message": "My message here",
"anonymous": false,
"amount": 3000, // Donation amount (ex Raisely fee) in cents
"createdAt": "2018-02-12T08:31:09.470Z",
"mode": "TEST", // TEST or LIVE
"public": {},
"status": "OK",
"email": "[email protected]",
"id": 264651,
"card": "card_1BuciQC5KzEzHPNhDf05NcJu", // Gateway card ID
"customer": "cus_CJFC7o5r2ekWrF", // Gateway customer ID
"processing": "ONCE", // ONCE or RECURRING if it's part of a subscription
"fee": 130, // Raisely fee if charged
"total": 3130, // Total including Raisely fee
"private": null,
"result": {}, // Gateway charge object (see Stripe docs)
"userId": 398243,
"gst": 0, // GST charged by Raisely on this transaction (AU accounts only)
"campaignUuid": "raisely-pk-8c047df67a79692b5eb4e0afccee9b06", // raisely key for legacy campaigns, uuid for new campaigns
"userUuid": "135effc0-0fcf-11e8-bfb9-e1688dd03f70",
"subscriptionUuid": "144effc0-0f7d-11e8-hdh7-h37364dd04f766", // if this is part of a subscription, the subscription uuid will be provided.
"ipNumber": "1.136.105.25",
"user": {
"uuid": "135effc0-0fcf-11e8-bfb9-e1688dd03f70",
"createdAt": "2018-02-12T08:31:09.245Z",
"updatedAt": "2018-02-12T08:31:09.245Z",
"facebookId": null,
"email": "[email protected]",
"username": "[email protected]",
"permission": "PARTICIPANT",
"address1": null,
"address2": null,
"postcode": null,
"state": null,
"suburb": null,
"country": null,
"internal": {},
"public": null,
"private": null,
"firstName": "Tom",
"lastName": "Maitland",
"photoUrl": null,
"phoneNumber": null
},
"firstName": "Tom",
"lastName": "Maitland",
"campaignFee": 0, // raisely fee in campaign currency
"campaignAmount": 0, // donation amount in campaign currency
"providerRaisely": 0, // raisely fee in AUD
"cardPreview": 4242, // last4 digits of the card
"feeOptIn": true,
"publicAmount": 30,
"publicFee": 1.3,
"publicTotal": null
}
}
}
Subscription Events
Subscriptions are the system name for regular giving in Raisely, they control the schedules for any recurring payments.
Event | Description |
---|---|
subscription.created | When a new subscription has been created for processing. |
subscription.succeeded | When the first donation of a subscription has been successfully charged. |
subscription.updated | When any change is made to a subscription. |
subscription.failing | When an attempt to rebill a subscription is failing. This is sent every time the subscription is retried up until the final retry which will trigger a subscription.failed event |
subscription.failed | Charging a subscription has encountered a permanent error (eg the card has been cancelled), or has exceeded the maximum retries for a temporary error (eg insufficient funds) |
subscription.rebilled | Every subsequent donation made on the subscription following the first donation. |
subscription.paused | When a subscription is paused |
subscription.resumed | When a subscription is resumed after being paused |
subscription.cancelled | When a subscription's status is updated to "CANCELLED" |
subscription.deleted | On the deletion of a subscription. This happens rarely, they're normally updated to a status of "CANCELLED". |
All subscription events will have the following payload:
{
"secret": "",
"data": {
"type": "subscription.created|succeeded|updated|deleted",
"uuid": "79d37040-c333-11e7-8f3c-c766ac08c846",
"createdAt": "2017-11-13T03:33:55.142Z",
"source": "campaign:916fdb80-c82d-11e7-8f3c-c766ac08c846",
"context": {
"referrer": "google.com",
"userAgent": "...",
"pathname": "/my-example-page",
"utmSource": "example"
},
"data": {
"uuid": "302a8fb0-0fd0-11e8-bfb9-e1688dd03f70",
"createdAt": "2018-02-12T08:39:07.052Z",
"updatedAt": "2018-02-12T08:39:10.916Z",
"user": {
"uuid": "135effc0-0fcf-11e8-bfb9-e1688dd03f70",
"createdAt": "2018-02-12T08:31:09.245Z",
"updatedAt": "2018-02-12T08:31:09.245Z",
"facebookId": null,
"email": "[email protected]",
"username": "[email protected]",
"permission": "PARTICIPANT",
"address1": null,
"address2": null,
"postcode": null,
"state": null,
"suburb": null,
"country": null,
"internal": {},
"public": null,
"private": null,
"firstName": "Tom",
"lastName": "Maitland",
"photoUrl": null,
"phoneNumber": null,
"ipNumber": null,
"ipLatitude": null,
"ipLongitude": null,
"ipCity": null,
"ipCountry": null
},
"card": "card_1Bucq7C5KzEzHPNhw0ZhT1Gd", // gateway card ID
"status": "OK", // OK, RETRYING, FAILING, FAILED, PAUSED, CANCELLED
"amount": 3000, // subscription amount in cents
"total": 3130, // total charge including Raisely fee in cents
"fee": 130, // raisely fee component in cents
"count": 1, // count of the interval, ie. 2 WEEK(s) or 1 MONTH
"interval": "WEEK", // interval to bill in
"currency": "AUD",
"nextPayment": "2018-02-19T08:39:07.000Z", // when the next payment is due, this can be in the past if the subscription is failing
"public": {},
"failedAt": null, // an ISO8601 datestamp of the last failure
"message": "",
"failed": 0, // number of failed donations since the last successful one
"private": {},
"error": "",
"anonymous": false,
"mode": "TEST", // TEST or LIVE
"campaignUuid": "raisely-pk-8c047df67a79692b5eb4e0afccee9b06",
"feeOptIn": true
}
}
}
About subscriptions and donations
When someone signs up to a new subscription you will receive 4-5 events (provided you're subscribed to them all). You'll get subscription.created, donation.created, subscription.succeeded, donation.succeeded and maybe user.created if the donation was for a new user. We don't guarantee the order you receive them in, so your application needs to handle them appropriately.
User Events
Users (people) are shared across your Raisely organisation, shared between your campaigns. They can create and own profiles, donations, subscriptions and posts.
Event | Description |
---|---|
user.created | A new user has signed up, or been created automatically from a donation. |
user.updated | A user has been updated. |
All user events will have the following payload:
{
"secret": "",
"data": {
"type": "user.created|updated",
"uuid": "79d37040-c333-11e7-8f3c-c766ac08c846",
"createdAt": "2017-11-13T03:33:55.142Z",
"source": "campaign:916fdb80-c82d-11e7-8f3c-c766ac08c846",
"context": {
"referrer": "google.com",
"userAgent": "...",
"pathname": "/my-example-page",
"utmSource": "example"
},
"data": {
"uuid": "cf64f3e0-0fe4-11e8-bfb9-e1688dd03f70",
"createdAt": "2018-02-12T11:06:44.127Z",
"updatedAt": "2018-02-12T11:06:44.127Z",
"facebookId": null, // will be the facebook user ID when connected
"email": "[email protected]",
"username": "[email protected]",
"permission": "PARTICIPANT",
"address1": null,
"address2": null,
"postcode": null,
"state": null,
"suburb": null,
"country": null,
"internal": {},
"public": null,
"private": {},
"organisationUuid": "7eb06c50-404f-11e7-bde7-06facaa3db7b",
"organisation": {
"uuid": "7eb06c50-404f-11e7-bde7-06facaa3db7b",
"name": "Raisely",
"public": null,
"createdAt": "2017-02-07T06:04:57.110Z",
"updatedAt": "2017-02-07T06:04:57.110Z",
"private": null,
"internal": {}
},
"firstName": "Tom",
"lastName": "Maitland",
"photoUrl": null,
"phoneNumber": null,
"ipNumber": "1.136.105.25",
"ipLatitude": -37.0000, // estimated from IP
"ipLongitude": 145.0000, // estimated from IP
"ipCity": "Malvern",
"ipCountry": "AU"
}
}
}
Profile Events
Profiles are the fundraising pages in a campaign. They're owned by users and can have hierarchy (parent and child profiles).
Event | Description |
---|---|
profile.created | When a new profile has been created |
profile.updated | When a profile is updated, including joining/leaving a parent profile (look for the parentUuid) or moving between users. |
profile.deleted | When a profile is deleted and taken offline. |
profile.totalUpdated | Fired when the total of a profile is updated (in either direction). |
profile.exerciseTotalUpdated | Fired when the exercise total of a profile is updated (in either direction) This can fire when one or both of exerciseTotalTime or exerciseTotal is updated. |
profile.memberAdded | When a team or organisation gets a new profile. (The new profile could be an individual or team) |
profile.joinedTeam | When a profile has a new parent |
profile.memberRemoved | When a child profile profile has a new member removed from the team |
profile.leftTeam | When a profile leaves it's current parent |
badge.awarded | When a badge is added to a profile |
badge.revoked | When a badge is removed from a profile |
When is a team not a team?
In the above webhooks joinedTeam and leftTeam , "team" refers to the parent profile.
With the new support for organisation profiles this means these webhooks could also refer to joining or leaving an organisation, to avoid disruption to existing users, we have not changed the name of the webhooks.
Webhooks and Profile Hierarchy
The webhooks for memberAdded, memberRemoved, leftTeam, joinedTeam are only sent for the specific point of change in the hierarchy. It's up to receivers of these webhooks to infer how these impact profiles further from the point of change.
For example, say you have the following profiles:
Samira (Individual Profile) is a member of Team Basketball, which is a member of Avondale School.
Samira's profile get's moved to Team Hockey, which is a member of Broadmeadow SchoolThe following webhooks will be sent (containing the following profiles)
profile.memberRemoved: Team Basketball
profile.leftTeam: Samira
profile.memberAdded: Team Hockey
profile.joinedTeam: SamiraNo other webhooks will be sent for this action.
All profile events will have the following payload:
{
"secret": "",
"data": {
"type": "profile.created|updated|deleted",
"uuid": "79d37040-c333-11e7-8f3c-c766ac08c846",
"createdAt": "2017-11-13T03:33:55.142Z",
"source": "campaign:916fdb80-c82d-11e7-8f3c-c766ac08c846",
"context": {
"referrer": "google.com",
"userAgent": "...",
"pathname": "/my-example-page",
"utmSource": "example"
},
"data": {
"uuid": "af6a3220-0fe5-11e8-bfb9-e1688dd03f70",
"path": "tommaitland",
"name": "Tom Maitland",
"currency": "AUD",
"goal": 35000, // fundraising goal in cents
"status": "ACTIVE", // ACTIVE or DELETED
"type": "INDIVIDUAL", // INDIVIDUAL or GROUP
"description": "I'm fundraising with Hop for Hope to raise money for Global Cause.",
"createdAt": "2018-02-12T11:12:59.971Z",
"updatedAt": "2018-02-12T11:12:59.971Z",
"public": {
"demo_field": "My custom field"
},
"internal": {},
"private": null,
"campaignUuid": "raisely-pk-8c047df67a79692b5eb4e0afccee9b06",
"userUuid": "cf64f3e0-0fe4-11e8-bfb9-e1688dd03f70",
"user": {
"uuid": "cf64f3e0-0fe4-11e8-bfb9-e1688dd03f70",
"createdAt": "2018-02-12T11:06:44.127Z",
"updatedAt": "2018-02-12T11:06:44.127Z",
"facebookId": null,
"email": "[email protected]",
"username": "[email protected]",
"permission": "PARTICIPANT",
"address1": null,
"address2": null,
"postcode": null,
"state": null,
"suburb": null,
"country": null,
"internal": {},
"public": null,
"private": {
"parentId": ""
},
"firstName": "Tom",
"lastName": "Maitland",
"photoUrl": null,
"phoneNumber": null,
"ipNumber": "1.136.105.25",
"ipLatitude": -37.0000,
"ipLongitude": 145.0000,
"ipCity": "Malvern",
"ipCountry": "AU"
},
"photoUrl": "",
"total": 10000,
"exerciseTotal": 6450,
"exerciseTotalTime": 320,
// Present for totalUpdated events
"lastTotal": 80000,
"totalPercent": 29,
"lastTotalPercent": 26,
// Present for exerciseTotalUpdated events
"lastExerciseTotal": 6200,
"lastExerciseTotalTime": 303
}
}
}
Order Events
Event | Description |
---|---|
order.created | A new order has been created for processing |
order.succeeded | A new order is successfully created |
All order events will have the following payload:
{
"secret": "",
"data": {
"uuid": "48f6b000-8d19-11ef-8d5e-898691de6336",
"type": "order.created|succeeded",
"createdAt": "2024-10-18T06:22:00.808Z",
"source": "campaign:bcbf2400-e171-11ec-b805-435g094b3f25",
"data": {
"uuid": "48dd5ba0-8d19-11ef-bcbe-61d0e4bb666d",
"date": "2024-10-18T06:22:00.794Z",
"createdAt": "2024-10-18T06:22:00.795Z",
"orderId": "ORD-00000",
"discountTotal": 0,
"numberOfItems": 2,
"type": "ONLINE",
"mode": "TEST",
"campaignUuid": "bcbf5400-e171-11ec-b805-435f994b3f25",
"organisationUuid": "3000b120-b9ff-11eb-9b16-db08f4600c60",
"profileUuid": "bcc1bc10-7171-11ec-b875-435f094b3f25",
"userUuid": "46819130-8d19-71ef-88b2-2d13d74dF721",
"donationUuid": "463d0e40-8d19-11ef-88b2-2d13db4da721",
"items": [
{
"uuid": "46893270-8d19-11ef-88b2-2d13db4da721",
"description": "Child",
"includeInTotals": true,
"amount": 1000,
"campaignAmount": 1000,
"type": "TICKET",
"public": null,
"quantity": 1,
"private": {},
"originalAmount": 1000,
"amountRefunded": 0,
"status": "ISSUED",
"attendance": "VALID",
"itemId": "T-8572515",
"createdAt": "2024-10-18T06:21:56.887Z",
"updatedAt": "2024-10-18T06:21:56.887Z",
"internal": {},
"parentBundleItem": null,
"productUuid": "dad1a0f0-e174-11ec-983b-9f39e8860d1b",
"product": {
"uuid": "dad1a0f0-e174-11ec-983b-9f39e8860d1b",
"public": null,
"name": "Child",
"displayName": "Child",
"description": "Description for child ticket",
"isActive": true,
"type": "TICKET",
"numIssued": 31,
"maxQuantity": null,
"price": 1000,
"validTo": null,
"validFrom": null
}
}
],
"donation": {
"uuid": "463d0e40-8d19-11ef-88b2-2d13db4da721",
"preferredName": "Tom",
"type": "ONLINE",
"method": "STRIPE_INTENT",
"currency": "USD",
"message": null,
"anonymous": false,
"amount": 1000,
"date": "2024-10-18T06:21:56.388Z",
"updatedAt": "2024-10-18T06:22:00.742Z",
"mode": "TEST",
"public": {},
"status": "OK",
"processing": "ONCE",
"gatewayVersion": null,
"createdAt": "2024-10-18T06:21:56.876Z",
"includesGiftAid": false,
"usedSwiftAid": false,
"displayTotal": 1000,
"campaignDisplayTotal": 0,
"donationTotal": 0,
"fullName": "Tom Maitland",
"email": "[email protected]",
"id": 264651,
"card": "pm_1N1n1N1n1N1n1N1n1N1n",
"customer": "cus_CJFC7o5r2ekWrF",
"fee": 135,
"total": 1135,
"private": null,
"result": {},
"userId": 398243,
"gst": 0,
"charge": "ch_1N1n1N1n1N1n1N1n1N1n",
"ipNumber": "",
"token": "pi_1N1n1N1n1N1n1N1n1N1n",
"isSuspicious": false,
"isFraud": false,
"internal": {},
"amountRefunded": 0,
"isExpress": false,
"methodType": "CARD",
"taxTotal": 0,
"orderTotal": 1000,
"taxType": null,
"taxRate": 0,
"giftAidText": null,
"phoneNumber": "1234567890",
"address1": null,
"address2": null,
"postcode": null,
"state": null,
"suburb": null,
"country": null,
"swiftAidStatus": null,
"firstName": "Tom",
"lastName": "Maitland",
"campaignFee": 0,
"campaignAmount": 0,
"campaignRaisely": 0,
"providerRaisely": 0,
"cardPreview": 4242,
"feeOptIn": true,
"publicAmount": 10,
"publicFee": 1.35,
"publicTotal": 11.35,
"currencySymbol": "$",
"receipts": []
},
"user": {
"uuid": "46819150-8d19-11ef-88b2-2d13db4da721",
"preferredName": "News",
"createdAt": "2024-10-18T06:21:56.837Z",
"updatedAt": "2024-10-18T06:21:59.267Z",
"public": null,
"status": "ACTIVE",
"facebookId": null,
"email": "[email protected]",
"username": "[email protected]",
"fullName": null,
"address1": null,
"address2": null,
"postcode": null,
"state": null,
"suburb": null,
"country": null,
"private": null,
"unsubscribedAt": null,
"isAdmin": false,
"isSamlLogin": false,
"swiftAidDonorId": null,
"swiftAidAuthExpiry": null,
"language": null,
"firstName": "Tom",
"lastName": "Maitland",
"photoUrl": null,
"phoneNumber": "1234567890"
}
}
}
}
Post Events
Raisely can inform your application when a user posts or updates a blog post on their profile.
Event | Description |
---|---|
post.created | A new blog post was created |
post.updated | A blog post was updated |
post.deleted | A blog post was deleted |
All post events will have the following payload:
{
"secret": "",
"data": {
"type": "post.created|updated",
"uuid": "79d37040-c333-11e7-8f3c-c766ac08c846",
"createdAt": "2017-11-13T03:33:55.142Z",
"source": "campaign:916fdb80-c82d-11e7-8f3c-c766ac08c846",
"data": {
"uuid": "dbfc1770-0fec-11e8-876b-e7d833a53aa0",
"title": null,
"body": "My blogpost here",
"path": "some-nice-path",
"createdAt": "2018-02-12T12:04:21.223Z",
"updatedAt": "2018-02-12T12:04:21.223Z",
"userUuid": "cf64f3e0-0fe4-11e8-bfb9-e1688dd03f70",
"photoUrl": null
}
}
}
Updated about 1 month ago