Veem Account Creation API

With Veem's Account Creation API, you can create a Veem account for your business

Open account

This endpoint is used to create a new Veem account. You will need your Oauth2 token to be able to hit this endpoint.

POST https://sandbox-api.veem.com/veem/v1.2/account

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Request payload

{
    "email": "[email protected]",
    "firstName": "John",
    "middleName": "Adam",
    "lastName": "Smith",
    "extraName": "",
    "isoCountryCode": "US",
    "dialCode": "+1",
    "phoneNumber": "1234567890",
    "businessName": "Smith Enterprises",
    "businessEntity": "LLC",
    "taxIdNumber": "12-3456789",
    "industry": "Software, IT and Telecommunications",
    "subIndustry": "Software",
    "dateOfBirth": "1996-09-16",
    "address": {
        "countryCode": "US",
        "street": "123 Main Street",
        "streetSecondary": "Suite 100",
        "city": "New York",
        "postalCode": "10001",
        "province": "NY"
    },
    "bankInfo": {
        "isoCountryCode": "US",
        "bankName": "Chase Bank",
        "currencyCode": "USD",
        "bankAccountNumber": "9876543210",
        "routingNumber": "021000021"
    },
    "extraInfo": {
        "purposeOfPayment": "Goods",
        "purposeOfPaymentDescription": "Thank you for your purchase"
    }
}

Business Accounts

The dateOfBirth is not required for businesses.

Individual Accounts

The account type will be identified based on the provided businessEntity.

For individuals, you need to specify one of the following:

  • Contractor
  • SoleProprietorship
  • PersonalUse
  • Freelancer
  • SideProject

The dateOfBirth must be provided for individuals.

The taxIdNumber usually follows the country pattern. The value sent will be validated against our pre-added format. You can find the current validation in our Country Currency Map API.

Here is an example of the validation found in Country Currency Map API

"taxIdInfo" :{
  "required" : true,
  "data" : [ {
    "type" : "individual",
    "validation" : {
      "min" : "4",
      "max" : "9",
      "type" : "regex",
      "error" : "Improper Social Security Number format, enter as XXX-XX-XXXX",
      "value" : "(?!012345678)(?!123456789)(?!0{9})(?!1{9})(?!2{9})(?!3{9})(?!4{9})(?!5{9})(?!6{9})(?!7{9})(?!8{9})(?!9{9})(^(\\d{9})$|^(\\d{3}-\\d{2}-\\d{4})$)"
    }
    }, {
      "type" : "business",
      "validation" : {
        "max" : "11",
        "type" : "regex",
        "error" : "Improper EIN format, enter as XX-XXXXXXX",
        "value" : "^(?:\\d{2}-\\d{7})$"
      }
    }
  ]
}

Edit account

This endpoint is used to edit some parameters of an existing account.

PATCH https://sandbox-api.veem.com/veem/v1.2/account/{accountId}

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Request payload

{
    "subIndustry": "Software",
    "firstName": "John",
    "lastName": "Doe",
    "dialCode": "+1",
    "phoneNumber": "6612861111",
    "taxIdNumber": "54-3216789",
    "businessName": "JD Enterprises",
    "industry": "Software, IT and Telecommunications",
    "dateOfBirth": "1996-09-16",
    "address": {
        "street": "123 Main Street",
        "streetSecondary": "Apt 101",
        "city": "San Francisco",
        "postalCode": "94116",
        "province": "CA"
    }
}


Response payload

{
    "id": 940652,
    "email": "[email protected]",
    "clientId": "clientId-be1a4bfa",
    "clientSecret": "5fbb2fd2-2672-4971-b3f4-45c34fc6632e",
    "token": "d49e7fd4-2600-4dd4-a572-118668febbe7",
    "accountSetUpStatus": "READY",
    "verificationStatus": "Unverified"
}

Add Beneficial Ownership Information (BOI)

Use this endpoint to add beneficial ownership information for the account that you just created.

POST https://sandbox-api.veem.com/veem/v1.2/beneficial-ownership

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Request payload

