---
updatedAt: 2025-05-19T21:13:17.000Z
agentTools:
  projectIndex: https://docs.vopay.com/llms.txt
---

# Account Onboarding

```curl cURL
curl --request POST \
     --url https://earthnode-dev.vopay.com/api/v2/partner/account \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data 'AccountID={PartnerAccountID}' \
     --data 'Key={APIKey}' \
     --data 'Signature={Signature}' \
     --data 'Name=E Corp' \
     --data EmailAddress=john@ecorp.com \
     --data Country=CA
     
     curl --request GET \
     --url 'https://earthnode-dev.vopay.com/api/v2/account/business-types?AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D' \
     --header 'accept: application/json'
     
     curl --request POST \
     --url https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data 'AccountID={AccountID}' \
     --data 'Key={APIKey}' \
     --data 'Signature={Signature}' \
     --data 'Address=123 Fake St' \
     --data City=Vancouver \
     --data Province=BC \
     --data PostalCode=A1A1A1 \
     --data Country=CA \
     --data PhoneNumber=5555555555 \
     --data LegalBusinessName=E-Corp \
     --data 'OrganizationalType=Public Limited Company' \
     --data RegistrationNumber=123456789 \
     --data RegistrationProvince=BC \
     --data DateofIncorporation=2000-01-01 \
     --data BusinessTypeID=1 \
     --data BusinessTypeCategoryID=1 \
     --data Website=https://www.ecorp.com \
     --data ProductDescription=Lending \
     --data 'StatementDescriptor=E Corporation' \
     --data 'StatementDescriptorShortName=E Corp' \
     --data 'PrimaryContactFullName=John Doe' \
     --data PrimaryContactTitle=CEO \
     --data PrimaryContactEmail=john@ecorp.com \
     --data PrimaryContactPhoneNumber=5555555555 \
     --data CustomerSupportPhoneNumber=5555555555 \
     --data AccountNumber=1234567 \
     --data FinancialInstitutionNumber=001 \
     --data BranchTransitNumber=03900
     
     curl --request POST \
     --url 'https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info/shareholder-info/add' \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data 'AccountID={AccountID}' \
     --data 'Key={APIKey}' \
     --data 'Signature={Signature}' \
     --data 'ShareholderFullName=John Doe' \
     --data ShareholderDOB=1970-01-01 \
     --data ShareholderOwnership=100 \
     --data ShareholderOccupation=CEO \
     --data 'ShareholderAddress1=123 Fake St' \
     --data ShareholderCity=Vancouver \
     --data ShareholderProvince=BC \
     --data ShareholderCountry=CA \
     --data ShareholderPostalCode=A1A1A1
     
     curl --request POST \
     --url https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info/signing-authority-info/add \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data 'AccountID={AccountID}' \
     --data 'Key={APIKey}' \
     --data 'Signature={Signature}' \
     --data 'AuthorizedFullLegalName=John Doe' \
     --data AuthorizedDOB=1970-01-01 \
     --data AuthorizedOccupation=CEO \
     --data AuthorizedEmailAddress=john@ecorp.com \
     --data 'AuthorizedAddress1=123 Fake St' \
     --data AuthorizedCity=Vancouver \
     --data AuthorizedProvince=BC \
     --data AuthorizedCountry=CA \
     --data AuthorizedPostalCode=A1A1A1
     
     curl --request POST \
     --url https://earthnode-dev.vopay.com/api/v2/document \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data 'AccountID={AccountID}' \
     --data 'Key={APIKey}' \
     --data 'Signature={Signature}' \
     --data 'DocumentName=Certificate of Incorporation' \
     --data DocumentContent=JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC \
     --data DocumentType=kyc
     
     curl --request POST \
     --url https://earthnode-dev.vopay.com/api/v2/partner/account/set-permissions \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data 'AccountID={PartnerAccountID}' \
     --data 'Key={APIKey}' \
     --data 'Signature={Signature}' \
     --data VopayAccountID=e_corp \
     --data EFTCollectEnabled=true \
     --data EFTSendEnabled=true \
     --data MaxFundEFTAmount=10000 \
     --data MaxWithdrawEFTAmount=10000
```

