/unlink_business_member
Unlinks individuals as having roles for a registered business.
If an individual is erroneously linked to a business, this endpoint allows the individual to be unlinked. Note that the only controlling officer linked to a business cannot be unlinked; another individual must first be linked as a controlling officer.
Unlinking beneficial owners also sets an expiration on a business certification (30 days are allotted to re-certify).
Requests
header.user_handle
should have either the registered individual entity to be unlinked or the administrator performing the unlinking. (If an administrator is performing this action, specify the registered individual to be unlinked in the member_handle
key.)
header.business_handle
should have the registered business entity to be unlinked.
Either key role
or role_uuid
may be specified in the request body to identify a role to be unassigned from a business member. The role_uuid
comes from the response to /get_business_roles.
If you would prefer to have an applicant unlink business members, you can have an “administrator” member authenticate with the usersignature
and assign other users to business roles using the optional member_handle
key. Otherwise, the authenticated user is unassigned the specified business role if no member_handle
is sent in the request.
Authorization / Authentication
header.user_handle
should have the registered handle to be verified.
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
Headers authsignature
, usersignature
, and businesssignature
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). The businesssignature
header should be generated with a keypair registered to the business 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.
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/unlink_business_member HTTP/1.1
sandbox.silamoney.com
Content-Type: application/json
businesssignature: [GENERATED BUSINESSSIGNATURE HEX STRING HERE]
// if using OAuth2
Authorization: Bearer [GENERATED JWT TOKEN HERE]
// if using ECDSA
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle",
"user_handle": "your_individual_user_handle",
"business_handle": "your_business_handle",
"reference": "<your unique id>"
},
"role": "administrator"
}
***
HTTP/1.1 200 OK
{
"success": true,
"status": "SUCCESS",
"response_time_ms": "171",
"message": "User \"your_individual_user_handle\" has been unlinked as a Administrator for business Your Business Co.",
"role": "administrator",
"reference": "<your unique id>"
}
const res = await sila.unlinkBusinessMember(
user_handle,
user_private_key,
business_handle,
business_private_key,
role
);
//success response object
console.log(res.statusCode); // 200
console.log(res.data.success); // TRUE
console.log(res.data.message); // Response message
console.log(res.data.status);
console.log(res.data.role);
payload = {
"user_handle": "user_handle",
"business_handle": "business_handle",
"role": "administrator",
}
response = BusinessOperations.unlinkBusinessMember(app, payload, user_private_key, business_private_key)
# Success response
{
"status_code": 200,
"status": "SUCCESS",
"success": true,
"message": "User \"another_user_handle\" has been unlinked as a Controlling Officer for business Sila, Inc.",
"role": "controlling_officer"
}
BusinessRole businessRole = ((GetBusinessRolesResponse)api.getBusinessRoles().getData()).get(0);
float ownershipStake = 0.30;
ApiResponse response = api.unlinkBusinessMember("user handle", "user private key", "business handle", "business private key", businessRole);
// Success Object Response
System.out.println(response.getStatusCode()); // 200
System.out.println(((LinkBusinessOperationResponse) response.getData()).getMessage())// user has been unliked
System.out.println(((LinkBusinessOperationResponse) response.getData()).getRole());// business role
System.out.println(((LinkBusinessOperationResponse) response.getData()).isSuccess());// true
System.out.println(((LinkBusinessMemberResponse) response.getData()).getStatus());// SUCCESS
var responseRole = api.GetBusinessRoles();
Console.WriteLine(responseRole.StatusCode); // 200
var ResponseRole = (BusinessRolesResponse)responseRole.Data;
BusinessRole businessRole = new BusinessRole();
businessRole.Name = ResponseRole.BusinessRoles[0].Name; // 0 index for "controlling_officer", 1 index for "beneficial_owner", 2 index for "administrator"
businessRole.Label = ResponseRole.BusinessRoles[0].Label; // 0 index for "Controlling Officer", 1 index for "Beneficial Owner", 2 index for "Administrator"
businessRole.Uuid = ResponseRole.BusinessRoles[0].Uuid; // 0 index for "9a350e54-0ce9-48fc-b437-9c7b7cfdd1ac", 1 index for "0adb5421-3395-4f81-9e26-dd8d5abae590", 2 index for "977bc3be-8f79-4e83-9df1-29525c06f23e"
ApiResponse<object> response = api.UnlinkBusinessMember(userHandle, userPrivateKey, businessHandle, businessPrivateKey, businessRole);
// Success object response
Console.WriteLine(response.StatusCode); // 200
var parsedData = (LinkOperationResponse)response.Data;
Console.WriteLine(parsedData.Message); // Response message
Console.WriteLine(parsedData.Status); // Response status
// For business roles see [Get Business Roles](#get-business-roles)
$businessHandle = 'business.silamoney.eth';
$businessPrivateKey = 'some private key';
$userHandle = 'user.silamoney.eth'; // The user handle to apply the role to
$userPrivateKey = 'some other private key';
$businessRole = 'administrator'; // Required if $businessRoleUuid is not set. The business role to set
$businessRoleUuid = null; // Required if $businessRole is not set. The business role uuid to set
$response = $client->unlinkBusinessMember($businessHandle, $businessPrivateKey, $userHandle, $userPrivateKey, $businessRole, $businessRoleUuid);
// Response 200
echo $response->getStatusCode(); // 200
echo $response->getData()->success;
echo $response->getData()->status;
echo $response->getData()->message; // User has been unlinked as a... for business...
echo $response->getData()->role; // The role name unliked
const res = await sila.unlinkBusinessMember(user_handle, user_private_key, business_handle, business_private_key, role);
// Success response object
console.log(res.statusCode); // 200
console.log(res.data.success); // TRUE
console.log(res.data.message); // Response message
Responses
Status Code | success Attribute | Description |
---|---|---|
200 | true | The business and specified individual have been successfully unlinked. |
400 | false | Bad request format - check validation_details for more information. |
403 | false | authsignature , businesssignature , or usersignature header was absent or incorrect. |
Updated about 1 year ago