Skip to main content

Vistra 卓佳註冊 API - 英屬維爾京群島

通過 Vistra Incorporations 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?