/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.


Did this page help you?