```javascript JavaScript
const sdk = require('api')('@vopay-api/v2.0#6hzs1fle4g0y4m');

sdk.accountPOST({
  AccountID: '{PartnerAccountID}',
  Key: '{APIKey}',
  Signature: '{Signature}',
  Name: 'E Corp',
  EmailAddress: 'john@ecorp.com',
  Country: 'CA'
}, {accept: 'application/json'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));


sdk.accountBusinessTypesGET({
  AccountID: '%7BAccountID%7D',
  Key: '%7BAPIKey%7D',
  Signature: '%7BSignature%7D'
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));


sdk.accountSubmitExtraInfoPOST({
  AccountID: '{AccountID}',
  Key: '{APIKey}',
  Signature: '{Signature}',
  Address: '123 Fake St',
  City: 'Vancouver',
  Province: 'BC',
  PostalCode: 'A1A1A1',
  Country: 'CA',
  PhoneNumber: '5555555555',
  LegalBusinessName: 'E-Corp',
  OrganizationalType: 'Public Limited Company',
  RegistrationNumber: '123456789',
  RegistrationProvince: 'BC',
  DateofIncorporation: '2000-01-01',
  BusinessTypeID: 1,
  BusinessTypeCategoryID: 1,
  Website: 'https://www.ecorp.com',
  ProductDescription: 'Lending',
  StatementDescriptor: 'E Corporation',
  StatementDescriptorShortName: 'E Corp',
  PrimaryContactFullName: 'John Doe',
  PrimaryContactTitle: 'CEO',
  PrimaryContactEmail: 'john@ecorp.com',
  PrimaryContactPhoneNumber: '5555555555',
  CustomerSupportPhoneNumber: '5555555555',
  AccountNumber: '1234567',
  FinancialInstitutionNumber: '001',
  BranchTransitNumber: '03900'
}, {accept: 'application/json'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));


sdk.accountShareHolderAddPOST({
  AccountID: '{AccountID}',
  Key: '{APIKey}',
  Signature: '{Signature}',
  ShareholderFullName: 'John Doe',
  ShareholderDOB: '1970-01-01',
  ShareholderOwnership: 100,
  ShareholderOccupation: 'CEO',
  ShareholderAddress1: '123 Fake St',
  ShareholderCity: 'Vancouver',
  ShareholderProvince: 'BC',
  ShareholderCountry: 'CA',
  ShareholderPostalCode: 'A1A1A1'
}, {accept: 'application/json'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));


sdk.accountSigningAuthorityAddPost({
  AccountID: '{AccountID}',
  Key: '{APIKey}',
  Signature: '{Signature}',
  AuthorizedFullLegalName: 'John Doe',
  AuthorizedDOB: '1970-01-01',
  AuthorizedOccupation: 'CEO',
  AuthorizedEmailAddress: 'john@ecorp.com',
  AuthorizedAddress1: '123 Fake St',
  AuthorizedCity: 'Vancouver',
  AuthorizedProvince: 'BC',
  AuthorizedCountry: 'CA',
  AuthorizedPostalCode: 'A1A1A1'
}, {accept: 'application/json'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));


sdk.documentPost({
  AccountID: '{AccountID}',
  Key: '{APIKey}',
  Signature: '{Signature}',
  DocumentName: 'Certificate of Incorporation',
  DocumentContent: 'JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC',
  DocumentType: 'kyc'
}, {accept: 'application/json'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));


sdk.accountSetPermissionsPOST({
  AccountID: '{PartnerAccountID}',
  Key: '{APIKey}',
  Signature: '{Signature}',
  VopayAccountID: 'e_corp',
  EFTCollectEnabled: true,
  EFTSendEnabled: true,
  MaxFundEFTAmount: 10000,
  MaxWithdrawEFTAmount: 10000
}, {accept: 'application/json'})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
```

