Skip to main content

Vistra 卓佳注册 API - 英属维尔京群岛

通过 Vistra 卓佳 BVI 注册 API 简化 BVI 实体的注册流程。了解如何进行身份验证、上传文件,并通过详细示例和逐步指导来实现合规性的自动化。

Written by Davin Wu
Updated over 10 months ago

Vistra 卓佳 BVI 注册 API 文档

欢迎使用 Vistra API 文档。此 API 允许外部合作伙伴集成并简化 BVI 实体的注册流程。

按照以下步骤了解如何进行身份验证、上传文件和创建注册。


身份验证

目前,Vistra 卓佳 BVI 注册 API 仅限邀请制开放。

登录方法:

  1. 点击“登录 / 注册”

  2. 点击“使用邮箱登录”

  3. 输入邮箱地址

  4. 获取邮件中的验证码

  5. 输入验证码

  6. 完成后,用户将被重定向到开发者门户

使用 API 的步骤:

  1. Vistra 开发者门户中创建一个应用程序。

  2. 为您的应用程序添加 API 订阅。

  3. 生成 API 凭据(客户端 ID 和密钥)。

  4. 使用 OAuth2 流程通过这些凭据获取访问令牌。

  5. 在所有请求的授权头中包含令牌:

Authorization: Bearer <ACCESS_TOKEN>

工作流程概览

注册工作流程包括以下步骤:

  1. 生成文件上传 URL (/v1/external/documents/upload-url)。

  2. 使用预签名 URL 将文件上传至 S3。

  3. 完成文件上传 (/v1/external/documents/{id}/upload-complete) 并通知 Vistra。

  4. 对所有所需文件重复上述上传过程。

  5. 使用上传的文件 ID 创建注册 (/v1/external/incorporations)。


API 端点

1. 生成文件上传 URL

端点POST /v1/external/documents/upload-url

  • 此端点用于生成一个预签名的 S3 URL,以上传文件。

请求示例

{
"fileName": "proof_of_address.pdf",
"type": "PROOF_OF_ADDRESS"
}

响应示例

{
"documentId": "35d2b9c6-2a29-4cb4-93dd-559b38f2a3d3",
"uploadUrl": "https://cloudfront.net/yourfilehere.pdf"
}

重要注意事项:

  • 预签名 URL 有效期为 1 分钟,请确保及时上传文件。

  • 保存 documentId,后续请求中需要使用。


2. 通过 ID 完成文件上传

端点POST /v1/external/documents/{id}/upload-complete

  • 文件上传后,请使用此端点通知 Vistra 完成上传过程。

路径参数:

  • id:从“生成文件上传 URL”响应中获得的 documentId。

请求示例

{
"documentId": "35d2b9c6-2a29-4cb4-93dd-559b38f2a3d3"
}

响应示例:

{
"documentId": "35d2b9c6-2a29-4cb4-93dd-559b38f2a3d3",
"fileName": "proof_of_address.pdf",
"fileLink": "https://cloudfront.net/yourfilehere.pdf"
}


重要注意事项:

  • “生成文件上传 URL”和“通过 ID 完成文件上传”步骤必须针对每个文件进行操作。


3. 创建注册

端点POST /v1/external/incorporations

  • 在上传所有文件并记录文件 ID 后,使用此端点提交注册详情。

请求示例:

