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

Notifications Resource



Description

This resource is meant to be used when implementing Verify Push. It lets developers request that Verify Push retry sending a push notification for the same Challenge. Previously, there was a 1:1 mapping between a Challenge and push notification, so developers had to create a new, duplicate Challenge to resend a push notification for the same verification action (e.g. two-factor auth for a user login). They then had to deduplicate the Challenges on the client side. This implementation complexity is removed with this resource.

(warning)

Warning

The Notifications resource is currently in the Pilot maturity stage, please check with Twilio before using it in production.

(information)

Info

APNs/FCM behavior: Please be aware that APNs and FCM already have built-in queuing and retry logic for the scenario where the device was offline when the push notification was requested. When the device becomes online again, all non-expired push notifications (based on the push's time-to-live / ttl) will be sent again. We recommend that developers limit the number of retries a user can request, so that the user doesn't accidentally "over-request" and end up getting a flood of push notifications. We have also made ttl a configurable resource parameter, so developers can expire past push notifications more quickly if this becomes a problem.

Challenge expiration: Please note that the Challenge itself can still expire. Requesting a retry push notification on an expired Challenge will result in an error response, and developers will need to create a new Challenge. This won't create a deduplication problem for the client-side though, because the client can just request pending, not expired, Challenges.


Notification Properties

Property nameTypePIIDescription
sidSID<NT>
Not PII

A 34 character string that uniquely identifies this Notification.

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

account_sidSID<AC>

The unique SID identifier of the Account.

Pattern: ^AC[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

entity_sidSID<YE>

The unique SID identifier of the Entity.

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

identitystring
PII MTL: 30 days

Customer unique identity for the Entity owner of the Challenge. This identifier should be immutable, not PII, length between 8 and 64 characters, and generated by your external system, such as your user's UUID, GUID, or SID. It can only contain dash (-) separated alphanumeric characters.


challenge_sidSID<YC>

The unique SID identifier of the Challenge.

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

prioritystring

The priority of the notification. For push Challenges it's always high which sends the notification immediately, and can wake up a sleeping device.


ttlinteger

How long, in seconds, the notification is valid. Max: 5 minutes



Resend Push Notification

POST https://verify.twilio.com/v2/Services/{ServiceSid}/Entities/{Identity}/Challenges/{ChallengeSid}/Notifications

(warning)

Warning

Only 3 Push Notifications can be created per Challenge

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

Identitystringrequired

Customer unique identity for the Entity owner of the Challenge. This identifier should be immutable, not PII, length between 8 and 64 characters, and generated by your external system, such as your user's UUID, GUID, or SID. It can only contain dash (-) separated alphanumeric characters.


ChallengeSidSID<YC>required

The unique SID identifier of the Challenge.

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

Request body parameters

Property nameTypeRequiredPIIDescription
TtlintegerOptional

How long, in seconds, the notification is valid. Can be an integer between 0 and 300. Default is 300. Delivery is attempted until the TTL elapses, even if the device is offline. 0 means that the notification delivery is attempted immediately, only once, and is not stored for future delivery.

Create a Notification

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

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

Output

_11
{
_11
"sid": "NTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"service_sid": "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"entity_sid": "YEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"identity": "Identity",
_11
"challenge_sid": "YCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"date_created": "2015-07-30T20:00:00Z",
_11
"priority": "high",
_11
"ttl": 150
_11
}


Rate this page: