# Callback Versions

On October 5, 2021, Twilio Frontline introduced V2 of its callbacks. This new version of callbacks includes additional security measures and updates to make callback behavior more consistent with other Twilio webhooks.

Any account that created its SSO configuration after October 5, 2021 will automatically use V2 callbacks.

Any account that created its SSO configuration prior to October 5, 2021 will use V1 callbacks until the account upgrades to V2.

V1 callbacks will continue to be supported until April 27, 2022. On April 27, 2022, any account that has not been manually upgraded will be automatically upgraded. **V2 callbacks include breaking changes.** If you upgrade to V2 without also updating your integration service, functionality related to inbound/outbound routing, CRM integration, and templates will be impacted.

Once you've made the following updates to your integration service, you can upgrade to V2 callbacks from within the Frontline console.

## Required changes to support V2 callbacks

> \[!NOTE]
>
> If you are using [Frontline Integration Service Example](https://github.com/twilio/frontline-demo-service), you can see the changes in [Github](https://github.com/twilio/frontline-demo-service/commit/5e2b33daa11ce0a715f422b35a9efd91884db125).

### 1. Callback validation

V2 callbacks will no longer have a **Token** body parameter or **X-Twilio-Token** header. Instead, all callback requests will have an `X-Twilio-Signature` header like other Twilio Callbacks. See [Callbacks Security](/docs/frontline/callbacks-security) for more information and tutorials.

### 2. Content Type of requests

V2 Callbacks will have request body parameters in **application/x-www-form-urlencoded** form similar with other Twilio Callbacks instead of **application/json**.\
Please update your Frontline Integration Service to support **application/x-www-form-urlencoded** body for Frontline Callbacks. Note that this is only for request parameters, and the expected response type is still **application/json**. If you are using the [Frontline Integration Service Example](https://github.com/twilio/frontline-demo-service), it is already supported, and no additional action is needed.

### 3. Location is now a body parameter

**Location** parameter will be sent as a body parameter instead of a query parameter, as it was in V1 callbacks. It has also been renamed from `location` to `Location` to match the format of other parameters.

### 4. GetProxyAddress request parameters

Instead of the **Channel** object, **GetProxyAddress** now has **ChannelType** and **ChannelValue**. These are strings and should match the [Channel object](/docs/frontline/data-transfer-objects#channel).

**Request parameters:**

| **Parameter name** | **Type** | **Description**                                                     |
| ------------------ | -------- | ------------------------------------------------------------------- |
| CustomerId         | string   | Customer ID provided by the server                                  |
| ChannelType        | string   | The channel type. It can be `sms`, `whatsapp`, `chat`               |
| ChannelValue       | string   | The channel address. Example: `+123456789` or `whatsapp:+123456789` |

See [GetProxyAddress](/docs/frontline/outgoing-conversations#getproxyaddress) for more information.
