/update/<registration-data>
Update existing PII for a registered entity.
After registering a new end user, use this endpoint to update any incorrect information before submitting that user through KYC or, if after the first pass through KYC, you receive a verification status of documents_required
.
The following are valid /update paths:
/update/email
: Update an entity's email. Must have a valid domain./update/phone
: Update an entity's phone number./update/identity
: Update an SSN or EIN.- Note: This cannot be done after an identity verification has passed or while verification is still pending.
/update/address
: Update an entity's address.- Note: This cannot be done after an identity verification has passed or while verification is still pending. It cannot be changed for 30 days after an entity passes KYC.
/update/entity
: Update an entity's name, birthdate/incorporation date, or business-related data such as DBA and website.- Note: This cannot be done while identity verification is still pending.
Requirements
All of these endpoints except for /update/entity
require a uuid
. This can be found in the response to the /get_entity endpoint. Find the address, email, identity, or phone in the list that needs updating and pass the same uuid to this endpoint along with the new values to update it.
Re-requesting KYC after Updating
Most end user data must go through re-verification of KYC in the event an end user needs to update their data after passing KYC, regardless of the KYC status.
You DO NOT need to request KYC again if you are updating:
- Updating email
- Updating phone number
Authentication
Apps using Access Token Authorization
Use a valid access token in an Authorization: Bearer request header.
See Authenticating with an Access Token for more details.
Apps using ECDSA Authentication
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 the section on ECDSA Authentication for more detail about ECDSA signature generation.
/update/email
Request
You must pass in both uuid
and email
keys. The UUID can be obtained from the response to a request to the /get_entity endpoint.
POST /0.2/update/email HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
// if using OAuth2
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user",
"reference": "<your unique id>"
},
"uuid": "7f83044b-63c8-4d56-b107-d52fa7ae2d7a",
"email": "[email protected]"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully updated email with UUID 7f83044b-63c8-4d56-b107-d52fa7ae2d7a.",
"email": {
"added_epoch": 1599090039,
"modified_epoch": 1599092327,
"uuid": "7f83044b-63c8-4d56-b107-d52fa7ae2d7a",
"email": "[email protected]"
},
"status": "SUCCESS",
"response_time_ms": "123",
"reference": "<your unique id>",
"sila_reference_id": "sila-assigned-id"
}
const email = {
uuid: 'some-uuid-code',
email: '[email protected]',
};
const res = await sila.updateEmail(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 updated 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,
"uuid": uuid
}
response = silasdk.User.updateRegistrationData(app, RegistrationFields.EMAIL, payload, eth_private_key)
# Email
{
"status_code": 200,
"success": true,
"message": "Successfully Updated 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()
.uuid("some-uuid-code")
.email("[email protected]")
.build();
ApiResponse response = api.updateEmail(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
Response parsedResponse = (Response) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully updated [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_handle';
$privateKey = 'some private key';
$email = '[email protected]';
$uuid = 'some-uuid-code';
$response = $client->updateEmail($userHandle, $privateKey, $uuid, $email);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully updated [data] with UUID some-uuid-code.
echo $response->getData()->email->added_epoch;
echo $response->getData()->email->modified_epoch;
echo $response->getData()->email->uuid; // some-uuid-code
echo $response->getData()->email->email; // your.updated.email@domain.
var response = api.UpdateEmail(userHandle, privateKey, uuid, email);
// Success Object 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 updated email
Console.WriteLine(parsedResponse.Email.AddedEpoch);
Console.WriteLine(parsedResponse.Email.ModifiedEpoch);
Console.WriteLine(parsedResponse.Email.Uuid);
Console.WriteLine(parsedResponse.Email.Email);
Request Attributes
Key | Type | Description |
---|---|---|
header | JSON object | Required. Required keys: created - Unix epoch timestamp in seconds. Must not be future-dated and must not be dated more than 5 minutes in the past.app_handle - your app_handleuser_handle - registered entity handleOptional key: reference - Can be any string value for your own reference. If not provided, one will be assigned. |
uuid | String | Required. UUID for email object. Can be obtained from /get_entity |
String | Required. Email address to be registered to the specified user_handle. Must have a valid domain. |
Responses
Status Code | Success Attribute | Description |
---|---|---|
200 | true | Email was successfully updated. |
400 | false | Bad request format - check validation_details for more information. |
404 | false | UUID is not assigned to an email registered to the current user. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/update/phone
Request
POST /0.2/update/phone HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
// if using OAuth2
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
{
"header": {
"created": 1234567890,
"auth_handle": "your_app_handle",
"user_handle": "your_individual_end_user",
"reference": "<your unique id>"
},
"uuid": "51fb4167-83d4-467b-8f08-eb03dbd6facf",
"phone": "9871237654"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully updated phone with UUID 51fb4167-83d4-467b-8f08-eb03dbd6facf.",
"phone": {
"added_epoch": 1599090039,
"modified_epoch": 1599092327,
"uuid": "51fb4167-83d4-467b-8f08-eb03dbd6facf",
"phone": "9871237654",
"primary": false
},
"status": "SUCCESS",
"reference": "<your unique id>",
"sila_reference_id": "sila-assigned-id"
}
const phone = {
phone: '9871237654',
uuid: '51fb4167-83d4-467b-8f08-eb03dbd6facf'
}
const res = await sila.updatePhone(handle, key, phone);
// 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.primary);
payload = {
"user_handle": user_handle,
"phone": phone,
"uuid": uuid
}
response = silasdk.User.updateRegistrationData(app, silasdk.RegistrationFields.PHONE, payload, eth_private_key)
{
"status_code": 200,
"success": true,
"message": "Successfully Updated 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()
.uuid("some-uuid-code")
.phone("1234567890")
.build();
ApiResponse response = api.updatePhone(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 updated 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_handle';
$privateKey = 'some private key';
$phone = '1234567890';
$uuid = 'some-uuid-code';
$response = $client->updatePhone($userHandle, $privateKey, $uuid, $phone);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully updated phone with UUID some-uuid-code.
echo $response->getData()->phone->added_epoch;
echo $response->getData()->phone->modified_epoch;
echo $response->getData()->phone->uuid; // some-uuid-code
echo $response->getData()->phone->phone; // 1234567890
echo $response->getData()->phone->primary; //false
var response = api.UpdatePhone(userHandle, privateKey, uuid, phone);
// Success Object 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 updated phone
Console.WriteLine(parsedResponse.Phone.AddedEpoch);
Console.WriteLine(parsedResponse.Phone.ModifiedEpoch);
Console.WriteLine(parsedResponse.Phone.Uuid);
Console.WriteLine(parsedResponse.Phone.Phone);
Console.WriteLine(parsedResponse.Phone.Primary);
Request Attributes
Key | Type | Description |
---|---|---|
header | JSON object | Required. Required keys: created - Unix epoch timestamp in seconds. Must not be future-dated and must not be dated more than 5 minutes in the past.app_handle - your app_handleuser_handle - registered entity handleOptional key: reference - Can be any string value for your own reference. If not provided, one will be assigned. |
uuid | String | Required. UUID for phone object. Can be obtained from /get_entity |
String | Required. Phone number to be registered to the specified user_handle. |
Responses
Status Code | Success Attribute | Description |
---|---|---|
200 | true | Phone was successfully updated. |
400 | false | Bad request format - check validation_details for more information. |
404 | false | UUID is not associated with a phone number registered to the current user. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/update/identity
Request
POST /0.2/update/identity HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
// if using OAuth2
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
{
"header": {
"created": 1234567890,
"auth_handle": "your_app_handle",
"user_handle": "your_individual_end_user",
"reference": "<your unique id>"
},
"uuid": "15aaf8fd-f3ca-4355-a72c-ecebd54984dd",
"identity_alias": "SSN",
"identity_value": "123452233"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully updated identity with UUID 15aaf8fd-f3ca-4355-a72c-ecebd54984dd.",
"identity": {
"added_epoch": 1599090039,
"modified_epoch": 1599091288,
"uuid": "15aaf8fd-f3ca-4355-a72c-ecebd54984dd",
"identity_type": "SSN",
"identity": "*2233",
"document_id": null,
"document_name": null
},
"status": "SUCCESS",
"customer_reference_id": "<your unique id>",
"sila_reference_id": "sila_assigned_id"
}
const identity = {
uuid: '51fb4167-83d4-467b-8f08-eb03dbd6facf',
identity_alias: 'SSN',
identity_value: '123455898'
}
const res = await sila.updateIdentity(handle, key, 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_type);
console.log(res.data.identity.identity);
# Update Identity
payload = {
"user_handle": business_handle,
"identity_alias": identityAlias,
"identity_value": identityValue,
"uuid": uuid
}
response = silasdk.User.updateRegistrationData(app, silasdk.RegistrationFields.IDENTITY, payload, eth_private_key)
{
"success": true,
"message": "Successfully Updated identity to user your_individual_end_user.",
"phone": {
"Updated_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()
.uuid("some-uuid-code")
.identityAlias("SSN")
.identityValue("123452222")
.build();
ApiResponse response = api.updateIdentity(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 updated 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());
use Silamoney\Client\Domain\IdentityAlias;
$userHandle = 'user_handle';
$privateKey = 'some private key';
$identityAlias = IdentityAlias::SSN();
$identityValue = '654322222';
$uuid = 'some-uuid-code';
$response = $client->updateIdentity($userHandle, $privateKey, $uuid, $identityAlias, $identityValue);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully updated identity with UUID some-uuid-code.
echo $response->getData()->identity->added_epoch;
echo $response->getData()->identity->modified_epoch;
echo $response->getData()->identity->uuid; // some-uuid-code
echo $response->getData()->identity->identity_type; // SSN
echo $response->getData()->identity->identity; // 654322222
var identity = new IdentityMessage
{
Uuid = "some-uuid-code",
IdentityAlias = "SSN",
IdentityValue = "543212222"
};
var response = api.UpdateIdentity(user.UserHandle, user.PrivateKey, identity);
// Success Object 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 updated 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);
Request Attributes
Key | Type | Description |
---|---|---|
header | JSON object | Required. Required keys: created - Unix epoch timestamp in seconds. Must not be future-dated and must not be dated more than 5 minutes in the past.app_handle - your app_handleuser_handle - registered entity handleOptional key: reference - Can be any string value for your own reference. If not provided, one will be assigned. |
uuid | String | Required. UUID for identity object. Can be obtained from /get_entity |
identity_alias | String | Required. An entity cannot have more than one SSN or EIN registered to them. Valid values: SSN for an individual entityEIN for a business entity |
identity_value | String | Required. If identity.identity_alias is an SSN, this value should match the required simplified SSN regex pattern: ^\d{3}-?\d{2}-?\d{4}$. If identity.identity_alias is EIN, this value should match the required EIN regex pattern: ^\d{2}-?\d{7}$. |
Responses
Status Code | Success Attribute | Description |
---|---|---|
200 | true | Identity was successfully updated. |
400 | false | Bad request format - check validation_details for more information. |
404 | false | UUID is not associated with an identity linked to the current user. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/update/address
Request
POST /0.2/update/address HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
// if using OAuth2
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user",
"reference": "<your unique id>"
},
"uuid": "5de836eb-9234-42bc-b7da-5e9991ab2d4b",
"address_alias": "New nickname"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully updated address with UUID 5de836eb-9234-42bc-b7da-5e9991ab2d4b.",
"address": {
"added_epoch": 1599090039,
"modified_epoch": 1599093463,
"uuid": "5de836eb-9234-42bc-b7da-5e9991ab2d4b",
"nickname": "New nickname",
"street_address_1": "123 NW 1st Ave.",
"street_address_2": "",
"city": "Portland",
"state": "OR",
"country": "US",
"postal_code": "12345"
},
"status": "SUCCESS",
"customer_reference_id": "<your unique id>",
"sila_reference_id": "sila_assigned_id"
}
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",
uuid: "5de836eb-9234-42bc-b7da-5e9991ab2d4b",
};
const res = await sila.updateAddress(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,
"uuid": uuid
}
response = silasdk.User.updateRegistrationData(app, silasdk.RegistrationFields.ADDRESS, payload, eth_private_key)
{
"status_code": 200,
"success": true,
"message": "Successfully updated 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()
.uuid("some-uuid-code")
.addressAlias("new address")
.streetAddress1("324 Songbird Avenue")
.streetAddress2("Apt. 132") // Optional.
.city("Portland")
.state("VA")
.country("US")
.postalCode("12345")
.build();
ApiResponse response = api.updateAddress(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 updated 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_handle';
$privateKey = 'some private key';
$nickname = 'update_address'; // Optional. This is a nickname that can be attached to the address object. While a required field, it can be left blank if desired.
$streetAddress1 = '124 Main St'; // Optional. This is line 1 of a street address. Post office boxes are not accepted in this field.
$city = 'Sometown'; // Optional. Name of the city where the person being verified is a current resident.
$state = 'CA'; // Optional. Name of state where verified person is a current resident.
$country = Country::US(); // Optional. Two-letter country code.
$postalCode = '54321'; // Optional. In the US, this can be the 5-digit ZIP code or ZIP+4 code.
$streetAddress2 = '' // Optional. This is line 2 of a street address. This may include suite or apartment numbers.
$uuid = 'some-uuid-code';
$response = $client->updateAddress($userHandle, $privateKey, $uuid, $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_handle.
echo $response->getData()->address->added_epoch;
echo $response->getData()->address->modified_epoch;
echo $response->getData()->address->uuid; // some-uuid-code
echo $response->getData()->address->nickname; // update_address
echo $response->getData()->address->street_address_1; // 124 Main St
echo $response->getData()->address->street_address_2; //
echo $response->getData()->address->city; // Sometown
echo $response->getData()->address->state; // CA
echo $response->getData()->address->country; // US
echo $response->getData()->address->postal_code; // 54321
var address = new AddressMessage
{
Uuid = "some-uuid-code", // Required
AddressAlias = "new_address",
StreetAddress1 = "324 Songbird Avenue",
StreetAddress2 = "Apt. 132",
City = "Portland",
State = "VA",
PostalCode = "12345",
Country = "US"
};
var response = api.UpdateAddress(user.UserHandle, user.PrivateKey, address);
// Success Object 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 updated 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);
Request Attributes
Key | Type | Description |
---|---|---|
header | JSON object | Required. Required keys: created - Unix epoch timestamp in seconds. Must not be future-dated and must not be dated more than 5 minutes in the past.app_handle - your app_handleuser_handle - registered entity handleOptional key: reference - Can be any string value for your own reference. If not provided, one will be assigned. |
uuid | String | Required. UUID for address object. Can be obtained from /get_entity |
address_alias | String | Optional. This is a nickname that can be attached to the address object. Can be left an empty string. |
street_address_1 | String | Optional. This is line 1 of a street address. Post office boxes are not accepted in this field. |
street_address_2 | String | Optional. This is line 2 of a street address. This may include suite or apartment numbers (though, if desired, you can put these in line 1). |
city | String | Optional. Name of the city where the person being verified is a current resident. |
state | String | Optional. Two character of the US state, or DC, where verified person is a current resident. |
country | String | Optional. Two-letter country code. US only valid value |
postal_code | String | Optional. In the US, this can be the 5-digit ZIP code or ZIP+4 code. |
Responses
Status Code | Success Attribute | Description |
---|---|---|
200 | true | Address was successfully updated. |
400 | false | Bad request format - check validation_details for more information. |
404 | false | UUID is not associated with an address registered to the given user. |
403 | false | authsignature or usersignature header was absent or incorrect. |
/update/entity
Request
POST /0.2/update/entity HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
// if using OAuth2
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_end_user",
"reference": "<your unique id>"
},
"first_name": "Newfirst",
"last_name": "Newlast",
"entity_name": "New Full Name",
"birthdate": "1990-02-28"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully updated entity with handle \"your_individual_end_user\".",
"user_handle": "your_individual_end_user",
"entity_type": "individual",
"entity": {
"created_epoch": 1599090039,
"entity_name": "New Full Name",
"birthdate": "1990-02-28",
"first_name": "Newfirst",
"last_name": "Newlast"
},
"status": "SUCCESS",
"customer_reference_id": "<your unique id>",
"sila_reference_id": "sila_assigned_id"
}
// Individual
const entity = {
first_name: "NewFirst",
last_name: "NewLast",
entity_name: "NewFirst NewLast",
birthdate: "1994-01-08",
};
const res = await sila.updateEntity(handle, key, entity);
console.log(res.statusCode);
console.log(res.data.success);
console.log(res.data.status);
console.log(res.data.message);
console.log(res.data.entity_type);
console.log(res.data.user_handle);
console.log(res.data.entity.created_epoch);
console.log(res.data.entity.entity_name);
console.log(res.data.entity.birthdate);
console.log(res.data.entity.first_name);
console.log(res.data.entity.last_name);
// Business
const business = {
entity_name: "New Company",
business_type: "corporation",
naics_code: 721,
doing_business_as: "NC Ltc.",
business_website: "https://newdomain.go",
registration_state: "OR",
};
const res = await sila.updateEntity(handle, key, business);
console.log(res.statusCode);
console.log(res.data.success);
console.log(res.data.status);
console.log(res.data.message);
console.log(res.data.entity_type);
console.log(res.data.user_handle);
console.log(res.data.entity.created_epoch);
console.log(res.data.entity.entity_name);
console.log(res.data.entity.business_type);
console.log(res.data.entity.naics_code);
console.log(res.data.entity.doing_business_as);
console.log(res.data.entity.business_website);
console.log(res.data.entity.registration_state);
# Update Business Entity
payload = {
"user_handle": business_handle,
"entity_name": entity_name,
"birthdate": birthdate,
"business_type": business_type,
"naics_code": naics_code,
"doing_business_as": doing_business_as,
"business_website": business_website,
"registration_state":"NY"
}
response = silasdk.User.updateRegistrationData(app, silasdk.RegistrationFields.ENTITY, payload, eth_private_key)
# Success Response
{
"status_code": 200,
"success": true,
"message": "Successfully updated entity with handle your_business_end_user.",
"user_handle": "your_business_end_user",
"entity_type": "business",
"entity": {
"created_epoch": 1599090039,
"entity_name": "New Company",
"birthdate": "1990-02-28",
"business_type": "corporation",
"naics_code": 721,
"doing_business_as": "NC Limited",
"business_website": "https://yourwebsite.domain",
"business_uuid": "2966e38f-e713-4994-a22f-56e076963d01",
"naics_category": "Accommodation and Food Services",
"naics_subcategory": "Accommodation",
"registration_state":"NY"
},
"status": "SUCCESS"
}
// Individual entity
UserHandleMessage user = UserHandleMessage.builder()
.userHandle("user_handle")
.userPrivateKey("user_private_key")
.build();
IndividualEntityMessage message = IndividualEntityMessage.builder()
.firstName("NewFirst")
.lastName("NewLast")
.entityName("NewFirst NewLast")
.birthdate(LocalDate.of(1994, 1, 8))
.build();
ApiResponse response = api.updateEntity(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
IndividualEntityResponse parsedResponse = (IndividualEntityResponse) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully updated entity
System.out.println(parsedResponse.getUserHandle()); // user_handle
System.out.println(parsedResponse.getEntityType()); // individual
System.out.println(parsedResponse.getEntity().getCreatedEpoch());
System.out.println(parsedResponse.getEntity().getEntityName());
System.out.println(parsedResponse.getEntity().getBirthdate());
System.out.println(parsedResponse.getEntity().getFirstName());
System.out.println(parsedResponse.getEntity().getLastName());
// Business entity
UserHandleMessage user = UserHandleMessage.builder()
.userHandle("user_handle")
.userPrivateKey("user_private_key")
.build();
BusinessEntityMessage message = BusinessEntityMessage.builder()
.entityName("New Company")
.birthdate(LocalDate.now())
.businessType("corporation")
.naicsCode(721)
.doingBusinessAs("NC")
.businessWebsite("https://somedomain.go")
.registrationState("registration state") // Optional for KYB flow
.build();
ApiResponse response = api.updateEntity(user, message);
// Success response
System.out.println(response.getStatusCode()); // 200
BusinessEntityMessage parsedResponse = (BusinessEntityMessage) response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Successfully updated entity
System.out.println(parsedResponse.getUserHandle()); // user_handle
System.out.println(parsedResponse.getEntityType()); // business
System.out.println(parsedResponse.getEntity().getCreatedEpoch());
System.out.println(parsedResponse.getEntity().getEntityName());
System.out.println(parsedResponse.getEntity().getBirthdate());
System.out.println(parsedResponse.getEntity().getBusinessType());
System.out.println(parsedResponse.getEntity().getNaicsCode());
System.out.println(parsedResponse.getEntity().getNaicsCategory());
System.out.println(parsedResponse.getEntity().getNaicsSubcategory());
System.out.println(parsedResponse.getEntity().getBusinessUuid());
System.out.println(parsedResponse.getEntity().getDoingBusinessAs());
System.out.println(parsedResponse.getEntity().getBusinessWebsite());
System.out.println(parsedResponse.getEntity().getRegistrationState());
// Request - Individual
use DateTime;
$userHandle = 'user_handle';
$privateKey = 'some private key';
$entityName = 'Full Name'; // Optional. The individual full name
$birthdate = new DateTime::createFromFormat('m/d/Y', '1/8/1960'); // Optional. Only date part will be taken when sent to api
$firstName = 'First'; // Optional. The individual first name
$lastName = 'Last'; // Optional. The individual last name
$response = $client->updateEntity($userHandle, $privateKey, $firstName, $lastName, $entityName, $birthdate);
// Response 200 - Individual
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully added identity to user user_handle.
echo $response->getData()->user_handle;
echo $response->getData()->entity_type; // individual
echo $response->getData()->entity->created_epoch;
echo $response->getData()->entity->entity_name; // Full Name
echo $response->getData()->entity->birthdate; // 1960-01-08
echo $response->getData()->entity->first_name; // First
echo $response->getData()->entity->last_name; // Last
// Request - Business
use DateTime;
$userHandle = 'user_handle';
$privateKey = 'some private key';
$entityName = 'Company Name'; // Optional. The individual full name
$birthdate = new DateTime::createFromFormat('m/d/Y', '1/8/2009'); // Optional. Only date part will be taken when sent to api
$businessType = 'corporation'; // Optional. You can get this values from getBusinessTypes
$naicsCode = 721; // Optional. You can get this codes from getNaicsCategories
$doingBusinessAs = 'Public Company Name'; // Optional.
$businessWebsite = 'https://yourcompony.domain'; // Optional. Must be a valid URL
$registrationState = "LA"; // Optional
$response = $client->updateBusinessEntity($userHandle, $privateKey, $entityName, $birthdate, $businessType, $naicsCode, $doingBusinessAs, $businessWebsite, $registrationState);
// Response 200 - Business
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Successfully added identity to user user_handle.
echo $response->getData()->entity_type; // business
echo $response->getData()->entity->created_epoch;
echo $response->getData()->entity->entity_name; // Company Name
echo $response->getData()->entity->birthdate; // 2009-01-08
echo $response->getData()->entity->business_type; // corporation
echo $response->getData()->entity->naics_code; // 721
echo $response->getData()->entity->business_uuid; // The business uuid
echo $response->getData()->entity->naics_category; // The NAICS category
echo $response->getData()->entity->naics_subcategory; // The NAICS subcategory
echo $response->getData()->entity->doing_business_as; // Publick Company Name
echo $response->getData()->entity->business_website; // https://yourcompany.domain
// Request - Individual
var entity = new IndividualEntityMessage
{
FirstName = "NewFirst",
LastName = "NewLast",
EntityName = "NewFirst NewLast",
BirthDate = new DateTime(1994, 1, 8)
};
var response = api.UpdateEntity(user.UserHandle, user.PrivateKey, entity);
// Success Object Response - Individual
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (IndividualEntityResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Successfully updated entity
Console.WriteLine(parsedResponse.UserHandle); // youruserhandle
Console.WriteLine(parsedResponse.EntityType); // individual
Console.WriteLine(parsedResponse.Entity.CreatedEpoch);
Console.WriteLine(parsedResponse.Entity.EntityName);
Console.WriteLine(parsedResponse.Entity.Birthdate);
Console.WriteLine(parsedResponse.Entity.FirstName);
Console.WriteLine(parsedResponse.Entity.LastName);
POST /0.2/update/entity 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_business_end_user",
"reference": "<your unique id>"
},
"business_type": "corporation",
"entity_name": "Your Business Customer, Inc.",
"birthdate": "1975-01-15",
"naics_code": 721,
"doing_business_as": "Your Business Customer Alias Co."
"registration_state": "OR",
"business_website": "http://www.yourbusinesscustomer.com"
}
***
HTTP/1.1 200 OK
{
"success": true,
"message": "Successfully updated entity with handle \"your_business_end_user\".",
"user_handle": "your_business_end_user",
"entity_type": "business",
"entity": {
"created_epoch": 1599090039,
"business_type": "corporation",
"entity_name": "Your Business Customer, Inc.",
"birthdate": "1975-01-15",
"naics_code": 721,
"doing_business_as": "Your Business Customer Alias Co."
"registration_state": "OR",
"business_website": "http://www.yourbusinesscustomer.com"
},
"status": "SUCCESS",
"reference": "<your unique id>"
}
// Request - Business
var entity = new BusinessEntityMessage
{
EntityName = "New Company",
BusinessType = "type",
NaicsCode = 123,
DoingBusinessAs = "NC Ltd.",
BusinessWebsite = "https://domain.go",
RegistrationState="DC"
};
var response = api.UpdateEntity(user.UserHandle, user.PrivateKey, entity);
// Success Object Response - Business
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (BusinessEntityResponse)response.Data;
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.Message); // Successfully updated entity
Console.WriteLine(parsedResponse.UserHandle); // youruserhandle
Console.WriteLine(parsedResponse.EntityType); // business
Console.WriteLine(parsedResponse.Entity.CreatedEpoch);
Console.WriteLine(parsedResponse.Entity.EntityName);
Console.WriteLine(parsedResponse.Entity.BusinessType);
Console.WriteLine(parsedResponse.Entity.NaicsCode);
Console.WriteLine(parsedResponse.Entity.BusinessUuid);
Console.WriteLine(parsedResponse.Entity.NaicsCategory);
Console.WriteLine(parsedResponse.Entity.NaicsSubcategory);
Console.WriteLine(parsedResponse.Entity.DoingBusinessAs);
Console.WriteLine(parsedResponse.Entity.BusinessWebsite);
Console.WriteLine(parsedResponse.Entity.RegistrationState); // DC
Request Attributes
Key | Type | Description | Individual or Business Entity |
---|---|---|---|
header | JSON object | Required. Required keys: created - Unix epoch timestamp in seconds. Must not be future-dated and must not be dated more than 5 minutes in the past.app_handle - your app_handleuser_handle - registered entity handleOptional key: reference - Can be any string value for your own reference. If not provided, one will be assigned. | Both |
uuid | String | Required. UUID for address object. Can be obtained from /get_entity | Both |
first_name | String | Optional. | Individual only |
last_name | String | Optional. | Individual only |
entity_name | String | Optional. Full name of individual or legal name of business. | Both |
birthdate | Date | Optional. Date must be in this format: YYYY-MM-DD If the entity type is individual, the end user must be 18+. Birthdate cannot be a future date. | Both |
business_type | String | Optional. Do NOT include if business_type_uuid has a value. Get from allowed business types in /get_business_types endpoint. | Business only |
naics_code | Integer | Optional. This field is used to specify a valid NAICS code. Get from allowed NAICS codes in /get_naics_categories endpoint. | Business only |
doing_business_as | String | Optional. Input if business name differs from legally registered name. | Business only |
business_website | String | Optional. Must be in URI format. This value should match the regex pattern: ^(?:[a-z0-9.-+])://(?:[^\s:@/]+ (?::[^\s:@/])?@)?(?:(?:25[0-5]|2[0-4]\d|[0-1]?\d?\d)(?:.(?:25 [0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|[[0-9a-f:.]+]|(a-z\xA1-\uFFFF0- 9?(?:.(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(?<!-)).(?!-)(?:[a-z\xA1- \uFFFF-]{2,63}|xn--[a-z0-9]{1,59})(?<!-).?|localhost))(?::\d {2,5})?(?:[/?#][^\s])?\Z Example: http://www.yourdomain.com | Business only |
registration_state | String | Optional. 2 letter US state abbreviation. Options are the 50 US states and DC. | Business only |
Responses
Status Code | Success Attribute | Description |
---|---|---|
200 | true | Entity was successfully updated. |
400 | false | Bad request format - check validation_details for more information. |
403 | false | authsignature or usersignature header was absent or incorrect. |
Updated 6 days ago