{
    "beneficialOwnerShip": {
        "hasAttestation": true,
        "individualOwnerShip": [
            {
                "firstName": "Jane",
                "lastName": "Smith",
                "ownershipPercentage": 25,
                "dateOfBirth": "05/15/1985",
                "citizenshipIsoCountryCode": "US",
                "addressLine1": "456 Elm Street",
                "addressLine2": "Apt 202",
                "addressCity": "San Francisco",
                "addressState": "CA",
                "addressPostalCode": "94111",
                "addressIsoCountryCode": "US",
                "phoneNumberType": "mobile",
                "dialCode": "+1",
                "phoneNumber": "4155551234",
                "taxId": "123-45-6789",
                "isControlPerson": true,
                "title": "CEO of the company"
            }
        ],
        "businessOwnerShip": [
            {
                "businessName": "ABC Holdings",
                "taxId": "33-1867308",
                "ownershipPercentage": 25,
                "addressLine1": "789 Oak Avenue",
                "addressLine2": "Suite 300",
                "addressCity": "San Francisco",
                "addressState": "CA",
                "addressPostalCode": "94111",
                "addressIsoCountryCode": "US"
            }
        ]
    }
}


πŸ“˜

Note: You can add individual or business or both.

{
    "beneficialOwnerShip": {
        "individualOwnerShip": [
            {
                 β€œId” : 1
                "firstName": "Jane",
                "lastName": "Smith",
                "ownershipPercentage": 25,
                …..
            }
        ],
        "businessOwnerShip": [
            {
                β€œId” : 2,
                "businessName": "ABC Holdings",
                "taxId": "33-1867308",
                "ownershipPercentage": 25,
                …
            }
        ]
    }
}

Get Beneficial Ownership Information (BOI)

Use this endpoint to get a beneficial ownership information list for the account that you just created.

GET https://sandbox-api.veem.com/veem/v1.2/beneficial-ownership

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Response payload

{
    "beneficialOwnerShip": {
        "individualOwnerShip": [
            {
                 β€œId” : 1
                "firstName": "Jane",
                "lastName": "Smith",
                "ownershipPercentage": 25,
                …..
            }
        ],
        "businessOwnerShip": [
            {
                β€œId” : 2,
                "businessName": "ABC Holdings",
                "taxId": "33-1867308",
                "ownershipPercentage": 25,
                …
            }
        ]
    }
}

Get account status

Once you have opened an account, you can retrieve the account information using the account token and the account id that you received from the open account endpoint.

GET https://sandbox-api.veem.com/veem/v1.2/account/{accountId}

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Response payload

{
    "id": 940652,
    "email": "[email protected]",
    "clientId": "clientId-be1a4bfa",
    "clientSecret": "5fbb2fd2-2672-4971-b3f4-45c34fc6632e",
    "token": "d49e7fd4-2600-4dd4-a572-118668febbe7",
    "accountSetUpStatus": "READY",
    "verificationStatus": "Unverified"
}


Add bank account

If you didn’t provide the bank account information in the open account endpoint, you can use the following endpoint to add all the information related to the bank account.

POST https://sandbox-api.veem.com/veem/v1.2/account/bank-account

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Request payload

{
    "routingNumber": "026009593",
    "bankName": "Bank of America",
    "bankAccountNumber": "12345678",
    "currencyCode": "USD",
    "isoCountryCode": "US"
}

πŸ“˜

If you need more information about bank parameters for other countries, please take a look at country-currency-map.

Response payload

{
    "id": 2761,
    "accountId": 940651,
    "isoCountryCode": "US",
    "isoCurrencyCode": "USD",
    "bankName": "Bank of America",
    "beneficiaryName": "JD Enterprises",
    "accountType": "Checking",
    "canRemove": true,
    "shortIdentifierDomestic": "5678",
    "verificationStatus": "Unverified",
    "status": "Active",
    "externalAccountStatus": "NotConfigured"
}


Edit bank account

You can modify the bank account information using the following endpoint.

PATCH https://sandbox-api.veem.com/veem/v1.2/account/bank-account/{bankId}

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Request payload

{
    "routingNumber": "026009593",
    "bankName": "Bank of America",
    "bankAccountNumber": "12345678",
    "currencyCode": "USD",
    "isoCountryCode": "US"
}

πŸ“˜

If you need more information about bank parameters for other countries, please take a look at country-currency-map.

Response payload

{
    "id": 2761,
    "accountId": 940651,
    "isoCountryCode": "US",
    "isoCurrencyCode": "USD",
    "bankName": "Bank of America",
    "beneficiaryName": "JD Enterprises",
    "accountType": "Checking",
    "canRemove": true,
    "shortIdentifierDomestic": "5678",
    "verificationStatus": "Unverified",
    "status": "Active",
    "externalAccountStatus": "NotConfigured"
}