Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Verify Push Webhooks


(information)

Looking for Verify Events?

See this overview for how to stream Verify Events from multiple Verification channels to a webhook.


Overview

Webhooks are a general pattern for how one system can be notified of events generated by another system in real-time. In the case of Verify Push, your app backend can be notified when a Factor has been verified or when a Challenge has been approved by the Verify Push service, so that it knows to advance the user to the next step in your flow. This is more real-time and efficient than constantly polling the Verify Push API for the status of a Factor or Challenge.

To configure webhooks, follow these steps:

  1. Configure a webhook in your Verify Service via the Console UI
  2. Receive, parse, and verify a webhook
  3. Manage webhooks via Verify API (optional)

1. Configure a webhook in your Verify Service

Prerequisites

  1. Create a Verify Service.
  2. Create a REST API endpoint in your app backend that can receive HTTP POST requests.

Configure a webhook via Console UI

You can configure a webhook either via UI or API. We'll show the UI option first and then the API option later.

Webhook Events

EventDescription
*Fires when any of the following events occur.
factor.createdFires when a factor is created for the entity but is not ready to receive challenges.
factor.verifiedFires when a factor is verified and now is able to receive challenges.
factor.deletedFires when a factor was deleted from an entity.
challenge.approvedFires when a challenge is approved by the user.
challenge.deniedFires when a challenge is denied by the user.

2. Receive, parse, and verify a webhook

When Twilio makes an HTTP request to your app backend, it will include parameters related to the event that triggered it:

Webhook v2

ParameterTypeDescription
uuidStringUnique identifier for the webhook
typeStringEvent type
account_sidString, SIDThe Twilio Account SID that the Service instance belongs to
service_sidString, SIDThe Verify Service instance SID that the action relates to
entity_identityStringUnique identifier for the user
factor_sidString, SIDThe Verify Factor instance SID that the action relates to
factor_typeStringThe Type of the Verify Factor that the action relates to. Currently only push is supported
factor_friendly_nameStringThe friendly name of the Verify Factor that the action relates to
challenge_sidString, SIDThe Verify Challenge instance SID that the action relates to
challenge_detailsString, JSON StringThe Verify Challenge details provided for context and intended to be shown to the end user that the action relates to
challenge_hidden_detailsString, JSON StringThe Verify Challenge hidden details provided for context and not intended to be shown to the end user that the action relates to. If not provided during the Verify Challenge creation this parameter will be omitted
challenge_metadataString, JSON StringCustom metadata associated with the challenge. This is added by the Device/SDK directly to allow for the inclusion of device information. It is a stringified JSON with only string values eg. {"os": "Android"} up to 1024 characters in length. If not provided during the Challenge verification, this parameter will be omitted.
factor_metadataString, JSON StringCustom metadata associated with the factor. This is added by the Device/SDK directly to allow for the inclusion of device information. It is a stringified JSON with only string values eg. {"os": "Android"} up to 1024 characters in length. If not provided during the Factor creation, this parameter will be omitted.

Webhook v2 call for factor events


_17
METADATA=$(cat << EOF
_17
{
_17
"os": "Android"
_17
}
_17
EOF
_17
)
_17
_17
curl -X POST https://mywebsite.com/webhook \
_17
--data-urlencode "uuid=Unique identifier" \
_17
--data-urlencode "type=factor.verified" \
_17
--data-urlencode "account_sid=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_17
--data-urlencode "service_sid=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_17
--data-urlencode "entity_identity=ff483d1ff591898a9942916050d2ca3f" \
_17
--data-urlencode "factor_sid=YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_17
--data-urlencode "factor_type=push" \
_17
--data-urlencode "factor_friendly_name=John's Phone"
_17
--data-urlencode "factor_metadata=$METADATA"

Webhook v2 call for factors events without metadata


_10
curl -X POST https://mywebsite.com/webhook \
_10
--data-urlencode "uuid=Unique identifier" \
_10
--data-urlencode "type=factor.verified" \
_10
--data-urlencode "account_sid=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "service_sid=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "entity_identity=ff483d1ff591898a9942916050d2ca3f" \
_10
--data-urlencode "factor_sid=YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "factor_type=push" \
_10
--data-urlencode "factor_friendly_name=John's Phone"

Webhook v2 call for challenge events