```php PHP
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://earthnode-dev.vopay.com/api/v2/partner/account', [
  'form_params' => [
    'AccountID' => '{PartnerAccountID}',
    'Key' => '{APIKey}',
    'Signature' => '{Signature}',
    'Name' => 'E Corp',
    'EmailAddress' => 'john@ecorp.com',
    'Country' => 'CA'
  ],
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/x-www-form-urlencoded',
  ],
]);

echo $response->getBody();


$response = $client->request('GET', 'https://earthnode-dev.vopay.com/api/v2/account/business-types?AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();


$response = $client->request('POST', 'https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info', [
  'form_params' => [
    'AccountID' => '{AccountID}',
    'Key' => '{APIKey}',
    'Signature' => '{Signature}',
    'Address' => '123 Fake St',
    'City' => 'Vancouver',
    'Province' => 'BC',
    'PostalCode' => 'A1A1A1',
    'Country' => 'CA',
    'PhoneNumber' => '5555555555',
    'LegalBusinessName' => 'E-Corp',
    'OrganizationalType' => 'Public Limited Company',
    'RegistrationNumber' => '123456789',
    'RegistrationProvince' => 'BC',
    'DateofIncorporation' => '2000-01-01',
    'BusinessTypeID' => 1,
    'BusinessTypeCategoryID' => 1,
    'Website' => 'https://www.ecorp.com',
    'ProductDescription' => 'Lending',
    'StatementDescriptor' => 'E Corporation',
    'StatementDescriptorShortName' => 'E Corp',
    'PrimaryContactFullName' => 'John Doe',
    'PrimaryContactTitle' => 'CEO',
    'PrimaryContactEmail' => 'john@ecorp.com',
    'PrimaryContactPhoneNumber' => '5555555555',
    'CustomerSupportPhoneNumber' => '5555555555',
    'AccountNumber' => '1234567',
    'FinancialInstitutionNumber' => '001',
    'BranchTransitNumber' => '03900'
  ],
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/x-www-form-urlencoded',
  ],
]);

echo $response->getBody();


$response = $client->request('POST', 'https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info/shareholder-info/add', [
  'form_params' => [
    'AccountID' => '{AccountID}',
    'Key' => '{APIKey}',
    'Signature' => '{Signature}',
    'ShareholderFullName' => 'John Doe',
    'ShareholderDOB' => '1970-01-01',
    'ShareholderOwnership' => 100,
    'ShareholderOccupation' => 'CEO',
    'ShareholderAddress1' => '123 Fake St',
    'ShareholderCity' => 'Vancouver',
    'ShareholderProvince' => 'BC',
    'ShareholderCountry' => 'CA',
    'ShareholderPostalCode' => 'A1A1A1'
  ],
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/x-www-form-urlencoded',
  ],
]);

echo $response->getBody();


$response = $client->request('POST', 'https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info/signing-authority-info/add', [
  'form_params' => [
    'AccountID' => '{AccountID}',
    'Key' => '{APIKey}',
    'Signature' => '{Signature}',
    'AuthorizedFullLegalName' => 'John Doe',
    'AuthorizedDOB' => '1970-01-01',
    'AuthorizedOccupation' => 'CEO',
    'AuthorizedEmailAddress' => 'john@ecorp.com',
    'AuthorizedAddress1' => '123 Fake St',
    'AuthorizedCity' => 'Vancouver',
    'AuthorizedProvince' => 'BC',
    'AuthorizedCountry' => 'CA',
    'AuthorizedPostalCode' => 'A1A1A1'
  ],
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/x-www-form-urlencoded',
  ],
]);

echo $response->getBody();


$response = $client->request('POST', 'https://earthnode-dev.vopay.com/api/v2/document', [
  'form_params' => [
    'AccountID' => '{AccountID}',
    'Key' => '{APIKey}',
    'Signature' => '{Signature}',
    'DocumentName' => 'Certificate of Incorporation',
    'DocumentContent' => 'JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC',
    'DocumentType' => 'kyc'
  ],
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/x-www-form-urlencoded',
  ],
]);

echo $response->getBody();


$response = $client->request('POST', 'https://earthnode-dev.vopay.com/api/v2/partner/account/set-permissions', [
  'form_params' => [
    'AccountID' => '{PartnerAccountID}',
    'Key' => '{APIKey}',
    'Signature' => '{Signature}',
    'VopayAccountID' => 'e_corp',
    'EFTCollectEnabled' => null,
    'EFTSendEnabled' => null,
    'MaxFundEFTAmount' => 10000,
    'MaxWithdrawEFTAmount' => 10000
  ],
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/x-www-form-urlencoded',
  ],
]);

echo $response->getBody();
```

