/document_types
List the document types for KYC supporting documentation
This doc has been updated for Priority specifications.
During the KYC onboarding process, it may be necessary to upload supporting documentation. This endpoint returns the values for name
and identity_type
to provide in /documents when uploading a doc. name
can be used as a search filter when listing uploaded documents with /list_documents.
Use the tags (if you're using Classic KYC) or the reasons (if you're using Advanced KYC) to determine the type of doc to be uploaded. These are returned by /check_kyc (Classic) or /get_verifications/verification_uuid (Advanced).
The name
and identity_type
values retrieved here for a given document type should be used when uploading with , and
Request
The request body at this endpoint is the header_msg
JSON object.
Authorization / Authentication
Apps using Access Token Authorization
Use a valid access token in a Authorization: Bearer request header.
See Authenticating with an Access Token for more details.
Apps using ECDSA Authentication
Only the authsignature
header is required for this request.
See the section on ECDSA Authentication for more detail about ECDSA signature generation.
Pagination
This endpoint supports pagination via URL query parameters:
/document_types?page=1&per_page=20
- page: page number to retrieve. default: 1
- per_page: number of items per page. default: 20, max: 100
Default page size will not include all items
Please note that this endpoint currently returns 28 document types, which is in excess of the default
per_page
value of 20. If you wish to retrieve all items in one request, use the?per_page=100
query parameter.
POST /0.2/document_types 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": "handle.silamoney.eth",
"version": "0.2",
"reference": "<your unique id>"
}
}
***
HTTP/1.1 200 OK
{
"success": true,
"status": "SUCCESS",
"response_time_ms": "171",
"reference": "<your unique id>",
"sila_reference_id": "sila_assigned_id",
"message": "Document type details returned.",
"document_types" : [
{
"name": "bank_statement",
"label": "Bank Statement",
"identity_type": "other"
},
{
"name": "doc_green_card",
"label": "Permanent Resident Card (or Green Card)",
"identity_type": "other"
},
{
"name": "doc_lease",
"label": "Lease agreement",
"identity_type": "contract"
},
{
"name": "id_drivers_license",
"label": "State-issued driver's license",
"identity_type": "license"
},
{
"name": "id_drivers_permit",
"label": "Driver's permit",
"identity_type": "license"
},
{
"name": "id_military",
"label": "Military ID",
"identity_type": "other"
}
],
"pagination": {
"returned_count": 31,
"total_count": 31,
"current_page": 1,
"total_pages": 1
}
}
// Pagination is optional
const pagination = {
page: 1,
perPage: 5,
};
const res = await sila.getDocumentTypes(pagination);
// Success Response Object
console.log(res.statusCode); // 2000
console.log(res.data.success); // true
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // Document type details returned
console.log(res.data.document_types[0].name);
console.log(res.data.document_types[0].label);
console.log(res.data.document_types[0].identity_type);
console.log(res.data.pagination); // Pagination information (returned_count, total_count, current_page, total_pages)
response = silasdk.Documents.listSupportedDocuments(app, page, perPage)
# Success Response Object
{
"success": true,
"status": "SUCCESS",
"message": "Document type details returned.",
"document_types" : [
{
"name": "doc_green_card",
"label": "Permanent Resident Card (or Green Card)",
"identity_type": "other"
},
...
],
"pagination": {
"returned_count": 28,
"total_count": 28,
"current_page": 1,
"total_pages": 1
}
}
// With no pagination
ApiResponse response = api.getDocumentTypes();
// With pagination
PaginationMessage pagination = PaginationMessage.builder()
.page(1) // Optional. The page of the request
.perPage(40) // Optional. The amount of results per page
.build();
ApiResponse response = api.getDocumentTypes(pagination);
// Success response
System.out.println(response.getStatusCode()); // 200
DocumentTypesResponse parsedResponse = (DocumentTypesResponse)response.getData();
System.out.println(parsedResponse.getSuccess()); // true
System.out.println(parsedResponse.getStatus()); // SUCCESS
System.out.println(parsedResponse.getMessage()); // Document type details returned.
System.out.println(parsedResponse.getDocumentTypes()); // List of DocumentType
System.out.println(parsedResponse.getDocumentTypes().get(0).getName()); // Document type name
System.out.println(parsedResponse.getDocumentTypes().get(0).getLabel()); // Document type label
System.out.println(parsedResponse.getDocumentTypes().get(0).getIdentityType()); // Document type identity type
System.out.println(parsedResponse.getPagination().getCurrentPage());
System.out.println(parsedResponse.getPagination().getReturnedCount());
System.out.println(parsedResponse.getPagination().getTotalPages());
System.out.println(parsedResponse.getPagination().getTotalCount());
$page = 1; // Optional. The page number to get
$perPage = 5 // Optional. The number of document types per page. The default value is 20 and the maxium is 100.
$response = $client->getDocumentTypes($page, $perPage);
echo $response->getStatusCode(); // 200
echo $response->getData()->success; // TRUE
echo $response->getData()->status; // SUCCESS
echo $response->getData()->message; // Document type details returned.
echo $response->getData()->document_types; // An array of document types (name, label, identity_type)
echo $response->getData()->pagination; // Pagination details (returned_count, total_count, current_page, total_pages)
int page = 1; // Optional. The page number to get
int perPage = 20; // Optional. The number of entities pe
var response = api.GetDocumentTypes(page, perPage);
// Success response object
Console.WriteLine(response.StatusCode); // 200
var parsedResponse = (DocumentTypesResponse)response.Data;
Console.WriteLine(parsedResponse.Success);
Console.WriteLine(parsedResponse.Status);
Console.WriteLine(parsedResponse.Message);
Console.WriteLine(parsedResponse.DocumentTypes.Count);
Console.WriteLine(parsedResponse.DocumentTypes[0].Name);
Console.WriteLine(parsedResponse.DocumentTypes[0].Label);
Console.WriteLine(parsedResponse.DocumentTypes[0].IdentityType);
Console.WriteLine(parsedResponse.Pagination.CurrentPage);
Console.WriteLine(parsedResponse.Pagination.ReturnedCount);
Console.WriteLine(parsedResponse.Pagination.TotalCount);
Console.WriteLine(parsedResponse.Pagination.TotalPages);
Responses
Status Code | success | Description |
---|---|---|
200 | true | document_type details returned |
Supported Doc Types
Full list of acceptable docs mapped to document_type
value
document_type
valueBelow is a full and complete list of supported documents that can be uploaded mapped to the name
value returned by this endpoint - use this as the value for document_type
in the /documents request.
Document Type | document_type |
---|---|
Articles of Incorporation | doc_articles_of_inc |
Bank Statement | doc_bank_statement |
Birth Certificate | vtl_birth_certificate |
Business License | doc_business_license |
Certificate of Formation | doc_cert_of_formation |
Certificate of Good Standing | doc_cert_of_good_standing |
Credit Card Statement | doc_credit_card_statement |
Divorce Decree | vtl_divorce |
Driver's License | id_drivers_license |
Driver's Permit | id_drivers_permit |
EIN Verification Letter | doc_ein_verification |
IRS Tax Return | doc_tax_return |
Lease Agreement | doc_lease |
Marriage Certificate | vtl_marriage |
Mortgage | doc_mortgage |
Name Change Court Order | doc_name_change |
Pay Stub or Earnings Statement | doc_paystub |
Social Security Card | doc_ss_card |
State ID Card | id_state |
SS4 | doc_tax_ss4 |
Tribal ID | id_tribal |
Utility Bill | doc_utility |
US Passport | id_passport |
W2 | tax_w2 |
W9 | doc_tax_w9 |
1040 Tax Return | tax_1040 |
1095 Tax Statement | tax_1095 |
1099 | tax_1099 |
List of acceptable docs by kind verification needed
A mapping of the acceptable document types by the type of verification needed.
The tag column contains the tag that would be returned by /check_kyc for Classic KYC users.
For Advanced KYC, there are approximately 130 possible reason strings. We have that full list mapped to the type of verification needed available upon request.
tag | doc_type |
---|---|
BUSINESS_ADDRESS_VALIDATION | Business entity: Articles of Incorporation Business License Certificate of Formation Certificate of Good Standing EIN Verification SS4 Utility Bill Lease Agreement Bank Statement Credit Card Statement Note: Documents must be dated within six months of the creation date of the account to be used for validation. |
ADDRESS_VALIDATION | Individual entity: Utility Bill Lease Agreement Bank Statement Credit Card Statement Driver’s License Driver's Permit Mortgage State ID Card Tribal ID Note: Documents must be dated within six months of the creation date of the account to be used for validation. |
EIN_VALIDATION | Articles of Incorporation Business License Certificate of Formation Certificate of Good Standing EIN Verification SS4 |
BUSINESS_STANDING_VALIDATION | Articles of Incorporation Business License Certificate of Formation Certificate of Good Standing EIN Verification SS4 |
TIN_VALIDATION | SSN: Social Security Card W2 Pay Stub or Earnings Statement 1099 Forms 1095 Tax Statement ITIN: W2 W9 Pay Stub or Earnings Statement U.S. Federal Tax Returns (including 1040) 1099 Forms 1095 Tax Statement |
NAME_VALIDATION | Birth Certificate Divorce Decree Driver’s License Driver's Permit Marriage Certificate Name Change Court Order Passport State ID Card Tribal ID Note: Non-U.S. Government issued ID’s are unacceptable for validation and all Id’s must be current and non-expired in order to be used |
DOB_VALIDATION | Birth Certificate Passport Driver’s License Driver's Permit State ID Card Tribal ID Note: Non-U.S. Government issued ID’s are unacceptable for validation and all Id’s must be current and non-expired in order to be used |
See Also:
Updated 20 days ago