_49
DETAILS=$(cat << EOF
_49
{
_49
"message": "Hi! Mr. John Doe, would you like to sign up?",
_49
"date": "2020-07-01T12:13:14Z",
_49
"fields": [
_49
{
_49
"label": "Action",
_49
"value": "Sign up in portal"
_49
}
_49
]
_49
}
_49
EOF
_49
)
_49
_49
HIDDENDETAILS=$(cat << EOF
_49
{
_49
"ip": "127.0.0.1"
_49
}
_49
EOF
_49
)
_49
_49
CHALLENGEMETADATA=$(cat << EOF
_49
{
_49
"os": "Android"
_49
}
_49
EOF
_49
)
_49
_49
FACTORMETADATA=$(cat << EOF
_49
{
_49
"os": "Android"
_49
}
_49
EOF
_49
)
_49
_49
curl -X POST https://mywebsite.com/webhook \
_49
--data-urlencode "uuid=Unique identifier" \
_49
--data-urlencode "type=challenge.approved" \
_49
--data-urlencode "account_sid=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_49
--data-urlencode "service_sid=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_49
--data-urlencode "entity_identity=ff483d1ff591898a9942916050d2ca3f" \
_49
--data-urlencode "factor_sid=YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_49
--data-urlencode "factor_type=push" \
_49
--data-urlencode "factor_friendly_name=John's Phone" \
_49
--data-urlencode "factor_metadata=$FACTORMETADATA" \
_49
--data-urlencode "challenge_sid=YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_49
--data-urlencode "challenge_details=$DETAILS" \
_49
--data-urlencode "challenge_hidden_details=$HIDDENDETAILS" \
_49
--data-urlencode "challenge_metadata=$CHALLENGEMETADATA"

Webhook v2 call for challenge events without hidden details nor metadata


_25
DETAILS=$(cat << EOF
_25
{
_25
"message": "Hi! Mr. John Doe, would you like to sign up?",
_25
"date": "2020-07-01T12:13:14Z",
_25
"fields": [
_25
{
_25
"label": "Action",
_25
"value": "Sign up in portal"
_25
}
_25
]
_25
}
_25
EOF
_25
)
_25
_25
curl -X POST https://mywebsite.com/webhook \
_25
--data-urlencode "uuid=Unique identifier" \
_25
--data-urlencode "type=challenge.approved" \
_25
--data-urlencode "account_sid=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_25
--data-urlencode "service_sid=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_25
--data-urlencode "entity_identity=ff483d1ff591898a9942916050d2ca3f" \
_25
--data-urlencode "factor_sid=YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_25
--data-urlencode "factor_type=push" \
_25
--data-urlencode "factor_friendly_name=John's Phone" \
_25
--data-urlencode "challenge_sid=YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_25
--data-urlencode "challenge_details=$DETAILS"

Webhook v1

(warning)

Warning

Webhooks v1 is legacy and may be removed in the future.

ParameterTypeDescription
uuidStringUnique identifier for the webhook
typeStringEvent type
account_sidString, SIDThe Twilio Account SID that the Service instance belongs to
service_sidString, SIDThe Verify Service instance SID that the action relates to
entity_identityStringUnique identifier for the user
factor_sidString, SIDThe Verify Factor instance SID that the action relates to
challenge_sidString, SIDThe Verify Challenge instance SID that the action relates to

Webhook v1 call for factor events


_10
curl -X POST https://mywebsite.com/webhook \
_10
--data-urlencode "uuid=Unique identifier" \
_10
--data-urlencode "type=factor.verified" \
_10
--data-urlencode "account_sid=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "service_sid=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "entity_identity=ff483d1ff591898a9942916050d2ca3f" \
_10
--data-urlencode "factor_sid=YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Webhook v1 call for challenge events


_10
curl -X POST https://mywebsite.com/webhook \
_10
--data-urlencode "uuid=Unique identifier" \
_10
--data-urlencode "type=challenge.approved" \
_10
--data-urlencode "account_sid=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "service_sid=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "entity_identity=ff483d1ff591898a9942916050d2ca3f" \
_10
--data-urlencode "factor_sid=YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
_10
--data-urlencode "challenge_sid=YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Verify the webhook's signature to confirm that it came from Twilio

  • Each HTTP request is issued with the Content-Type header application/x-www-urlencoded and signed with an X-Twilio-Signature HTTP header.
  • Twilio uses the parameters sent in the webhook and the exact URL your application supplied to Twilio to create this signature. The signature uses the HMAC-SHA1 hashing algorithm with your Twilio account's auth token as the secret key.
  • Your application can verify that this signature is correct using the server side Twilio SDKs. You will need your account's auth token, the value of the X-Twilio-Signature HTTP header that Twilio passed to you, the URL that Twilio sent the webhook to, and all of the parameters sent by Twilio.
  • For more information, check out our guide to Getting Started with Twilio Webhooks and Validating Requests are coming from Twilio . Find other webhook pages, such as a security guide and an FAQ in the Webhooks section of the docs.

3. Manage webhooks via Verify API (optional)

In addition to the Console UI, you can programmatically manage the Webhooks resource according to this API reference:


Webhook Properties