{
"countryCode": "VG",
"stateCode": "",
"reportingCurrency": "USD",
"entityName": [
"MyNewEntity"
],
"entityCnName": [
"我的新实体"
],
"entityDescription": "An investment company specializing in property development.",
"entityRegistrationNumber": "A123456",
"entityType": "LIMITED_LIABILITY_COMPANY",
"locationOfCompanyDocuments": "WITH_VISTRA",
"locationOfCompanyDocumentsAddress": {
"address1": "123 Palm Grove Avenue",
"address2": "Suite 200",
"city": "Road Town",
"countryCode": "VG",
"state": "Tortola",
"postalCode": "VG1110"
},
"licensedActivities": "string",
"companySecretary": "NO_SECRETARY",
"esFinancialYearEndDate": {
"month": 12,
"day": 31
},
"accountingFinancialYearEndDate": {
"month": 12,
"day": 31
},
"beneficialOwnershipReportings": [
"INDIVIDUAL_BENEFICIAL_OWNERSHIP"
],
"registeredAddress": {
"address1": "123 Palm Grove Avenue",
"address2": "Suite 200",
"city": "Road Town",
"countryCode": "VG",
"state": "Tortola",
"postalCode": "VG1110"
},
"sgSsicCode": "68101",
"entityDocuments": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"natureOfBusiness": "PROPERTY_INVESTMENT",
"natureOfBusinessOthers": "",
"locationOfBusinessActivity": "Road Town, Tortola, BVI",
"hasDigitalCurrencyInvolved": false,
"sourceOfFunds": "INVESTOR_CAPITAL",
"estimatedAnnualRevenue": "0_TO_50000",
"totalNumberOfShares": 1000,
"totalAmountOfShares": 100000,
"totalAmountOfSharesCurrencyCode": "USD",
"individuals": [
{
"isDirector": true,
"isShareholder": true,
"isBeneficialOwner": true,
"isCompanySecretary": false,
"isReportable": false,
"isSettlorOfTrust": false,
"isPowerHolder": false,
"powerHolderType": [
"PARTNER_MEMBER_OF_PARTNERSHIP"
],
"isVestedBeneficiary": false,
"isNominee": false,
"isEffectiveFromIncorpDate": false,
"effectiveDate": "2025-02-27T00:00:00.000Z",
"cessationDate": "2025-02-27T00:00:00.000Z",
"honorific": "string",
"formerNames": [
""
],
"title": "MR",
"firstName": "John",
"middleName": "A",
"lastName": "Doe",
"email": "[email protected]",
"identificationType": "PASSPORT_NUMBER",
"identificationNumber": "A12345678",
"nationality": "US",
"countryOfBirth": "US",
"countryOfResidency": "US",
"residencyStatus": "FOREIGNER",
"dateOfBirth": "1980-01-01",
"phoneCountryCode": "US",
"phoneNumber": "5551234567",
"address1": "456 Elm Street",
"address2": "Apartment 4B",
"addressCity": "New York",
"addressCountryCode": "US",
"addressPostalCode": "10001",
"addressState": "NY",
"proofOfIdentificationDocumentId": "123e4567-e89b-12d3-a456-426614174000",
"proofOfAddressDocumentId": "123e4567-e89b-12d3-a456-426614174001",
"passportDocumentId": "123e4567-e89b-12d3-a456-426614174002",
"driversLicenseDocumentId": "123e4567-e89b-12d3-a456-426614174003",
"interestHeldPercentage": 50,
"sourceOfWealths": [
{
"sourceOfWealth": "EMPLOYMENT",
"sourceOfWealthOthers": "string",
"wealthSourcesDescription": "string"
}
],
"wealthSourcesDescription": "Executive salary and stock options.",
"registrationOfDirectorsDocumentId": "123e4567-e89b-12d3-a456-426614174004",
"businessRegistrationCertificateDocumentId": "123e4567-e89b-12d3-a456-426614174005",
"payrollDocumentId": "123e4567-e89b-12d3-a456-426614174006",
"employmentBankStatementDocumentId": "123e4567-e89b-12d3-a456-426614174007",
"financialInformationDocumentId": "123e4567-e89b-12d3-a456-426614174008",
"investmentStatementDocumentId": "123e4567-e89b-12d3-a456-426614174009",
"rentalBankStatementDocumentId": "123e4567-e89b-12d3-a456-426614174010",
"buyAndSellAgreementDocumentId": "123e4567-e89b-12d3-a456-426614174011",
"loanAgreementDocumentId": "123e4567-e89b-12d3-a456-426614174012",
"shares": [
{
"sharePercentage": 50,
"type": "COMMON"
}
]
}
],
"corporates": [
{
"isDirector": true,
"isShareholder": true,
"isBeneficialOwner": true,
"companyName": "Acme Holdings Ltd.",
"companyCountryCode": "SG",
"companyStateCode": "SG",
"governmentBusinessId": "SG12345678",
"title": "MR",
"firstName": "James",
"middleName": "B",
"lastName": "Smith",
"email": "[email protected]",
"certificateOfIncorporationDocumentId": "123e4567-e89b-12d3-a456-426614174013",
"businessProfileDocumentId": "123e4567-e89b-12d3-a456-426614174014",
"groupOwnershipStructureChartDocumentId": "123e4567-e89b-12d3-a456-426614174015",
"previousCompanyName": "Smith Enterprises",
"interestHeldPercentage": 50,
"sourceOfWealth": "INVESTMENT_INCOME",
"sourceOfWealthOthers": "",
"wealthSourcesDescription": "Dividends from holdings.",
"registrationOfDirectorsDocumentId": "123e4567-e89b-12d3-a456-426614174016",
"businessRegistrationCertificateDocumentId": "123e4567-e89b-12d3-a456-426614174017",
"payrollDocumentId": "123e4567-e89b-12d3-a456-426614174018",
"employmentBankStatementDocumentId": "123e4567-e89b-12d3-a456-426614174019",
"financialInformationDocumentId": "123e4567-e89b-12d3-a456-426614174020",
"investmentStatementDocumentId": "123e4567-e89b-12d3-a456-426614174021",
"rentalBankStatementDocumentId": "123e4567-e89b-12d3-a456-426614174022",
"buyAndSellAgreementDocumentId": "123e4567-e89b-12d3-a456-426614174023",
"loanAgreementDocumentId": "123e4567-e89b-12d3-a456-426614174024",
"shares": [
{
"sharePercentage": 50,
"type": "PREFERRED"
}
]
}
]

响应示例:

{
"incorporationId": "9f1346c0-ee07-4ec1-b82c-b7096613a735"
}

重要注意事项:

  • 确保根据 Swagger 模式提供所有标记为必需的字段。

  • 在以 DocumentId 结尾的字段中使用前述步骤的 documentId。


附加信息

字段映射

开发者需要将其内部数据映射到对应的 Vistra API 字段。例如:

  • proofOfIdentificationDocumentId → 身份证明文件的 ID

  • proofOfAddressDocumentId → 地址证明文件的 ID

  • 其他文件字段请参阅注册请求模式。


常见错误

  • 401 Unauthorized:确保包含有效的访问令牌。

  • 400 Bad Request:检查请求负载中的缺失或无效字段。

  • 422 Unprocessable Entity:确保已完成所有所需文件的上传过程。


更新日志

  • v1.0:Vistra API 的初始版本发布。

  • v2.0:更新了字段和字段验证参数。


Did this answer your question?