/add/<registration-data>
Add a new email, phone number, street address, or identity to a registered entity.
After registering a user, sometimes the user will move to a new address, get a new phone number, or want to add new information that wasn't available when the user first onboarded in order to go through a more stringent identity verification. Adding new information to an existing user is now possible with the /add endpoint.
The following are valid /add paths:
/add/email
: Add a single email address to your user entity./add/phone
: Add a single phone number to your user entity./add/identity
: Add an identity (social security number or employer identification number) to your user entity. Note: a user cannot have more than one of the same identity type registered to them (i.e. user cannot have 2 SSNs)./add/address
: Add a valid street address to your user entity./add/device
: Add a valid Iovation device token and session_identifier to your user entity, used in Instant ACH (beta) KYC flows.
/add/email
Requests
The request body at this endpoint is the header_msg JSON object.
header.user_handle
should have the registered handle to be verified.
Both authsignature
and usersignature
headers are required for this request. The usersignature header should be generated with a keypair registered to the user (either registered from the /register endpoint or the /register_wallet endpoint). See authentication section for more details on how to generate this signature.
email
is a required key containing the new email address to be registered to the specified user handle.
Note - We recently renamed the field auth_handle
to app_handle
. For backward compatibility, auth_handle
is still valid but has been removed from our documentation.
POST /0.2/add/email HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user"
},
"email": "[email protected]"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully added email to user your_individual_end_user.",
"email": {
"added_epoch": 1599006972,
"modified_epoch": 1599006972,
"uuid": "30c41951-1f2b-445b-8604-fa748316881d",
"email": "[email protected]"
},
"response_time_ms": "171",
"status": "SUCCESS"
}
const res = await sila.addEmail(userHandle, userPrivateKey, email);
// Success Response Object
console.log(res.statusCode); // 200
console.log(res.data.success); // true
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // Successfully added email
console.log(res.data.email.added_epoch);
console.log(res.data.email.modified_epoch);
console.log(res.data.email.uuid);
console.log(res.data.email.email);
payload = {
"user_handle": user_handle,
"email": email,
}
response = silasdk.User.addRegistrationData(
app, silasdk.RegistrationFields.EMAIL, payload, eth_private_key)
{
"status_code": 200,
"success": true,
"message": "Successfully added email to user your_individual_end_user.",
"email": {
"added_epoch": 1599006972,
"modified_epoch": 1599006972,
"uuid": "30c41951-1f2b-445b-8604-fa748316881d",
"email": "[email protected]"
},
"status": "SUCCESS"
}
UserHandleMessage user = UserHandleMessage.builder()
.userHandle("user_handle")
.userPrivateKey("user_private_key")
.build();
EmailMessage message = EmailMessage.builder()
.email("[email protected]")
.build();
ApiResponse response = api.addEmail(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
EmailResponse parsedResponse = (EmailResponse) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully added [data]
System.out.println(parsedResponse.getEmail().getAddedEpoch());
System.out.println(parsedResponse.getEmail().getModifiedEpoch());
System.out.println(parsedResponse.getEmail().getUuid());
System.out.println(parsedResponse.getEmail().getEmail());
// Email
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$email = '[email protected]';
$response = $client->addEmail($userHandle, $privateKey, $email);
// Phone
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$phone = '1234567890';
$response = $client->addPhone($userHandle, $privateKey, $phone);
// Identity
use Silamoney\Client\Domain\IdentityAlias;
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$identityAlias = IdentityAlias::SSN();
$identityValue = '543212222';
$response = $client->addIdentity($userHandle, $privateKey, $identityAlias, $identityValue);
// Address
use Silamoney\Client\Domain\Country;
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$nickname = 'new_address'; // This is a nickname that can be attached to the address object. While a required field, it can be left blank if desired.
$streetAddress1 = '123 Main St'; // This is line 1 of a street address. Post office boxes are not accepted in this field.
$city = 'Anytown'; // Name of the city where the person being verified is a current resident.
$state = 'NY'; // Name of state where verified person is a current resident.
$country = Country::US(); // Two-letter country code.
$postalCode = '12345'; // In the US, this can be the 5-digit ZIP code or ZIP+4 code.
$streetAddress2 = '' // This is line 2 of a street address (optional). This may include suite or apartment numbers.
$response = $client->addAddress($userHandle, $privateKey, $nickname, $streetAddress1, $city, $state, $country, $postalCode, $streetAddress2);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully added [data] to user user.silamoney.eth.
echo $response->getData()->email->added_epoch;
echo $response->getData()->email->modified_epoch;
echo $response->getData()->email->uuid; // The email uuid
echo $response->getData()->email->email; // [email protected]
echo $response->getData()->phone->added_epoch;
echo $response->getData()->phone->modified_epoch;
echo $response->getData()->phone->uuid; // The phone uuid
echo $response->getData()->phone->phone; // 1234567890
echo $response->getData()->identity->added_epoch;
echo $response->getData()->identity->modified_epoch;
echo $response->getData()->identity->uuid; // The identity uuid
echo $response->getData()->identity->identity_type; // SSN
echo $response->getData()->identity->identity; // 543212222
echo $response->getData()->address->added_epoch;
echo $response->getData()->address->modified_epoch;
echo $response->getData()->address->uuid; // The address uuid
echo $response->getData()->address->nickname; // new_address
echo $response->getData()->address->street_address_1; // 123 Main St
echo $response->getData()->address->street_address_2; //
echo $response->getData()->address->city; // Anytown
echo $response->getData()->address->state; // NY
echo $response->getData()->address->country; // US
echo $response->getData()->address->postal_code; // 12345
var response = api.AddEmail(userHandle, privateKey, email);
// Success Response
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (EmailResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Successfully added email
Console.WriteLine(parsedResponse.Email.AddedEpoch);
Console.WriteLine(parsedResponse.Email.ModifiedEpoch);
Console.WriteLine(parsedResponse.Email.Uuid);
Console.WriteLine(parsedResponse.Email.Email);
Responses
Status Code | success Attribute | Description |
---|---|---|
200 | true | Email was successfully added. |
400 | false | Bad request format - check validation_details for more information. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/add/phone
Requests
The request body at this endpoint is the header_msg JSON object.
header.user_handle
should have the registered handle to be verified.
Both authsignature
and usersignature
headers are required for this request. The usersignature header should be generated with a keypair registered to the user (either registered from the /register endpoint or the /register_wallet endpoint). See authentication section for more details on how to generate this signature.
phone
is a required key containing the new phone number to be registered to the specified user handle.
sms_opt_in
is an optional key containing a boolean value (if not provided, treated as false). If this is set to true, sends a confirmation SMS to the phone number being added.
Note - We recently renamed the field auth_handle
to app_handle
. For backward compatibility, auth_handle
is still valid but has been removed from our documentation.
POST /0.2/add/identity HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user"
},
"phone": "1234567890"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully added identity to user your_individual_end_user.",
"phone": {
"added_epoch": 1599007660,
"modified_epoch": 1599007660,
"uuid": "ac6435a7-d960-4b0a-9c04-adf99102ba57",
"phone": "1234567890"
},
"status": "SUCCESS"
}
const userHandle = 'handle';
const userPrivateKey = '0x...';
const phone = '1234567890';
const options = {
smsOptIn: true
}; // This properties are optional
const res = await sila.addPhone(userHandle, userPrivateKey, phone, options);
// Success Response Object
console.log(res.statusCode); // 200
console.log(res.data.success); // true
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // Successfully added phone
console.log(res.data.phone.added_epoch);
console.log(res.data.phone.modified_epoch);
console.log(res.data.phone.uuid);
console.log(res.data.phone.phone);
console.log(res.data.phone.sms_confirmation_requested);
console.log(res.data.phone.sms_confirmed);
console.log(res.data.phone.primary);
payload = {
"user_handle": user_handle,
"phone": phone,
"sms_opt_in": sms_opt_in,
}
response = silasdk.User.addRegistrationData(app, silasdk.RegistrationFields.PHONE, payload, eth_private_key)
{
"status_code": 200,
"success": true,
"message": "Successfully added phone to user your_individual_end_user.",
"phone": {
"added_epoch": 1599007660,
"modified_epoch": 1599007660,
"uuid": "ac6435a7-d960-4b0a-9c04-adf99102ba57",
"phone": "3189250987"
},
"status": "SUCCESS"
}
UserHandleMessage user = UserHandleMessage.builder()
.userHandle("user_handle")
.userPrivateKey("user_private_key")
.build();
PhoneMessage message = PhoneMessage.builder()
.phone("1234567890")
.smsOptIn(true)
.build();
ApiResponse response = api.addPhone(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
PhoneResponse parsedResponse = (PhoneResponse) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully added phone
System.out.println(parsedResponse.getPhone().getAddedEpoch());
System.out.println(parsedResponse.getPhone().getModifiedEpoch());
System.out.println(parsedResponse.getPhone().getUuid());
System.out.println(parsedResponse.getPhone().getPhone());
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$phone = '1234567890';
$smsOptIn = true;
$response = $client->addPhone($userHandle, $privateKey, $phone, $smsOptIn);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully added phone to user user.silamoney.eth.
echo $response->getData()->phone->added_epoch;
echo $response->getData()->phone->modified_epoch;
echo $response->getData()->phone->uuid; // The phone uuid
echo $response->getData()->phone->phone; // 1234567890
echo $response->getData()->phone->sms_confirmation_requested; // false
echo $response->getData()->phone->sms_confirmed = false; // false
echo $response->getData()->phone->primary; //false
var response = api.AddPhone(userHandle, privateKey, phone, smsOptIn);
// Success Response
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (PhoneResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Successfully added phone
Console.WriteLine(parsedResponse.Phone.AddedEpoch);
Console.WriteLine(parsedResponse.Phone.ModifiedEpoch);
Console.WriteLine(parsedResponse.Phone.Uuid);
Console.WriteLine(parsedResponse.Phone.Phone);
Responses
Status Code | success Attribute | Description |
---|---|---|
200 | true | Phone was successfully added. |
400 | false | Bad request format - check validation_details for more information. |
403 | false | authsignature or usersignature header was absent or incorrect.OR SMS is not enabled for the requesting app, if sms_opt_in was set to True in the request. |
/add/identity
Requests
The request body at this endpoint is the header_msg JSON object.
header.user_handle
should have the registered handle to be verified.
Both authsignature
and usersignature
headers are required for this request. The usersignature
header should be generated with a keypair registered to the user (either registered from the /register endpoint or the /register_wallet endpoint). See authentication section for more details on how to generate this signature.
Additionally, both identity_alias
and identity_value
keys are required in this request. The identity_alias
key must be either "SSN" if the entity is an individual or "EIN" if a business.
Importantly, a user cannot have more than one SSN or EIN registered to them at one time.
Note - We recently renamed the field auth_handle
to app_handle
. For backward compatibility, auth_handle
is still valid but has been removed from our documentation.
POST /0.2/add/identity HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user"
},
"identity_alias": "SSN",
"identity_value": "543212222"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully added identity to user your_individual_end_user.",
"identity": {
"added_epoch": 1599007660,
"modified_epoch": 1599007660,
"uuid": "ac6435a7-d960-4b0a-9c04-adf99102ba57",
"identity_type": "SSN",
"identity": "*2222"
},
"status": "SUCCESS"
}
payload = {
"user_handle": business_handle,
"identity_alias": identityAlias,
"identity_value": identityValue
}
response = silasdk.User.addRegistrationData(app, silasdk.RegistrationFields.IDENTITY, payload, eth_private_key)
{
"status_code": 200,
"success": true,
"message": "Successfully added identity to user your_individual_end_user.",
"identity": {
"added_epoch": 1599007660,
"modified_epoch": 1599007660,
"uuid": "ac6435a7-d960-4b0a-9c04-adf99102ba57",
"identity_alias": "SSN",
"identity_value": "*2222"
},
"status": "SUCCESS"
}
UserHandleMessage user = UserHandleMessage.builder()
.userHandle("user_handle")
.userPrivateKey("user_private_key")
.build();
IdentityMessage message = IdentityMessage.builder()
.identityAlias("SSN")
.identityValue("123452222")
.build();
ApiResponse response = api.addIdentity(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
IdentityResponse parsedResponse = (IdentityResponse) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully added identity
System.out.println(parsedResponse.getIdentity().getAddedEpoch());
System.out.println(parsedResponse.getIdentity().getModifiedEpoch());
System.out.println(parsedResponse.getIdentity().getUuid());
System.out.println(parsedResponse.getIdentity().getIdentityType());
System.out.println(parsedResponse.getIdentity().getIdentity());
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$identityAlias = IdentityAlias::SSN();
$identityValue = '543212222';
$response = $client->addIdentity($userHandle, $privateKey, $identityAlias, $identityValue);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully added identity to user user.silamoney.eth.
echo $response->getData()->identity->added_epoch;
echo $response->getData()->identity->modified_epoch;
echo $response->getData()->identity->uuid; // The identity uuid
echo $response->getData()->identity->identity_type; // SSN
echo $response->getData()->identity->identity; // 543212222
var identity = new IdentityMessage
{
IdentityAlias = "SSN",
IdentityValue = "543212222"
};
var response = api.AddIdentity(user.UserHandle, user.PrivateKey, identity);
// Success Response
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (IdentityResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Successfully added identity
Console.WriteLine(parsedResponse.Identity.AddedEpoch);
Console.WriteLine(parsedResponse.Identity.ModifiedEpoch);
Console.WriteLine(parsedResponse.Identity.Uuid);
Console.WriteLine(parsedResponse.Identity.IdentityType);
Console.WriteLine(parsedResponse.Identity.Identity);
let identity = {
alias: 'SSN',
value: '543212222',
};
let res = await Sila.addIdentity(userHandle, userPrivateKey, identity);
// Success Response Object
console.log(res.statusCode); // 200
console.log(res.data.success); // true
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // Successfully added identity
console.log(res.data.identity.added_epoch);
console.log(res.data.identity.modified_epoch);
console.log(res.data.identity.uuid);
console.log(res.data.identity.identity);
console.log(res.data.identity.identity_type);
Responses
Status Code | success Attribute | Description |
---|---|---|
200 | true | Address was successfully added. |
400 | false | Bad request format - check validation_details for more information. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/add/address
Requests
The request body at this endpoint is the header_msg JSON object.
header.user_handle
should have the registered handle to be verified.
Both authsignature
and usersignature
headers are required for this request. The usersignature header should be generated with a keypair registered to the user (either registered from the /register endpoint or the /register_wallet endpoint). See authentication section for more details on how to generate this signature.
Note - We recently renamed the field auth_handle
to app_handle
. For backward compatibility, auth_handle
is still valid but has been removed from our documentation.
Additional keys needed to register an address are as follows:
Key | Type | Description | Required |
---|---|---|---|
address_alias | string | This is a nickname that can be attached to the address object. While a required field, it can be left blank if desired. | true |
street_address_1 | string | This is line 1 of a street address. Post office boxes are not accepted in this field. | true |
street_address_2 | string | This is line 2 of a street address (optional). This may include suite or apartment numbers (though, if desired, you can put these in line 1). | false |
city | string | Name of the city where the person being verified is a current resident. | true |
state | string | Name of state where verified person is a current resident. (As of writing, this is a required field as the only accepted country is the US, but this may be expected to change in future versions.) | true |
country | string | Two-letter country code. (As of writing, the only acceptable value is US.) | true |
postal_code | string | In the US, this can be the 5-digit ZIP code or ZIP+4 code. | true |
POST /0.2/add/address HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user"
},
"address_alias": "Home Number Two",
"street_address_1": "324 Songbird Avenue",
"street_address_2": "Apt. 132",
"city": "Portland",
"state": "VA",
"postal_code": "12345",
"country": "US"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully added address to user your_individual_end_user.",
"address": {
"added_epoch": 1599008272,
"modified_epoch": 1599008272,
"uuid": "2966e38f-e713-4994-a22f-56e076963d01",
"nickname": "Home Number Two",
"street_address_1": "324 Songbird Avenue",
"street_address_2": "Apt 132",
"city": "Portland",
"state": "VA",
"country": "US",
"postal_code": "12345"
},
"status": "SUCCESS"
}
const address = {
alias: "Home Number Two",
street_address_1: "324 Songbird Avenue",
street_address_2: "Apt. 132",
city: "Portland",
state: "VA",
postal_code: "12345",
country: "US",
};
const res = await sila.addAddress(handle, key, address);
console.log(res.statusCode);
console.log(res.data.success);
console.log(res.data.status);
console.log(res.data.message);
console.log(res.data.address.added_epoch);
console.log(res.data.address.modified_epoch);
console.log(res.data.address.uuid);
console.log(res.data.address.nickname);
console.log(res.data.address.street_address_1);
console.log(res.data.address.street_address_2);
console.log(res.data.address.city);
console.log(res.data.address.state);
console.log(res.data.address.country);
console.log(res.data.address.postal_code);
payload = {
"user_handle": user_handle,
"address_alias": address_alias,
"street_address_1": street_address_1,
"street_address_2": street_address_2,
"city": city,
"state": state,
"postal_code": postal_code,
"country": country
}
response = silasdk.User.addRegistrationData(app, silasdk.RegistrationFields.ADDRESS, payload, eth_private_key)
{
"status_code": 200,
"success": true,
"message": "Successfully added address to user your_individual_end_user.",
"address": {
"added_epoch": 1599008272,
"modified_epoch": 1599008272,
"uuid": "2966e38f-e713-4994-a22f-56e076963d01",
"nickname": "Home Number Two",
"street_address_1": "324 Songbird Avenue",
"street_address_2": "Apt 132",
"city": "Portland",
"state": "VA",
"country": "US",
"postal_code": "12345"
},
"status": "SUCCESS"
}
UserHandleMessage user = UserHandleMessage.builder()
.userHandle("user_handle")
.userPrivateKey("user_private_key")
.build();
AddressMessage message = AddressMessage.builder()
.addressAlias("new address")
.streetAddress1("324 Songbird Avenue")
.streetAddress2("Apt. 132") // Optional.
.city("Portland")
.state("VA")
.country("US")
.postalCode("12345")
.build();
ApiResponse response = api.addAddress(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
AddressResponse parsedResponse = (AddressResponse) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully added address
System.out.println(parsedResponse.getAddress().getAddedEpoch());
System.out.println(parsedResponse.getAddress().getModifiedEpoch());
System.out.println(parsedResponse.getAddress().getUuid());
System.out.println(parsedResponse.getAddress().getNickname());
System.out.println(parsedResponse.getAddress().getStreetAddress1());
System.out.println(parsedResponse.getAddress().getStreetAddress2());
System.out.println(parsedResponse.getAddress().getCity());
System.out.println(parsedResponse.getAddress().getState());
System.out.println(parsedResponse.getAddress().getCountry());
System.out.println(parsedResponse.getAddress().getPostalCode());
use Silamoney\Client\Domain\Country;
$userHandle = 'user.silamoney.eth';
$privateKey = 'some private key';
$nickname = 'new_address'; // This is a nickname that can be attached to the address object. While a required field, it can be left blank if desired.
$streetAddress1 = '123 Main St'; // This is line 1 of a street address. Post office boxes are not accepted in this field.
$city = 'Anytown'; // Name of the city where the person being verified is a current resident.
$state = 'NY'; // Name of state where verified person is a current resident.
$country = Country::US(); // Two-letter country code.
$postalCode = '12345'; // In the US, this can be the 5-digit ZIP code or ZIP+4 code.
$streetAddress2 = '' // This is line 2 of a street address (optional). This may include suite or apartment numbers.
$response = $client->addAddress($userHandle, $privateKey, $nickname, $streetAddress1, $city, $state, $country, $postalCode, $streetAddress2);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully added identity to user user.silamoney.eth.
echo $response->getData()->address->added_epoch;
echo $response->getData()->address->modified_epoch;
echo $response->getData()->address->uuid; // The address uuid
echo $response->getData()->address->nickname; // new_address
echo $response->getData()->address->street_address_1; // 123 Main St
echo $response->getData()->address->street_address_2; //
echo $response->getData()->address->city; // Anytown
echo $response->getData()->address->state; // NY
echo $response->getData()->address->country; // US
echo $response->getData()->address->postal_code; // 12345
var address = new AddressMessage
{
AddressAlias = "new_address",
StreetAddress1 = "324 Songbird Avenue",
StreetAddress2 = "Apt. 132", // Optional
City = "Portland",
State = "VA",
PostalCode = "12345",
Country = "US"
};
var response = api.AddAddress(user.UserHandle, user.PrivateKey, address);
// Success Response
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (AddressResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Successfully added address
Console.WriteLine(parsedResponse.Address.AddedEpoch);
Console.WriteLine(parsedResponse.Address.ModifiedEpoch);
Console.WriteLine(parsedResponse.Address.Uuid);
Console.WriteLine(parsedResponse.Address.Nickname);
Console.WriteLine(parsedResponse.Address.StreetAddress1);
Console.WriteLine(parsedResponse.Address.StreetAddress2);
Console.WriteLine(parsedResponse.Address.City);
Console.WriteLine(parsedResponse.Address.State);
Console.WriteLine(parsedResponse.Address.Country);
Console.WriteLine(parsedResponse.Address.PostalCode);
Responses
Status Code | success Attribute | Description |
---|---|---|
200 | true | Address was successfully added. |
400 | false | Bad request format - check validation_details for more information. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/add/device
Requests
header.user_handle
should have the registered handle to be verified.
Both authsignature
and usersignature
headers are required for this request. The usersignature header should be generated with a keypair registered to the user (either registered from the /register endpoint or the /register_wallet endpoint). See authentication section for more details on how to generate this signature.
device_fingerprint
is a required key containing the Iovation device token to be used in verification.
session_identifier
is a optional key containing the sardine session id (uuid) used for Sardine Anti-fraud feature.
POST /0.2/add/device HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"auth_handle": "your_app_handle",
"user_handle": "your_individual_end_user"
},
"device_fingerprint": "longdevicetokenstringhere",
"session_identifier": "d1b40916-3761-69fe-aa54-88b8ca4d1d5c"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Device successfully registered for handle your_individual_end_user.",
"status": "SUCCESS"
}
const userHandle = "handle";
const userPrivateKey = "0x...";
const device = {
deviceFingerprint: "longdevicetokenstringhere",
};
// OR In case of Instant ACH User also add Sardine session identifier
const device = {
deviceFingerprint: "longdevicetokenstringhere",
sessionIdentifier: "valid Sardine session identifier"
};
const res = await sila.addDevice(userHandle, userPrivateKey, device);
console.log(res.statusCode); // 200
console.log(res.data.success); // true
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // Device successfully registered for handle handle.
from silasdk.users import User
from silasdk.registrationFields import RegistrationFields
payload = {
'user_handle': 'your_user_handle',
'device_fingerprint': 'your_device_fingerprint',
'session_identifier': 'your_session_identifier',
}
response = User.add_registration_data(app, silasdk.RegistrationFields.DEVICE, payload, eth_private_key)
# Success Response
{
"success":True,
"message":"Device successfully registered for handle your_user_handle.",
"status":"SUCCESS",
"status_code":200
}
$deviceAlias = 'my-device';
$deviceFingerprint = 'Device Fingerprint';
$sessionIdentifier = "session identifier";
$uuid = "some uuid";
$response = $client->addDevice($handle, $privateKey, $deviceAlias, $deviceFingerprint, $uuid, $sessionIdentifier);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Device successfully registered for handle user.silamoney.eth.
UserHandleMessage user = UserHandleMessage.builder().userHandle("user handle).userPrivateKey("user private kky").build();
Device device = new Device("12345678909876","session identifier");
ApiResponse response = api.addDevice(user, device);
DeviceResponse parsedResponse = (DeviceResponse) response.getData();
string sessionIdentifier = "using for Sardine"; // optional field
ApiResponse<object> response = api.AddDevice(userHandle, userPrivateKey, deviceFingerprint, sessionIdentifier);
// Success Response
Console.WriteLine(response.StatusCode); // 200
BaseResponse parsedResponse = (BaseResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Device successfully registered for handle your_user_handle
Responses
Status Code | success | Description |
---|---|---|
200 | true | Device token successfully added to database. |
400 | false | Bad request. Check validation_details for more information. |
401 | false | Authentication failed; authsignature or usersignature header was absent or incorrect. |
Updated about 3 years ago