Property nameTypePIIDescription
sidSID<YW>
Not PII

The unique string that we created to identify the Webhook resource.

Pattern: ^YW[0-9a-fA-F]{32}$Min length: 34Max length: 34

service_sidSID<VA>

The unique SID identifier of the Service.

Pattern: ^VA[0-9a-fA-F]{32}$Min length: 34Max length: 34

account_sidSID<AC>

The SID of the Account that created the Service resource.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34

friendly_namestring

The string that you assigned to describe the webhook. This value should not contain PII.


event_typesarray[string]

The array of events that this Webhook is subscribed to. Possible event types: *, factor.deleted, factor.created, factor.verified, challenge.approved, challenge.denied


statusenum<string>

The webhook status. Default value is enabled. One of: enabled or disabled

Possible values:
enableddisabled

versionenum<string>

The webhook version. Default value is v2 which includes all the latest fields. Version v1 is legacy and may be removed in the future.

Possible values:
v1v2

webhook_urlstring<uri>

The URL associated with this Webhook.


webhook_methodenum<string>

The method to be used when calling the webhook's URL.

Possible values:
GETPOST

date_createdstring<date-time>

The date and time in GMT when the resource was created specified in ISO 8601 format.


date_updatedstring<date-time>

The date and time in GMT when the resource was last updated specified in ISO 8601 format.


urlstring<uri>

The absolute URL of the Webhook resource.


Create a Webhook

POST https://verify.twilio.com/v2/Services/{ServiceSid}/Webhooks

Path parameters

Property nameTypeRequiredPIIDescription
ServiceSidSID<VA>required

The unique SID identifier of the Service.

Pattern: ^VA[0-9a-fA-F]{32}$Min length: 34Max length: 34

Request body parameters

Property nameTypeRequiredPIIDescription
FriendlyNamestringrequired

The string that you assigned to describe the webhook. This value should not contain PII.


EventTypesarray[string]required

The array of events that this Webhook is subscribed to. Possible event types: *, factor.deleted, factor.created, factor.verified, challenge.approved, challenge.denied


WebhookUrlstringrequired

The URL associated with this Webhook.


Statusenum<string>Optional

The webhook status. Default value is enabled. One of: enabled or disabled

Possible values:
enableddisabled

Versionenum<string>Optional

The webhook version. Default value is v2 which includes all the latest fields. Version v1 is legacy and may be removed in the future.

Possible values:
v1v2

