Vistra 卓佳 BVI 註冊 API
歡迎使用 Vistra API 文件。此 API 允許外部合作夥伴整合並簡化 BVI 實體的註冊流程。
按照以下步驟了解如何進行身份驗證、上傳文件及建立註冊。
身份驗證
目前,Vistra 卓佳 BVI 註冊 API 僅限邀請制開放。
登入方法:
點擊「登入 / 註冊」
點擊「使用電子郵件登入」
輸入電子郵件地址
從郵件中獲取驗證碼
輸入驗證碼
完成後,使用者將被重定向至開發者入口網站
使用 API 的步驟:
在 Vistra 開發者入口網站中創建一個應用程式。
生成 API 憑據(客戶端 ID 和密鑰)。
使用 OAuth2 流程透過這些憑據獲取訪問令牌。
在所有請求的授權標頭中包含令牌:
Authorization: Bearer <ACCESS_TOKEN>
工作流程概覽
註冊工作流程包括以下步驟:
生成文件上傳 URL (/v1/external/documents/upload-url)。
使用預簽名 URL 將文件上傳至 S3。
完成文件上傳 (/v1/external/documents/{id}/upload-complete) 並通知 Vistra。
對所有所需文件重複上述上傳過程。
使用上傳的文件 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": "BVI",
"stateCode": "VG",
"reportingCurrency": "USD",
"entityName": [
"MyNewEntity"
],
"entityCnName": [
"我的新实体"
],
"entityDescription": "An investment company specializing in property development.",
"entityType": "LIMITED_LIABILITY_COMPANY",
"registeredAddress": {
"address1": "123 Palm Grove Avenue",
"address2": "Suite 200",
"city": "Road Town",
"countryCode": "BVI",
"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": "ZERO_TO_FIFTY_THOUSAND",
"totalNumberOfShares": 1000,
"totalAmountOfShares": 100000,
"totalAmountOfSharesCurrencyCode": "USD",
"individuals": [
{
"isDirector": true,
"isShareholder": true,
"isBeneficialOwner": true,
"title": "MR",
"firstName": "John",
"middleName": "A",
"lastName": "Doe",
"email": "[email protected]",
"identificationType": "PASSPORT_NUMBER",
"identificationNumber": "A12345678",
"nationality": "American",
"countryOfBirth": "USA",
"countryOfResidency": "USA",
"residencyStatus": "FOREIGNER",
"dateOfBirth": "1980-01-01",
"phoneCountryCode": "+1",
"phoneNumber": "5551234567",
"address1": "456 Elm Street",
"address2": "Apartment 4B",
"addressCity": "New York",
"addressCountryCode": "USA",
"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,
"sourceOfWealth": "EMPLOYMENT",
"sourceOfWealthOthers": "",
"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 的初始版本發布。