Device Ownership
...
Overview - Device Ownership
Link Based
Send Link
introduction this api returns a link to be sent via sms to the consumer that serves as a verification mechanism the generated link is sent to the mobile number provided by the customer via an sms the consumer then clicks on the link to begin the authentication & gets redirected to the target url provided requirements start the process by capturing the phone number from the consumer so you can generate the one time, fortified link for that specific number this is generally done via a web form or otherwise obtained via your consumer records please find an example of end user form below after obtaining the phone number, your web server should then initiate a request to the send instant link api endpoint as part of the request, the mobilenumber and a targeturl should be included the targeturl is the destination the end user should be delivered to after they click on the link, where we redirect the web session upon completion of network authentication it can be any custom url that fits your preferred user experience; it simply needs to be able to capture the returned vfp the fortified link will be sent via sms to the consumer into an sms body as visible in the screenshot below messaging here is key; you should highlight several things in your sms message identify the business in the message (i e , “here is your {business name} authentication link ”) warn the consumer that they should only click on the link if they are expecting it we can also recommend to customer to disconnet wi fi before cliking for better results default verbiage is "your identitiy verification journey has started, please click on the following link to verify possession of the device \<link> " api details you must first log in before sending the request the authorization header in the request must include the access token obtained from the login api call need to pass the following information providing targeturl, mobilenumber and countrycode( only valid values 'us' or 'ca') is mandatory sourceip is optional and can be used as an additional fraudulent detection indicator targeturl (required) mobilenumber (required) sourceip (optional) customsms (optional) countrycode (required) sample curl curl location 'https //api signzy us/api/v3/us kyc/send instant link' \\ \ header 'content type application/json' \\ \ header 'authorization \<auth token>' \\ \ data '{ "targeturl" "https //www google com", "mobilenumber" "2001001686", "countrycode" "us" }'curl location 'https //api preproduction signzy us/api/v3/us kyc/send instant link' \\ \ header 'content type application/json' \\ \ header 'authorization \<auth token>' \\ \ data '{ "targeturl" "https //www google com", "mobilenumber" "2001001686", "countrycode" "us" }' request body parameters parameter data type required description targeturl string yes required the url of the client server that will be called back by the phone, providing the vfp for the result call mobilenumber string yes required the phone number being queried (without leading plus sign & country code) countrycode string yes required the country code associated only valid values allowed are 'us' or 'ca' response body parameters key type description requestid string the unique identifier for the request sessionid string the session id associated with the request sample response { "result" { "requestid" "f64d44f8 3b0c 449c 8b79 9e2bbe0b2f3b", "sessionid" "f64d44f8 3b0c 449c 8b79 9e2bbe0b2f3b" } } sample error targeturl not passed { "error" { "name" "error", "message" "targeturl is required", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } mobilenumber not passed { "error" { "name" "error", "message" "mobilenumber is required", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } countrycode not passed { "error" { "name" "error", "message" "countrycode is required", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } 503 { "error" { "name" "error", "message" "request cannot be processed at this time", "status" 503, "reason" "error", "type" "conflict", "statuscode" 503 } } 400 { "error" { "name" "error", "message" "request parse failure", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 408 { "error" { "name" "error", "message" "request timeout", "status" 408, "reason" "error", "type" "conflict", "statuscode" 408 } } 400 { "error" { "name" "error", "message" "parameter is invalid", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 404 { "error" { "name" "error", "message" "cannot identify subscriber", "status" 404, "reason" "error", "type" "conflict", "statuscode" 409 } } 403 { "error" { "name" "error", "message" "subscriber is not found on the required whitelist", "status" 403, "reason" "error", "type" "conflict", "statuscode" 403 } } 400 { "error" { "name" "error", "message" "subscriber is not supported for this service", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 400 { "error" { "name" "error", "message" "apiclient or operator not enabled for this service", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 403 { "error" { "name" "error", "message" "subscriber is suspended", "status" 403, "reason" "error", "type" "conflict", "statuscode" 403 } } 403 { "error" { "name" "error", "message" "subscriber is deactivated", "status" 403, "reason" "error", "type" "conflict", "statuscode" 403 } } 403 { "error" { "name" "error", "message" "subscriber is not eligible for the service", "status" 403, "reason" "error", "type" "conflict", "statuscode" 403 } } 404 { "error" { "name" "error", "message" "no crm data available", "status" 404, "reason" "error", "type" "conflict", "statuscode" 404 } } 400 { "error" { "name" "error", "message" "carrier mismatch", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 400 { "error" { "name" "error", "message" "transaction has not completed", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 503 { "error" { "name" "error", "message" "the external provider cannot be reached", "status" 503, "reason" "error", "type" "conflict", "statuscode" 503 } } 404 { "error" { "name" "error", "message" "not a valid or active number", "status" 400, "reason" "error", "type" "conflict", "statuscode" 400 } } 409 upstream down { "error" { "name" "error", "message" "upstream down", "status" 409, "reason" "error", "type" "conflict", "statuscode" 409 } } error response parameters parameter description error this parameter contains the error error name the error name error message the error message error status s tatus of the api error reason reason for error error type type of the error error statuscode request status code from signzy getting help please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better you can reach out to us at help\@signzy com we strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively we value your feedback and are committed to making your experience smooth and enjoyable our team is dedicated to assisting you with any needs you may have thank you for choosing our services we look forward to helping you!