```python Python
import requests

url = "https://earthnode-dev.vopay.com/api/v2/partner/account"

payload = "AccountID=%7BPartnerAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D&Name=E%20Corp&EmailAddress=john%40ecorp.com&Country=CA"
headers = {
    "accept": "application/json",
    "content-type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)



url = "https://earthnode-dev.vopay.com/api/v2/account/business-types?AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D"

headers = {"accept": "application/json"}

response = requests.get(url, headers=headers)

print(response.text)



url = "https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info"

payload = "AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D&Address=123%20Fake%20St&City=Vancouver&Province=BC&PostalCode=A1A1A1&Country=CA&PhoneNumber=5555555555&LegalBusinessName=E-Corp&OrganizationalType=Public%20Limited%20Company&RegistrationNumber=123456789&RegistrationProvince=BC&DateofIncorporation=2000-01-01&BusinessTypeID=1&BusinessTypeCategoryID=1&Website=https%3A%2F%2Fwww.ecorp.com&ProductDescription=Lending&StatementDescriptor=E%20Corporation&StatementDescriptorShortName=E%20Corp&PrimaryContactFullName=John%20Doe&PrimaryContactTitle=CEO&PrimaryContactEmail=john%40ecorp.com&PrimaryContactPhoneNumber=5555555555&CustomerSupportPhoneNumber=5555555555&AccountNumber=1234567&FinancialInstitutionNumber=001&BranchTransitNumber=03900"
headers = {
    "accept": "application/json",
    "content-type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)



url = "https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info/shareholder-info/add"

payload = "AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D&ShareholderFullName=John%20Doe&ShareholderDOB=1970-01-01&ShareholderOwnership=100&ShareholderOccupation=CEO&ShareholderAddress1=123%20Fake%20St&ShareholderCity=Vancouver&ShareholderProvince=BC&ShareholderCountry=CA&ShareholderPostalCode=A1A1A1"
headers = {
    "accept": "application/json",
    "content-type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)



url = "https://earthnode-dev.vopay.com/api/v2/account/submit-extended-info/signing-authority-info/add"

payload = "AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D&AuthorizedFullLegalName=John%20Doe&AuthorizedDOB=1970-01-01&AuthorizedOccupation=CEO&AuthorizedEmailAddress=john%40ecorp.com&AuthorizedAddress1=123%20Fake%20St&AuthorizedCity=Vancouver&AuthorizedProvince=BC&AuthorizedCountry=CA&AuthorizedPostalCode=A1A1A1"
headers = {
    "accept": "application/json",
    "content-type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)




url = "https://earthnode-dev.vopay.com/api/v2/document"

payload = "AccountID=%7BAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D&DocumentName=Certificate%20of%20Incorporation&DocumentContent=JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC&DocumentType=kyc"
headers = {
    "accept": "application/json",
    "content-type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)




url = "https://earthnode-dev.vopay.com/api/v2/partner/account/set-permissions"

payload = "AccountID=%7BPartnerAccountID%7D&Key=%7BAPIKey%7D&Signature=%7BSignature%7D&VopayAccountID=e_corp&EFTCollectEnabled=true&EFTSendEnabled=true&MaxFundEFTAmount=10000&MaxWithdrawEFTAmount=10000"
headers = {
    "accept": "application/json",
    "content-type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)
```

```json Response Example
{"success":true}
```

# Create the account

<!-- curl@1-10 -->
<!-- javascript@3-12 -->
<!-- php@6-21 -->
<!-- python@3-13 -->

The account onboarding process starts with the creation of the account. 

In the API response, you will receive the account's temporary AccountID, API Key, and API Shared secret. You will need these to complete the rest of the onboarding process.

# Get a list of Business Types

<!-- curl@12-14 -->
<!-- javascript@15-21 -->
<!-- php@24-30 -->
<!-- python@17-23 -->

As part of our KYC collection, we need to know the business type (ex: Retail) and category (Beauty Products). 

This endpoint retrieves a list of all the accepted industries that we support.

In the next step, you will need to provide both a BusinessTypeID and BusinessCategoryTypeID from this list.

# Provide KYC Information

<!-- curl@16-47 -->
<!-- javascript@24-55 -->
<!-- php@33-70 -->
<!-- python@27-37 -->

Using the AccountID, API Key and API Shared Secret you got in previous step, hit our sumbit-extended-info endpoint to provide your account's KYC information.

# Provide Shareholder Information

<!-- curl@49-64 -->
<!-- javascript@58-73 -->
<!-- php@73-94 -->
<!-- python@41-51 -->

You will need to provide shareholder info for any individual that owns 20% or more of the company

# Provide Signing Authorities

<!-- curl@66-81 -->
<!-- javascript@76-91 -->
<!-- php@97-118 -->
<!-- python@55-65 -->

Provide all signing authorities for the account you onboarding

# Upload Supporting Documents

<!-- curl@83-92 -->
<!-- javascript@94-103 -->
<!-- php@121-136 -->
<!-- python@70-80 -->

Lastly, provide any supporting documentation (eg: certificate of incorporation, IDs of signing authorities, etc).

# Set Account Permissions

<!-- curl@94-105 -->
<!-- javascript@106-117 -->
<!-- php@139-156 -->
<!-- python@85-95 -->

As optional step, you can set the permissions (payment rails, transaction limits, etc) for the account you just created