Create a new Factor for the Entity
TODO: Resource-level docs
Create a new Factor for the Entity
Path parameters
-
The unique SID identifier of the Service.
-
Customer unique identity for the Entity owner of the Factor. 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.
Body
-
Binding.Alg string
The algorithm used when
factor_type
ispush
. Algorithm supported:ES256
-
Binding.PublicKey string
The Ecdsa public key in PKIX, ASN.1 DER format encoded in Base64.
Required when
factor_type
ispush
-
Binding.Secret string
The shared secret for TOTP factors encoded in Base32. This can be provided when creating the Factor, otherwise it will be generated.
Used when
factor_type
istotp
-
Config.Alg string
The algorithm used to derive the TOTP codes. Can be
sha1
,sha256
orsha512
. Defaults tosha1
.Used when
factor_type
istotp
Values are
sha1
,sha256
, orsha512
. -
Config.AppId string
The ID that uniquely identifies your app in the Google or Apple store, such as
com.example.myapp
. It can be up to 100 characters long.Required when
factor_type
ispush
. -
Config.CodeLength integer
Number of digits for generated TOTP codes. Must be between 3 and 8, inclusive. The default value is defined at the service level in the property
totp.code_length
. If not configured defaults to 6.Used when
factor_type
istotp
-
Config.NotificationPlatform string
The transport technology used to generate the Notification Token. Can be
apn
,fcm
ornone
.Required when
factor_type
ispush
.Values are
apn
,fcm
, ornone
. -
Config.NotificationToken string
For APN, the device token. For FCM, the registration token. It is used to send the push notifications. Must be between 32 and 255 characters long.
Required when
factor_type
ispush
. -
Config.SdkVersion string
The Verify Push SDK version used to configure the factor
Required when
factor_type
ispush
-
Config.Skew integer
The number of time-steps, past and future, that are valid for validation of TOTP codes. Must be between 0 and 2, inclusive. The default value is defined at the service level in the property
totp.skew
. If not configured defaults to 1.Used when
factor_type
istotp
-
Config.TimeStep integer
Defines how often, in seconds, are TOTP codes generated. i.e, a new TOTP code is generated every time_step seconds. Must be between 20 and 60 seconds, inclusive. The default value is defined at the service level in the property
totp.time_step
. Defaults to 30 seconds if not configured.Used when
factor_type
istotp
-
The Type of this Factor. Currently
push
andtotp
are supported.Values are
push
ortotp
. -
The friendly name of this Factor. This can be any string up to 64 characters, meant for humans to distinguish between Factors. For
factor_type
push
, this could be a device name. Forfactor_type
totp
, this value is used as the “account name” in constructing thebinding.uri
property. At the same time, we recommend avoiding providing PII. -
Custom metadata associated with the factor. This is added by the Device/SDK directly to allow for the inclusion of device information. It must be a stringified JSON with only strings values eg.
{"os": "Android"}
. Can be up to 1024 characters in length.
curl \
-X POST https://verify.twilio.com/v2/Services/{ServiceSid}/Entities/{Identity}/Factors \
--user "username:password" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'Binding.Alg=string&Binding.PublicKey=string&Binding.Secret=string&Config.Alg=sha1&Config.AppId=string&Config.CodeLength=42&Config.NotificationPlatform=apn&Config.NotificationToken=string&Config.SdkVersion=string&Config.Skew=42&Config.TimeStep=42&FactorType=push&FriendlyName=string'
{
"Binding.Alg": "string",
"Binding.PublicKey": "string",
"Binding.Secret": "string",
"Config.Alg": "sha1",
"Config.AppId": "string",
"Config.CodeLength": 42,
"Config.NotificationPlatform": "apn",
"Config.NotificationToken": "string",
"Config.SdkVersion": "string",
"Config.Skew": 42,
"Config.TimeStep": 42,
"FactorType": "push",
"FriendlyName": "string"
}
{
"Binding.Alg": "string",
"Binding.PublicKey": "string",
"Binding.Secret": "string",
"Config.Alg": "sha1",
"Config.AppId": "string",
"Config.CodeLength": 42,
"Config.NotificationPlatform": "apn",
"Config.NotificationToken": "string",
"Config.SdkVersion": "string",
"Config.Skew": 42,
"Config.TimeStep": 42,
"FactorType": "push",
"FriendlyName": "string"
}
{
"account_sid": "string",
"date_created": "2023-05-04T09:42:00+00:00",
"date_updated": "2023-05-04T09:42:00+00:00",
"entity_sid": "string",
"factor_type": "push",
"friendly_name": "string",
"identity": "string",
"service_sid": "string",
"sid": "string",
"status": "unverified",
"url": "https://example.com"
}
{
"account_sid": "string",
"date_created": "2024-05-04T09:42:00+00:00",
"date_updated": "2024-05-04T09:42:00+00:00",
"entity_sid": "string",
"factor_type": "push",
"friendly_name": "string",
"identity": "string",
"service_sid": "string",
"sid": "string",
"status": "unverified",
"url": "https://example.com"
}