Create a webhook

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_22
// Download the helper library from https://www.twilio.com/docs/node/install
_22
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_22
_22
// Find your Account SID and Auth Token at twilio.com/console
_22
// and set the environment variables. See http://twil.io/secure
_22
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_22
const authToken = process.env.TWILIO_AUTH_TOKEN;
_22
const client = twilio(accountSid, authToken);
_22
_22
async function createWebhook() {
_22
const webhook = await client.verify.v2
_22
.services("VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_22
.webhooks.create({
_22
eventTypes: ["factor.created", "factor.verified"],
_22
friendlyName: "My Webhook",
_22
webhookUrl: "https://mywebsite.com/webhook",
_22
});
_22
_22
console.log(webhook.sid);
_22
}
_22
_22
createWebhook();

Output

_17
{
_17
"url": "https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks/YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"sid": "YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"service_sid": "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "My Webhook",
_17
"event_types": [
_17
"factor.deleted",
_17
"factor.verified"
_17
],
_17
"webhook_method": "POST",
_17
"webhook_url": "https://mywebsite.com/webhook",
_17
"status": "enabled",
_17
"version": "v2",
_17
"date_created": "2015-07-30T20:00:00Z",
_17
"date_updated": "2015-07-30T20:00:00Z"
_17
}


Fetch a Webhook resource

GET https://verify.twilio.com/v2/Services/{ServiceSid}/Webhooks/{Sid}

Path parameters

Property nameTypeRequiredPIIDescription
ServiceSidSID<VA>required

The unique SID identifier of the Service.

Pattern: ^VA[0-9a-fA-F]{32}$Min length: 34Max length: 34

SidSID<YW>required

The Twilio-provided string that uniquely identifies the Webhook resource to fetch.

Pattern: ^YW[0-9a-fA-F]{32}$Min length: 34Max length: 34

Fetch a Webhook

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function fetchWebhook() {
_19
const webhook = await client.verify.v2
_19
.services("VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.webhooks("YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.fetch();
_19
_19
console.log(webhook.sid);
_19
}
_19
_19
fetchWebhook();

Output

_17
{
_17
"url": "https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks/YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"sid": "YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"service_sid": "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "name",
_17
"event_types": [
_17
"factor.deleted",
_17
"factor.verified"
_17
],
_17
"webhook_method": "POST",
_17
"webhook_url": "https://owlbank.twilio.com",
_17
"status": "enabled",
_17
"version": "v2",
_17
"date_created": "2015-07-30T20:00:00Z",
_17
"date_updated": "2015-07-30T20:00:00Z"
_17
}


Read multiple Webhook resources

GET https://verify.twilio.com/v2/Services/{ServiceSid}/Webhooks

Path parameters

Property nameTypeRequiredPIIDescription
ServiceSidSID<VA>required

The unique SID identifier of the Service.

Pattern: ^VA[0-9a-fA-F]{32}$Min length: 34Max length: 34

Query parameters

Property nameTypeRequiredPIIDescription
PageSizeintegerOptional

How many resources to return in each list page. The default is 50, and the maximum is 1000.

Minimum: 1Maximum: 1000

PageintegerOptional

The page index. This value is simply for client state.

Minimum: 0

PageTokenstringOptional

The page token. This is provided by the API.

List multiple Webhooks

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listWebhook() {
_18
const webhooks = await client.verify.v2
_18
.services("VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_18
.webhooks.list({ limit: 20 });
_18
_18
webhooks.forEach((w) => console.log(w.sid));
_18
}
_18
_18
listWebhook();

Output

_12
{
_12
"webhooks": [],
_12
"meta": {
_12
"page": 0,
_12
"page_size": 50,
_12
"first_page_url": "https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks?PageSize=50&Page=0",
_12
"previous_page_url": null,
_12
"url": "https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks?PageSize=50&Page=0",
_12
"next_page_url": null,
_12
"key": "webhooks"
_12
}
_12
}


Update a Webhook resource

POST https://verify.twilio.com/v2/Services/{ServiceSid}/Webhooks/{Sid}

Path parameters

Property nameTypeRequiredPIIDescription
ServiceSidSID<VA>required

The unique SID identifier of the Service.

Pattern: ^VA[0-9a-fA-F]{32}$Min length: 34Max length: 34

SidSID<YW>required

The Twilio-provided string that uniquely identifies the Webhook resource to update.

Pattern: ^YW[0-9a-fA-F]{32}$Min length: 34Max length: 34

Request body parameters

Property nameTypeRequiredPIIDescription
FriendlyNamestringOptional

The string that you assigned to describe the webhook. This value should not contain PII.


EventTypesarray[string]Optional

The array of events that this Webhook is subscribed to. Possible event types: *, factor.deleted, factor.created, factor.verified, challenge.approved, challenge.denied


WebhookUrlstringOptional

The URL associated with this Webhook.


Statusenum<string>Optional

The webhook status. Default value is enabled. One of: enabled or disabled

Possible values:
enableddisabled

Versionenum<string>Optional

The webhook version. Default value is v2 which includes all the latest fields. Version v1 is legacy and may be removed in the future.

Possible values:
v1v2

Update a Webhook

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function updateWebhook() {
_19
const webhook = await client.verify.v2
_19
.services("VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.webhooks("YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.update({ friendlyName: "FriendlyName" });
_19
_19
console.log(webhook.sid);
_19
}
_19
_19
updateWebhook();

Output

_17
{
_17
"url": "https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Webhooks/YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"sid": "YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"service_sid": "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "FriendlyName",
_17
"event_types": [
_17
"factor.deleted",
_17
"factor.verified"
_17
],
_17
"webhook_method": "POST",
_17
"webhook_url": "https://owlbank.twilio.com",
_17
"status": "disabled",
_17
"version": "v2",
_17
"date_created": "2015-07-30T20:00:00Z",
_17
"date_updated": "2015-07-30T20:00:00Z"
_17
}


Delete a Webhook resource

DELETE https://verify.twilio.com/v2/Services/{ServiceSid}/Webhooks/{Sid}

Path parameters

Property nameTypeRequiredPIIDescription
ServiceSidSID<VA>required

The unique SID identifier of the Service.

Pattern: ^VA[0-9a-fA-F]{32}$Min length: 34Max length: 34

SidSID<YW>required

The Twilio-provided string that uniquely identifies the Webhook resource to delete.

Pattern: ^YW[0-9a-fA-F]{32}$Min length: 34Max length: 34

Delete a Webhook

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_17
// Download the helper library from https://www.twilio.com/docs/node/install
_17
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_17
_17
// Find your Account SID and Auth Token at twilio.com/console
_17
// and set the environment variables. See http://twil.io/secure
_17
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_17
const authToken = process.env.TWILIO_AUTH_TOKEN;
_17
const client = twilio(accountSid, authToken);
_17
_17
async function deleteWebhook() {
_17
await client.verify.v2
_17
.services("VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_17
.webhooks("YWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_17
.remove();
_17
}
_17
_17
deleteWebhook();


Rate this page: