/register
Attaches KYC data and specified blockchain address to an assigned handle.
This is the endpoint you will use to create a new business or individual user and attach information that will be used to verify their identity. This does not start verification of the KYC data; it only adds the data to be verified. See /request_kyc and /check_kyc for verifying KYC status.
Testing: see testing docs to set up mock data in the register endpoint to test KYC failures.
Requests
At this endpoint, you will need to complete all fields with user information and include a valid Ethereum address (must not be already used in Sila system and not a smart contract). The private key associated with the crypto_entry.crypto_address
should be used to generate usersignature headers on some subsequent calls.
This endpoint's request body is the entity_msg JSON object.
For individuals, KYC data includes:
- Full legal name
- U.S. Social Security Number (Full 9-digit SSN)
- Date of birth
- A valid street address
- An email address
- A phone number
KYC and street addresses
For individuals, the street address must be their current home/residential address. P.O. Boxes and similar cannot be used unless the individual has a valid US Military P.O. Box on a military base.
It's wise to call this out in your registration flow by prompting your users to input their current home address.
For businesses, KYB data includes:
- Legal business name
- Doing-business-as (business alias)
- Business website
- Business EIN
- Date of incorporation (birthdate)
- Business address
- Business email address
- Business phone number
- Registration state (2 letter US state abbreviation)
To register a new end-user as a business instead of an individual, the following must be sent in the request:
entity.type
is “business” (to register an individual, this can be omitted or sent as “individual”).entity.entity_name
is the legal name of the business and must not be blank.entity.business_type
is the business type name andentity.business_type_uuid
is the business type UUID (see /get_business_types). One of these fields must be populated with valid data, but not both.entity.naics_code
is the integer code that describes the business’s category and is a required field.
Other things to note:
identity.identity_alias
must be “EIN” for businesses and the identity.identity_value a US employer identification number (EIN). However, for some business types (sole proprietorships, trusts, and unincorporated associations), the identity object will not be required to pass KYB verification and can actually be omitted in this endpoint altogether.entity.doing_business_as
is an optional field that can contain a business name if it differs from its legally registered name.entity.business_website
is an optional field containing a business’s website. If KYB fails, this can be used to help complete manual review.
*entity.registration_state
is an optional field containing the 2 letter state abbreviation for what state a business is registered in. This can help speed up KYB.
Just like when registering individual users, the crypto.crypto_address
field should contain the public ETH address that will be used to authenticate signatures in requests.
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/register HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"user_handle": "user.silamoney.eth",
"app_handle": "handle.silamoney.eth",
"version": "0.2",
"crypto": "ETH",
"reference": "<your unique id>"
},
"message": "entity_msg",
"address": {
"address_alias": "home",
"street_address_1": "123 Main Street",
"city": "New City",
"state": "OR",
"country": "US",
"postal_code": "97204-1234"
},
"identity": {
"identity_alias": "SSN",
"identity_value": "123452222"
},
"contact": {
"phone": "503-123-4567",
"contact_alias": "",
"email": "[email protected]"
},
"crypto_entry": {
"crypto_alias": "Address 1",
"crypto_address": "0x1234567890abcdef1234567890abcdef12345678",
"crypto_code": "ETH"
},
"entity": {
"birthdate": "1900-01-31",
"entity_name": "Example User",
"first_name": "Example",
"last_name": "User",
"relationship": "user"
},
"device": { #optional
"device_fingerprint": "<device_fingerprint>",
"session_identifier": "<session_key uuid>"
}
}
***
HTTP/1.1 200 OK
{
"success": true,
"reference":"SOME ID",
"message":"user.silamoney.eth was successfully registered ",
"response_time_ms": "1171",
"status":"SUCCESS"
}
POST /0.2/register HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
Content-Type: application/json
{
"header": {
"created": 1234567890,
"app_handle": "your_app_handle.silamoney.eth",
"user_handle": "your_business_user.silamoney.eth",
"reference": "<your unique id>",
"crypto": "ETH",
"version": "0.2"
},
"message": "entity_msg",
"identity": {
"identity_alias": "EIN",
"identity_value": "12-1234567"
},
"address": {
"address_alias": "Office",
"street_address_1": "123 Candelabra Blvd.",
"city": "Portland",
"state": "OR",
"country": "US",
"postal_code": "97204"
},
"contact": {
"phone": "1231231234",
"email": "[email protected]"
},
"entity": {
"type": "business",
"entity_name": "Your Business Customer, Inc.",
"business_type": "corporation",
"business_website": "https://www.yourbusinesscustomer.com",
"doing_business_as": "Your Business Customer Alias Co.",
"naics_code": 721,
"registration_state": "OR"
},
"crypto_entry": {
"crypto_code": "ETH",
"crypto_address": "0x67CB...E1FB"
}
}
***
HTTP/1.1 200 OK
{
"message": "your_business_user has been successfully registered!",
"reference": "ref",
"status": "SUCCESS",
"business_uuid": "b8859415-a535-4efe-b889-650abb4bd28d"
}
// Individual user
const user = new Sila.User();
user.handle = 'user.silamoney.eth';
user.firstName = 'First';
user.lastName = 'Last';
user.addressAlias = 'your_address_alias';
user.address = '123 Main St';
user.address2 = 'Suite 216';
user.city = 'Anytown';
user.state = 'NY';
user.zip = '12345';
user.country = 'US';
user.contactAlias = 'your_contact_alias';
user.phone = '1234567890';
user.email = '[email protected]';
user.dateOfBirth = '1990-01-01';
user.ssn = '123456222';
user.cryptoAlias = 'your_crypto_alias';
user.cryptoAddress = 'The wallet blockchain address';
user.type = 'individual';
// Business user
const user = new Sila.User();
user.handle = 'user.silamoney.eth';
user.entity_name = 'test business';
user.addressAlias = 'your_address_alias';
user.address = '123 Main St';
user.address2 = 'Suite 216';
user.city = 'Anytown';
user.state = 'NY';
user.zip = '12345';
user.contactAlias = 'your_contact_alias';
user.phone = '1234567890';
user.ein = '320567252';
user.email = '[email protected]';
user.cryptoAlias = 'your_crypto_alias';
user.cryptoAddress = 'The wallet blockchain address';
user.business_type = 'corporation';
user.businessTypeUuid = 'your-business-type-uuid';
user.business_website = 'https://www.yourbusinesscustomer.com';
user.doing_business_as = 'doing business co';
user.naics_code = 721;
user.type = 'business';
user.registration_state = 'OR';
// Required for Instant ACH. This field should contain a valid Sardine session identifier.
user.deviceFingerprint = "valid uuid";
user.sessionIdentifier = "valid Sardine session identifier";
const res = await Sila.register(user);
// Success Response Object
console.log(res.statusCode); // 200
console.log(res.data.success); // true
console.log(res.data.reference); // Random reference number
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // User was successfully registered
# Individual User
payload = {
"country": "US",
"user_handle": 'user.silamoney.eth', # Required: Must not be already in use
"first_name": 'Example', # Required
"last_name": 'User', # Required
"entity_name": 'Example User', # Required
"identity_value": "123452222", # Required (SSN)
"identity_alias": "SSN",
"phone": 1234567890, # Required: Must be a valid phone number (format not enforced)
"email": "[email protected]", # Required: Must be a valid email address
"address_alias": "default",
"street_address_1": '123 Main Street', # Required: Must be a valid USPS mailing address
"city": 'New City', # Required: Must be a valid US City matching the zip
"state": 'OR', # Required: Must be a 2 character US State abbr.
"postal_code": 97204, # Required: Must be a valid US Postal Code
"crypto_address": '0x123...890', # Required: Must be a valid ethereum 20 byte address starting with 0x
"crypto_alias": "python_wallet_1",
"birthdate": "1990-05-19", # Required
"session_identifier": "<session_key uuid>" # Required only for Instant ACH V2 else optional
}
# Business user
payload = {
"country": "US",
"user_handle": business_handle,
"entity_name": 'Business name',
"identity_alias": "EIN",
"identity_value": "123452222",
"phone": 1234567890,
"email": "[email protected]",
"address_alias": "default",
"street_address_1": '1232 Main Street',
"city": 'New City 2',
"state": 'OR',
"postal_code": 97204,
"crypto_address": eth_address_3,
"crypto_alias": "python_wallet_2",
"type": "business",
"business_type": "corporation",
"registration_state": "NY",
"business_website": "https://www.yourbusinesscustomer.com",
"doing_business_as": "Your Business Customer Alias Co.",
"naics_code": 721
}
# Make sure silaApp is initialized with registered app_private_key and app_handle.
User.register(silaApp, payload)
### Success Response Object
{
status: 'SUCCESS',
success: True,
message: 'user.silamoney.eth has been submitted to KYC queue.',
reference: 'd725a285-3cda-47cb-aa55-60db70460ae4',
status_code: 200
}
### Failure Response Object
{
status: 'FAILURE',
message: 'error',
}
// Individual User
User user = new User(String userHandle, String firstName, String lastName, String streetAddress1, @Nullable String streetAddress2,
String city, String state (2 characters), String postalCode (5 or 9 digit format), String phone, String email, String identityNumber (SSN format "123-45-6222"), String cryptoAddress, Date birthdate, String country (2 characters), boolean smsOptIn, String deviceFingerprint,String sessionIdentifier);
ApiResponse response = api.register(user);
// Business User
BusinessType businessType; //Get business type with api.getBusinessTypes()
NaicsCategoryDescription naicsCategory; //Get naics category with api.getNaicsCategories()
BusinessUser user = new BusinessUser("userhandle", "Office", "123 Main Street",
"street address 2", "New City", "OR", "97204-1234", "503-123-4567", "[email protected]", "123452222", "crypto address", "entity name", businessType, "https://www.website.com", "doing business as", naicsCategory, String country (2 characters), boolean smsOptIn, String deviceFingerprint,String sessionIdentifier);
user.setRegistrationState("registration state"); // Optional for KYB flow
ApiResponse response = api.registerBusiness(user);
// Success Response
System.out.println(response.getStatusCode()); // 200
System.out.println(((BaseResponse)response.getData()).getReference());// Random reference number
System.out.println(((BaseResponse)response.getData()).getStatus()); // SUCCESS
System.out.println(((BaseResponse)response.getData()).getMessage()); // user was successfully registered.
System.out.println(((BaseResponse)response.getData()).getSuccess()); // true
// Generate Wallet
//This is a helper function that allows you to generate a wallet (private key & address) that you can then use to register a new user.
// **Important!** Sila does not custody these private keys. They should *never* be sent to us or disclosed to any third party. The private key will be used to sign all requests from the associated user for authentication purposes.
$wallet = $client->generateWallet();
print $wallet->getAddress(); // e.g. 0x9ae1e2a685c5f23981757ea0cb6f5b413aa5f29f
print $wallet->getPrivateKey(); // e.g. 0xe62049e7ca71d9223c8db6751e007ce000d686b7729792160787034e1c976c12
// You can also initialize a wallet using existing values, e.g.
$privateKey = '0xe62049e7ca71d9223c8db6751e007ce000d686b7729792160787034e1c976c12';
$address = '0x9ae1e2a685c5f23981757ea0cb6f5b413aa5f29f';
$wallet = $client->generateWallet($privateKey, $address);
print $wallet->getAddress(); // e.g. 0x9ae1e2a685c5f23981757ea0cb6f5b413aa5f29f
print $wallet->getPrivateKey(); // e.g. 0xe62049e7ca71d9223c8db6751e007ce000d686b7729792160787034e1c976c12
/* Wallet has two attributes:
- `address` is the public blockchain address that will be used when you call register()
- `private_key` is the private key associated with this address. This will _only_ be used to sign requests. **Keep this safe!** */
// For individual users
use Silamoney\Client\Domain\User;
$userHandle = 'user.silamoney.eth';
$firstName = 'Sila';
$lastName = 'Money';
$streetAddress1 = 'Some location';
$streetAddress2 = 'In the world';
$city = 'your beautiful city';
$state = 'NY'; // 2 characters code only
$postalCode = '12345'; // can be 5 or 9 digits format
$phone = '1234567';
$email = '[email protected]';
$cryptoAddress = '0xabc123abc123abc123'; // Hex-encoded blockchain address (prefixed with "0x")
$identityNumber = '123-45-6222'; // SSN format
$datetime = new DateTime();
$birthDate = $datetime->createFromFormat('Y-m-d', '1935-8-1'); // Only date part will be taken when sent to api
$deviceFingerprint = 'fingerprint'; // Valid device fingerprint.
$smsOptIn = true; // If true, a confirmation SMS is sent to the contact phone.
$cryptoAlias = "Address 1";
$addressAlias = "home";
$contactAlias = "";
$sessionIdentifier = "sardine session identifier";
// Create user object
$user = new User($userHandle, $firstName, $lastName, $streetAddress1, $streetAddress2, $city, $state, $postalCode, $phone, $email, $identityNumber, $cryptoAddress, $birthDate, $deviceFingerprint, $smsOptIn, $cryptoAlias, $addressAlias, $contactAlias, $sessionIdentifier);
// Optional parameters can be set to null
$user = new User($userHandle, $firstName, $lastName, null, null, null, null, null, null, null, null, $cryptoAddress, $birthDate);
// You can use the UserBuilder to avoid using null on optional parameters
$builder = new UserBuilder();
$user = $builder->handle($userHandle)->firstName($firstName)->lastName($lastName)->cryptoAddress($cryptoAddress)->birthDate($birthDate)->sessionIdentifier($sessionIdentifier)->build();
// Call the api
$response = $client->register($user);
// For business users
use Silamoney\Client\Domain\BusinessUser;
// Fill your data
$businessHandle = 'business.silamoney.eth';
$name = 'Your Business Inc.';
$streetAddress1 = 'Some location';
$streetAddress2 = 'In the world'; // Optional.
$city = 'your beautiful city';
$state = 'NY'; // 2 characters code only
$postalCode = '12345'; // can be 5 or 9 digits format
$phone = '123-456-7890';
$email = '[email protected]';
$identityNumber = '12-3456789'; // EIN format
$cryptoAddress = '0xabc123abc123abc123'; // Hex-encoded blockchain address (prefixed with "0x")
$naicsCode = 123; // The Naics code.
$businessType = 'Type'; // Required if $businessTypeUuid is not set. The business type name.
$businessTypeUuid = null; // Required if $businessType is not set. The business type uuid.
$doingBusinessAs = 'Your Business'; // Optional. If your business name is different from its legal name
$businessWebsite = 'http://www.yourdomain.com'; // Optional. The business website.
$deviceFingerprint = 'fingerprint'; // Valid device fingerprint.
$smsOptIn = true; // If true, a confirmation SMS is sent to the contact phone.
$cryptoAlias = "Address 1"; // optional
$addressAlias = "home"; // optional
$contactAlias = ""; // optional
$registrationState = "CA"; // optional
// Create business user object
$businessUser = new BusinessUser($businessHandle, $name, $streetAddress1, $streetAddress2, $city, $state, $postalCode, $phone, $email, $identityNumber, $cryptoAddress, $naicsCode, $businessType, $businessTypeUuid, $doingBusinessAs, $businessWebsite, $deviceFingerprint, $smsOptIn, $cryptoAlias, $addressAlias, $contactAlias, $registrationState);
// Optional parameters can be set to null
$businessUser = new BusinessUser($businessHandle, $name, null, null, null, null, null, null, null, null, $cryptoAddress, $naicsCode, $businessType, null, null, null);
// You can use the BusinessUserBuilder to avoid using null on optional parameters
$builder = new BusinessUserBuilder();
$builder->handle($userHandle)->entityName($name)->cryptoAddress($cryptoAddress)->naicsCode($naicsCode)->businessType($businessType)->registrationState('CA')->build();
// Call the api
$response = $client->registerBusiness($businessUser);
// Success 200
echo $response->getStatusCode(); // 200
echo $response->getData()->getReference(); // Random reference number
echo $response->getData()->getStatus(); // SUCCESS
echo $response->getData()->getMessage(); // User was successfully register
// Register business user
BusinessUser user = new BusinessUser
{
UserHandle = "your_business_handle",
EntityName = "Your Business Customer, Inc.",
BusinessType = "corporation",
BusinessTypeUuid = "your-business-type-uuid",
BusinessWebsite = "https://www.yourbusinesscustomer.com",
DoingBusinessAs = "Your Business Customer Alias Co.",
NaicsCode = 101,
CryptoAddress = "0x1234567890abcdef1234567890abcdef12345678",
CryptoAlias = "Address 1",
DeviceFingerprint = "test_instant_ach",
Phone = "503-123-4567",
SmsOptIn = true,
Email = "[email protected]",
ContactAlias = "",
IdentityValue = "12-1234567",
StreetAddress1 = "123 Main Street",
StreetAddress2 = "",
City = "New City",
State = "OR",
PostalCode = "97204-1234",
Country = "US",
AddressAlias = "home",
Type = "business",
SessionIdentifier = "d1b40916-3761-69fe-aa54-88b8ca4d1d5c",
RegistrationState = "DC"
};
ApiResponse<object> response = api.Register(user);
// Success Response Object
Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((BusinessUserResponse)response.Data).Reference); // Random reference number
Console.WriteLine(((BusinessUserResponse)response.Data).Status); // SUCCESS
Console.WriteLine(((BusinessUserResponse)response.Data).Message); // user was successfully registered.
Console.WriteLine(((BusinessUserResponse)response.Data).BusinessUuid); // "d1b40916-3761-69fe-aa54-88b8ca4d1d5c"
Console.WriteLine(((BusinessUserResponse)response.Data).ResponseTimeMs); // API responses time
Console.WriteLine(((BusinessUserResponse)response.Data).Success); // true
// Register business user
BusinessUser user = new BusinessUser
{
UserHandle = "your_business_handle",
EntityName = "Your Business Customer, Inc.",
BusinessType = "corporation",
BusinessTypeUuid = "your-business-type-uuid",
BusinessWebsite = "https://www.yourbusinesscustomer.com",
DoingBusinessAs = "Your Business Customer Alias Co.",
NaicsCode = 101,
CryptoAddress = "0x1234567890abcdef1234567890abcdef12345678",
CryptoAlias = "Address 1",
DeviceFingerprint = "test_instant_ach",
Phone = "503-123-4567",
SmsOptIn = true,
Email = "[email protected]",
ContactAlias = "",
IdentityValue = "12-1234567",
StreetAddress1 = "123 Main Street",
StreetAddress2 = "",
City = "New City",
State = "OR",
PostalCode = "97204-1234",
Country = "US",
AddressAlias = "home",
Type = "business",
SessionIdentifier = "d1b40916-3761-69fe-aa54-88b8ca4d1d5c",
RegistrationState = "DC"
};
ApiResponse<object> response = api.Register(user);
// Success Response Object
Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((BusinessUserResponse)response.Data).Reference); // Random reference number
Console.WriteLine(((BusinessUserResponse)response.Data).Status); // SUCCESS
Console.WriteLine(((BusinessUserResponse)response.Data).Message); // user was successfully registered.
Console.WriteLine(((BusinessUserResponse)response.Data).BusinessUuid); // "d1b40916-3761-69fe-aa54-88b8ca4d1d5c"
Console.WriteLine(((BusinessUserResponse)response.Data).ResponseTimeMs); // API responses time
Console.WriteLine(((BusinessUserResponse)response.Data).Success); // true
Register item details
Description | ||
---|---|---|
header | JSON object | Required. Requires these keys in JSON format: created app_handle user_handle. See the /check_handle endpoint for the complete list of fields in this object. |
address | JSON object | Optional, though may fail downstream if not present and KYC is required. Requires the keys as laid out below in JSON format. Registers one street address to an entity to be used in ID verification. |
identity | JSON object | Optional, though may fail downstream if not present and KYC is required. Requires the keys as laid out below in JSON format. Registers one ID to an entity (SSN, EIN) to be used in ID verification. |
contact | JSON object | Optional. Requires the keys as laid out below in JSON format. Registers email, phone to an entity to be used in ID verification. |
crypto | JSON object | Required. Requires the keys as laid out below in JSON format. Registers a blockchain address to an entity to be used as a wallet and for API authentication. |
entity | JSON object | Required. Requires the keys as laid out below in JSON format. Registers a user. |
address. address_alias | String | Optional, though may fail downstream if not present and KYC is required. Min length 0, Max length 40. May not be null. Example: home |
address. street_address_1 | String | Optional, though may fail downstream if not present and KYC is required. Min length 3, Max length 40. May not be null. Example: 920 SW 6th Ave. |
address. street_address_2 | String | Optional. Min length 3, Max 40 Example: Suite 216 |
address.city | String | Optional, though may fail downstream if not present and KYC is required. Min length 2, Max 40 Example: Portland |
address.state | String | Optional, though may fail downstream if not present and KYC is required. Requires valid 2 letter abbreviations for US states. Min length 2, Max 2 Example: OR |
address.country | String | Optional, though may fail downstream if not present and KYC is required. Requires valid 2 character country code. Only accepts US. Min length 2, Max 2 Example: US |
address.postal_code | String | Optional, though may fail downstream if not present and KYC is required. Min length 5, Max 10 Examples: 97204-1234, 97204 |
identity. identity_alias | String | Required if identity.identity_value is present otherwise optional. UPPER-CASE Examples: SSN, EIN |
identity. identity_value | String | Optional, though may fail downstream if not present and KYC is required. If identity.identity_alias is an SSN or ITIN, 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}$. Example: 123452222 |
contact.phone | String | Optional, though may fail downstream if not present and KYC is required. Min length 10, Max length 30 This value should match the regex pattern: ([0-9])?((?[0-9]{3})?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$ Example: 503-123-4567 (no country code) A US number is required for some processing types like iACH a VoIP number will be rejected down stream. |
contact.sms_opt_in | Boolean | |
contact. contact_alias | String | Optional. Min length 0, Max length 40 |
contact.email | String | Optional, though may fail downstream if not present and KYC is required. It should be a valid email address. Max length 254 Example: [email protected] |
crypto.crypto_alias | String | Optional, but recommended. Max length 40 Example: Address 1 Will be autopopulated with "default" followed by a random hex string if needed for uniqueness. |
crypto. crypto_address | String | Required. Hex-encoded blockchain address (prefixed with "0x") Must be globally unique, Min length 42, Max length 42 This value should be match the required address regex pattern: ^0x[a-fA-F0-9] {40}$ Example: 0x1234567890abcdef1234567890abcdef12345678 |
crypto.crypto_code | String | Required. UPPER-CASE, only valid input is ETH Example: ETH |
entity.birthdate | Date | Optional. Date must be in this format: YYYY-MM-DD if the entity type is individual, a person must be 18+ Birthdate cannot be a future date. Example: 1985-01-31 |
entity.entity_name | String | Required if entity.type is business, otherwise optional. Min Length 3, Max 200 Examples: Jane M. Doe, Sila Inc. |
entity.first_name | String | Optional if entity.type is business, otherwise required. Min Length 1, Max 40 Example: Jane Restricted characters: ^±!@£$%^&*_+§¡€#¢¶•ªº«<>?/:;|=)“ |
entity.last_name | String | Optional if entity.type is business, otherwise required. Min Length 1, Max 40 Example: Doe Restricted characters: ^±!@£$%^&*_+§¡€#¢¶•ªº«<>?/:;|=)“ |
entity.type | String | Optional. Choice Field: valid values are individual and business. (If not specified, other validation fields assume individual) Example: individual or business |
entity. business_type | String | Required if entity.type is business and entity. business_type_uuid is not set, otherwise optional. This field is used if entity.type is business. Get from allowed business types in /get_business_types endpoint. Required if business_type_uuid is not set. |
entity. business_type_uuid | String | Required if entity.type is business and entity. business_type is not set, otherwise optional. This field is used if entity.type is business. Must be a valid UUID4 string. Get from allowed business types in /get_business_types endpoint. Required if business_type is not set. |
entity.naics_code | Integer | Required if entity.type is business, otherwise optional. This field is used if entity.type is business. This field is used to specify a valid NAICS code. Get from allowed NAICS codes in /get_naics_categories endpoint. Example: 721 |
entity. doing_business_as | String | Optional. This field is used if entity.type is business. Fill this field out if your business name is different from its legal name. Example: Your Business |
entity. business_website | String | Optional. This field is used if entity.type is business. 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 |
entity.registration_state | String | Optional. This field is used if entity.type is business. 2 letter US state abbreviation. Options are the 50 US states and DC. |
session.identifier | String | Optional. True, if app is configured with an SMS flow, which triggers sending a confirmation SMS to the phone number in contact.phone. If no contact.phone field was provided, this is ignored. NOTE: This feature must be provisioned by app. |
device.device_fingerprint | String | Required for Instant ACH V2. This field should contain a valid session identifier in the production environment, but can be an arbitrary non-empty string in the sandbox environment. Mock value to pass the verification_status on sandbox environment "session_identifier": "ppppp-aaaa-dddd-99ce-c45944174e0c" |
Responses
Status Code | Success Attribute | Description |
---|---|---|
200 | true | Handle successfully added to system with KYC data. |
400 | false | Invalid request body format (validation_details key will have more information if this is the case), handle already in use, or blockchain address already in use. |
401 | false | authsignature header was absent or incorrect. |
Updated over 2 years ago