# Invite Callback

### Description
Once a Smart Invite has been created and sent to the recipients you will be able to receive notifications relating to it. These notifications will be sent as HTTP POST requests to the `callback_url` specified when the Smart Invite was created.

### Example callback
```http
POST {CALLBACK_URL_PATH} HTTP/1.1
Host: {CALLBACK_URL_HOST}
Content-Type: application/json; charset=utf-8
Cronofy-HMAC-SHA256: {Base64(HmacSHA256(body_bytes, CLIENT_SECRET))}

{
  "notification": {
    "type": "smart_invite",
  },
  "smart_invite": {
    "smart_invite_id": "example_id",
    "callback_url": "http://www.example.com",
    "recipients": [
      {
        "email": "example@example.com",
        "status": "tentative",
        "comment": "example comment",
        "proposal": {
          "start": {
            "time": "2026-10-24T23:00:00+02:00",
            "tzid": "Europe/Paris"
          },
          "end": {
            "time": "2026-10-24T23:00:00+02:00",
            "tzid": "Europe/Paris"
          }
        }
      },
      {
        "email": "cronofy@example.org",
        "status": "pending"
      }
    ],
    "reply": {
      "email": "example@example.com",
      "status": "tentative",
      "comment": "example comment",
      "proposal": {
        "start": {
          "time": "2026-10-24T23:00:00+02:00",
          "tzid": "Europe/Paris"
        },
        "end": {
          "time": "2026-10-24T23:00:00+02:00",
          "tzid": "Europe/Paris"
        }
      }
    }
  }
}
```

The `reply` relates to the specific response that triggered the notification.

For other recipients to see the replying recipient's updated status, they must
be sent a new ICS file for the event. This can be retrieved from the
[Invite Status](https://docs.cronofy.com/api-reference/calendar-control/smart-invites/invite-status/index.md)
endpoint.

Notifications for Smart Invites created with the superseded
[single recipient](https://docs.cronofy.com/api-reference/calendar-control/smart-invites/create-single-smart-invite/index.md)
version have a single `recipient` in place of `recipients`.

### Response parameters
##### `notification.type`

The type of notification the notification is for.

##### `smart_invite.smart_invite_id`

The `smart_invite_id` which this notification refers to.

##### `smart_invite.callback_url`

The URL within your application that Cronofy will send notifications to about user interactions with the Smart Invite.

##### `smart_invite.recipients`

An array of the recipients of the Smart Invite, each with the same attributes
as `smart_invite.recipient` below.

##### `smart_invite.recipient`

Only sent for single recipient Smart Invites.

##### `smart_invite.recipient.email`

The email address of the recipient for the Smart Invite.

##### `smart_invite.recipient.status`

The current status of the recipient. Can be one of:

- `pending` have not received any response from the recipient

- `accepted` the recipient has accepted the invitation

- `tentative` the recipient has tentatively accepted the invitation

- `declined` the recipient has declined the invitation

##### `smart_invite.recipient.comment`

Any comments provided along with the reply.

##### `smart_invite.recipient.proposal`

Details of the counter proposal received as a reply.

##### `smart_invite.recipient.proposal.start`

The proposed start for the event, an object with two attributes, `time` and `tzid`:

```json
{
  "time": "2026-10-24T23:00:00+02:00",
  "tzid": "Europe/Paris"
}
```

The `time` attribute is the [`Time`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) or [`Date`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) at which the event starts. This will be provided with an offset matching that of the corresponding `tzid`.

The `tzid` attribute specifies a [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) representing a known time zone identifier from the [IANA Time Zone Database](https://www.iana.org/time-zones).

Common examples are:

- `Etc/UTC`

- `Europe/Paris`

- `America/Chicago`

##### `smart_invite.recipient.proposal.end`

The proposed end for the event, an object with two attributes, `time` and `tzid`:

```json
{
  "time": "2026-10-24T23:00:00+02:00",
  "tzid": "Europe/Paris"
}
```

The `time` attribute is the [`Time`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) or [`Date`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) by which the event ends. This will be provided with an offset matching that of the corresponding `tzid`.

The `tzid` attribute specifies a [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) representing a known time zone identifier from the [IANA Time Zone Database](https://www.iana.org/time-zones).

Common examples are:

- `Etc/UTC`

- `Europe/Paris`

- `America/Chicago`

##### `smart_invite.reply.email`

The email address of the reply for the Smart Invite.

##### `smart_invite.reply.status`

The current status of the reply. Can be one of:

- `pending` have not received any response from the reply

- `accepted` the reply has accepted the invitation

- `tentative` the reply has tentatively accepted the invitation

- `declined` the reply has declined the invitation

##### `smart_invite.reply.comment`

Any comments provided along with the reply.

##### `smart_invite.reply.proposal`

Details of the counter proposal received as a reply.

##### `smart_invite.reply.proposal.start`

The proposed start for the event, an object with two attributes, `time` and `tzid`:

```json
{
  "time": "2026-10-24T23:00:00+02:00",
  "tzid": "Europe/Paris"
}
```

The `time` attribute is the [`Time`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) or [`Date`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) at which the event starts. This will be provided with an offset matching that of the corresponding `tzid`.

The `tzid` attribute specifies a [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) representing a known time zone identifier from the [IANA Time Zone Database](https://www.iana.org/time-zones).

Common examples are:

- `Etc/UTC`

- `Europe/Paris`

- `America/Chicago`

##### `smart_invite.reply.proposal.end`

The proposed end for the event, an object with two attributes, `time` and `tzid`:

```json
{
  "time": "2026-10-24T23:00:00+02:00",
  "tzid": "Europe/Paris"
}
```

The `time` attribute is the [`Time`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) or [`Date`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) by which the event ends. This will be provided with an offset matching that of the corresponding `tzid`.

The `tzid` attribute specifies a [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) representing a known time zone identifier from the [IANA Time Zone Database](https://www.iana.org/time-zones).

Common examples are:

- `Etc/UTC`

- `Europe/Paris`

- `America/Chicago`



---
[Read in HTML](https://docs.cronofy.com/api-reference/calendar-control/smart-invites/invite-callback/)