Business

Overview

The Business module within the Customer API offers a suite of endpoints tailored to streamline the business creation and verification processes, alongside managing business-related documents efficiently. Here's a brief overview of what each endpoint aims to achieve:

  • Get Business Creation Parameters: This endpoint provides a list of required parameters and prerequisites needed to initiate the business creation process. It's a preparatory step that ensures businesses have gathered necessary information before submission.

  • Create Business: Allows for the creation of a new business entity on the Ibanera platform. This endpoint is the starting point for registering a business and requires submission of detailed information such as business name, type, and identifying information.

  • Get Parameters for Business Verification: Once a business is created, this endpoint is used to retrieve a detailed list of parameters and documents required for verification purposes. Its role is to guide businesses through assembling the necessary documentation and data for verification.

  • Upload Business Document: Facilitates the upload of business-related documents to the platform. This endpoint is pivotal in submitting the documents necessary for business verification, such as proof of address, incorporation certificates, and more.

  • Delete Business Document: Offers functionality to remove previously uploaded documents. This endpoint is useful in case of submission errors or when a document update is necessary, thereby maintaining the accuracy and relevancy of submitted documents.

  • Submit Business Verification: Central to the verification process, this endpoint allows businesses to submit their complete set of verification data along with necessary documents. It's the culmination of the business verification preparation, where all collated information and documentation are officially submitted for review.

  • Get Verification Status: Provides businesses with the ability to check the status of their verification process. It gives real-time feedback on the review progress, including approved, pending, or required additional information, ensuring businesses are informed about their verification journey.

Each of these endpoints collectively supports businesses in their journey from creation to verification on the Ibanera platform, ensuring a structured and efficient process in becoming a recognized and verified business entity.


Get Business Creation Parameters

This endpoint is designed to retrieve the necessary parameters required for the Create Business endpoint, which is used to register a new business account. This endpoint provides essential data for countries, states, and entity types that are required for the creation of a business account.

  • Endpoint: /api/v1/customer/business/createparameters

  • Method: GET

Response Body Types:

The response is structured in JSON format and contains the following main elements within the details object:

  • countries: An array of country objects with:

    • id (integer): Id of country, to be matched with CountriesID for States

    • name (string): Country Name

    • isoCode (String): Country ISO Code, 3 letters - ISO 3166-1 alpha-3

  • states: An array of state objects including

    • countriesID (Integer): Id of state’s country

    • name (String): Name of state

    • ansiCode (String): ANSI Code for US states

  • entityTypes: An array of entity type objects with

    • id (Integer): Id of Entity type

    • name (String): Name of Entity type

Example of a Successful Response:

{
  "id": 0,
  "details": {
    "countries": [
      {
        "name": "United States",
        "isoCode": "USA",
        "id": 1001
      }
    ],
    "states": [
      {
        "countriesID": 1001,
        "name": "Alabama",
        "ansiCode": "AL"
      }
    ],
    "entityTypes": [
      {
        "id": 1000,
        "name": "Corporate"
      }
    ]
  },
  "status": "1",
  "errors": []
}

Possible Error Message Codes:

In cases of failure or invalid requests, the response might return "status": "0" with a list of errors each containing:

  • fieldName: Indicates the request item or step that caused the error.

  • messageCode: A code identifying the specific error.


Create Business

The Create Business endpoint is designed to register a new business account. This POST request requires comprehensive information about both personal and business details, terms and conditions agreements, and an optional invitation send flag.

  • Endpoint: /api/v1/customer/business/create

  • Method: POST

Request Body Parameters:

  • personalDetails (JSON Object, Required): Container for personal information.

    • firstName (String, Required): First Name.

    • middleNames (String, Not Required, Nullable): Middle Names.

    • lastName (String, Required): Last Name.

    • emailAddress (String, Required): Email Address.

    • phoneNumber (String, Required): Phone Number, should include country code.

    • reference (String, Not Required): External reference for the customer.

  • businessDetails (JSON Object, Required): Container for business information.

    • companyName (String, Required): Company Name, with a min length of 2 and max length of 200.

    • phoneNumber (String, Required): Company Phone Number.

    • countryISOCode (ISO 3166-1 alpha-3, Required): Country ISO Code.

    • taxNumber (String, Required): Company Tax Number.

    • entityTypesID (String, Required): Identifier for the Entity type (e.g., LLC, PLC).

    • state (String, Required): State or Province, use ISO 3166-2:US code for USA.

    • townCity (String, Required): Town or City.

    • addressLine1 (String, Required): Address line 1.

    • addressLine2 (String, Not Required, Nullable): Address line 2.

    • postCode (String, Required): Postcode/ZIP code.

    • registrationDate (DateTime, Required): Company registration date in 'yyyy-mm-dd' format.

    • registrationNumber (String, Required): Company Registration Number.

    • website (String, Not Required): Company website.

  • termsAndConditions (JSON Object, Required): Container for Terms and Conditions details.

    • bIRSTaxFilingAgreement (Boolean, Required): Agreement with IRS tax filing compliance.

    • bFATCAAgreement (Boolean, Required): Agreement with FATCA compliance.

  • sendInvite (Boolean, Required): Flag to send an email invite to the user to login via the User Interface. Set to false by default.

Request Body Example JSON:

{
  "personalDetails": {
    "firstName": "John",
    "middleNames": null,
    "lastName": "Smith",
    "reference": "User_6685",
    "currencyCode": "USD",
    "emailAddress": "user+001@example.com",
    "phoneNumber": "+1234567890"
  },
  "businessDetails": {
    "companyName": "My Company",
    "phoneNumber": "+1098765432",
    "countryISOCode": "USA",
    "taxNumber": "123456789",
    "entityTypesID": 1002,
    "state": "NY",
    "townCity": "New York",
    "addressLine1": "127 Test Street",
    "addressLine2": "Floor 34",
    "postCode": "10001",
    "registrationDate": "2001-12-25",
    "registrationNumber": "200112345678",
    "website": "www.mycompany.com"
  },
  "termsAndConditions": {
    "bIRSTaxFilingAgreement": true,
    "bFATCAAgreement": true
  },
  "sendInvite": true
}

Response Body Types:

On successful creation, the response will contain:

  • id (Integer): A numeric ID representing the operation.

  • details (JSON Object): Includes customersId and customerUsersCustomersID, identifying the created business and the user associated with it.

  • status (String): "1" indicates a successful operation.

  • errors (JSON Array): Empty for successful operations.

Example of a Successful Response:

{
  "id": 13984,
  "details": {
    "customersId": 13833,
    "customerUsersCustomersID": 14087
  },
  "status": "1",
  "errors": []
}

Possible Error Message Codes:

Similar to other endpoints, in case of failure, an error object will be included with:

  • fieldName: Field related to the error.

  • messageCode: Specific error code.

Error Message CodeDescription

Required

Named field missing, null or empty

Invalid_PhoneNumber

Minimum length is six digits. Invalid format. Example supported formats:

+12345678910

12345678910

+1(234)567-8910

+1 (234) 567-8910

+1 2345678910

Invalid_CountryISOCode

ISO code not recognised

Invalid_TaxNumber

Only digits 0-9 allowed. Length is nine digits.

Invalid_EntityTypesID

Entity type not recognised

Invalid_State

Use 2 letter state codes for USA

Invalid_RegistrationDate

Format should be ‘yyyy-mm-dd’

Username_Not_Available

Email address is already in use

Invalid_CurrencyCode

Currency Code not found/available

Invalid_bIRSTaxFilingAgreement

Customer must agree to IRS Tax Filing Agreement

Invalid_bFATCAAgreement

Customer must agree to FATCA Agreement


Get Parameters for Business Verification

This endpoint is designed to assist in collecting the necessary parameters for submitting business verification data through the Submit Verification endpoint. By making a GET request to this endpoint, developers and users can retrieve lists of countries, states, document types, and other essential verification-related parameters.

  • Endpoint: /api/v1/customer/business/verificationparameters

  • Method: GET

Request Parameters

  • customersId (Integer, Required): The ID of the customer whose verification parameters are to be retrieved.

Response Body Types

The response consists of several arrays that include:

  • countries (JSON Array): Contains objects with necessary details for countries, including:

    • id (Integer): ID of the country.

    • countryName (String): Name of the country.

    • isoCode (ISO 3166-1 alpha-3 String): 3-letter country ISO code.

  • states (JSON Array): Contains objects with state-specific information:

    • countriesID (Integer): ID of the state’s country.

    • name (String): Name of the state.

    • ansiCode (String): ANSI code for US states and equivalent for others.

  • businessIdentityDocumentTypes, politicallyExposedPersonTypes, mainActivityTypes, sourceFundTypes (JSON Arrays): Lists identification, politically exposed persons, main business activities, and source of funds types required for verification.

    • id (Integer): Identifier for the type.

    • name (String): Name of the type.

  • documents (JSON Array): Contains objects with necessary details for document upload, including:

    • bRequired (Bool): True if required for verification

    • DocumentTypesId (Integer): Id of Document Type

    • DocumentNotes (String): Description of document type

    • DocumentStatus (String): Status of Customer's document:

      • Not Submitted

      • Checking

      • Approved

      • Expired

      • Rejected

    • Filename (String): Filename of uploaded document

    • Name (String): Name of document type

  • AdditionalDocuments (JSON Array): Contains objects with additional supporting documents for document upload, including:

    • bRequired (Bool): True if required for verification

    • DocumentTypesId (Integer): Id of Document Type

    • DocumentNotes (String): Description of document type

    • DocumentStatus (String): Status of Customer's document:

      • Not Submitted

      • Checking

      • Approved

      • Expired

      • Rejected

    • Filename (String): Filename of uploaded document

    • Name (String): Name of document type


Upload Business Document

The Upload Business Document endpoint allows businesses to upload documents that are necessary for the verification process of the business account. This endpoint plays a crucial role in fulfilling the document submission requirements for account verification, including proofs of address, identity, operational licenses, and other significant documentation.

  • Endpoint: /api/v1/customer/business/uploaddocument

  • Method: POST

  • Content-Type: multipart/form-data

    • This endpoint requires the 'Content-Type' to be set to 'multipart/form-data' due to the file upload requirement.

Form Parameters

  • customersId (Integer): The ID of the business customer for whom the document is being uploaded. This identifier ensures that the document is associated with the correct account.

  • bAdditionalDocument (Boolean): A flag to indicate if the document being uploaded is an additional document not explicitly required but submitted to aid in the verification process. This can be useful for providing extra evidence to expedite verification.

  • documentId (Integer): The ID referencing the type of document being uploaded, as defined by the verification parameters provided by the /verificationparameters endpoint.

  • file (File): The document file to be uploaded. The request should use multipart file upload to include the actual document file.

  • note (String, Optional): Any additional notes or comments that should accompany the document being uploaded. This can provide context or additional information relevant to the document.

Response Format

  • application/json: The response data is provided in JSON format.

Success Response Example

{
  "id": 12413,
  "status": "1",
  "errors": []
}

This response indicates that the document upload was successful, with "status": "1" denoting a successful operation and an empty "errors" array signifying no errors occurred during the process.

Error Message CodeDescription

Required

Named field missing, null or empty

Unauthorized

User is not permitted to edit Customer’s files

Invalid_FileName

File not found

Invalid_DocumentTypesID

Valid document types available at /api/v1/customer/business/verificationparameters


Submit Business Verification

The Submit Business Verification endpoint is designed for submitting the comprehensive verification details of a business customer. This involves critical information relating to the company's representative, main business activities, capital, investments, and anticipated activity, among others. This information is crucial for the completion of the business verification process.

  • Endpoint: /api/v1/customer/business/submitverification

  • Method: POST

Request Body Parameters:

  • customersID (Integer): Id of the managed business account

  • significantParties (JSON Array, all elements are required): Contains objects with necessary details for Significant Parties - all beneficial owners and/or control persons.

    • number (Integer): Significant Party number. Should be numbered 1 to N, where N is the number of significant parties in total

    • firstName (String): First name

    • lastName (String): Last name

    • title (String): Title of individual

    • dateOfBirth (Date): Date of Birth in format ‘yyyy-mm-dd’.

    • nationality (String, Country ISO Code, 3 letters - ISO 3166-1 alpha-3): Nationality country

    • email (String): Individual's email address

    • phoneNumber (String): Phone number, must include country code

    • country (String, Country ISO Code, 3 letters - ISO 3166-1 alpha-3): Country of individual's current citizenship

    • ssn (String): SSN/ Tax Id Number

    • stateProvince (String, For USA, use ISO 3166-2:US code. E.g. US-FL): State or Province

    • city (String)

    • addressLine1 (String): Address Line 1

    • addressLine2 (String, Optional): Address Line 2

    • postcode (String): Postcode or ZIP code

    • percentageSharesOwned (String): Percentage Shares Owned

    • position (String): Individual's position in the company

    • bControllingParty (Bool): True if the individual is the controlling party

    • proofOfAddressFileName (String): Proof of address filename. File should be uploaded via uploaddocument, using documentId matching ‘Significant Parties Proof of Address’.

  • corporate (JSON Object): Corporate application form

    • operatingAddress (JSON Object): Information about the company's operating address.

      • bUseDifferentAddress (Bool): True if company’s operating address is different to registered address. If true, the following items are required.

      • addressLine1 (String): Address Line 1

      • addressLine2 (String, Optional): Address Line 2

      • city (String): City of the operating address

      • country (String, Country ISO Code, 3 letters - ISO 3166-1 alpha-3): Country of the operating address

      • postcode (String): Postcode or ZIP code of the operating address

      • stateProvince (String, For USA use ISO 3166-2:US code. E.g. US-FL): State or Province of the operating address

    • representative (JSON Object, Required): Information about the company's representative.

      • firstName (String, Required): First name of the representative

      • lastName (String, Required): Last name of the representative

      • ssn (String, Optional, Required): SSN/ Tax ID Number of the representative

      • dateOfBirth (Date, Required): Date of Birth in format ‘yyyy-mm-dd’

      • addressLine1 (String, Required): Address Line 1

      • addressLine2 (String, Optional): Address Line 2

      • city (String, Required): City of the operating address

      • country (String, Country ISO Code, 3 letters - ISO 3166-1 alpha-3, Required): Country of the operating address

      • postcode (String, Required): Postcode or ZIP code of the operating address

      • stateProvince (String, For USA use ISO 3166-2:US code. E.g. US-FL, Required): State or Province of the operating address

      • position (String, Required): Position of the representative

      • email (String, Required): Email address of the representative

      • phoneNumber (String, Required): Phone number of the representative, must include country code

      • personalIdDocumentTypesID (String, Required): Personal Id Document Type Id

      • politicallyExposedPersonTypesID (String, Optional): Politically Exposed Person Type. Leave blank/removed if not relevant.

      • personalIdDocument (JSON Object): Information regarding personal identification document of the representative.

        • idNumber (Integer, Required): The ID number of the document (e.g. passport number)

        • dateOfIssue (Date, Required): Date of issue. Format ‘yyyy-mm-dd’.

        • placeOfIssue (String, Required): Place of issue

        • expiryDate (Date, Required): Expiry date of document. Format ‘yyyy-mm-dd’.

      • politicallyExposedPerson (JSON Object): Indicates if the representative is a politically exposed person. Required if politicallyExposedPersonTypesID is not null

        • firstName (String): First name. Required unless politically exposed person type is null

        • lastName (String): Last name. Required unless politically exposed person type is null

        • stateInstitution (String): State or Institution. Required unless politically exposed person type is null

        • position (String): Company Position. Required unless politically exposed person type is null

    • mainBusinessPartners (JSON Array)

      • number (Integer, Required): Main business partners number. Should be numbered 1 to N, where N is the number of main business partners

      • name (String, Required): Full name

      • companyRegistrationNumber (String, Required): Company Registration Number

      • website (String, Optional): Website URL

    • mainActivity (JSON Object)

      • typesID (String, Required): Main Activity Type

      • Description (String, Required)

      • bFundsReceivedUSA (Bool, Required): Are funds received from USA?

      • bFundsSentUSA (Bool, Required): Are funds to be sent to USA?

      • bPassiveIncomeExceedsFiftyPercent (Bool, Required): Does the passive income of the entity or assets generating or kept to generate the income exceed 50% of the entity’s gross income per calendar year or its total assets.

    • authorizedCapital (JSON Object)

      • authorizedCapital (Decimal, Required): Authorized Capital

      • sourceOfFunds (String, Required): Source of funds

      • proofOfSourceOfFundsFileName (String, Required)

      • previousYearTurnover (Decimal, Required)

      • plannedTurnover (Decimal, Required)

      • bankAccountSignatories (String, Required)

      • sourceFundsInformationTypesID (Integer, Required)

      • supportingDocuments (JSON Array):

        • number (Integer, Required): Number of supporting document. Numbering should begin at 1 and be consecutive

        • fileName (String): Filename of supporting document

      • externalInvestment (JSON Object): All sub objects required if any is not null or empty.

        • companyName (String): Name of external investment company

        • companyAddress (String): Address of external investment company

        • amount (Decimal): Amount of external investment

        • date (Date): Date of investment. Format 'yyyy-mm-dd'

      • internalInvestments (JSON Array): All sub objects required if any is not null or empty

        • number (Integer): Number of internal investment. Numbering should begin at 1 and be consecutive.

        • employeeName (String): Employee's name

        • position (String): Employee's position

        • amount (Decimal): Amount Invested

        • date (Date): Date of investment. Format: 'yyyy-mm-dd'

        • sourceOfWealth (String): Source of wealth

      • companySale (JSON Object): All sub objects required if any is not null or empty.

        • companyName (String): Name of company sold

        • country (String, ISO 3166-1 alpha-3): Country of Incorporation. Country ISO Code, 3 letters

        • companyAddress (String):Address of company sold

        • natureOfBusiness (String): Nature of sold company's business

        • amount (Decimal): Amount of the sale

        • date (Date): Date of company sale. Format: 'yyyy-mm-dd'

      • inheritance (JSON Object): All sub objects required if any is not null or empty.

        • nameRelationshipDonor (String): Name and relationship to Donor

        • date (Date): Format 'yyyy-mm-dd'

        • amount (Decimal): Amount received

      • propertySale (JSON Object): All sub objects required if any is not null or empty.

        • address (Decimal): Address of property sold

        • date (Date): Date of property sale. Format 'yyyy-mm-dd'

        • amount (Decimal): Amount of property sale

      • loan (JSON Object): All sub objects required if any is not null or empty.

        • amount (Decimal): Amount of loan

        • date (Date): Date of property sale. Format 'yyyy-mm-dd'

        • lenderNameAddress (String): Name / Address of lender

        • Purpose (String): Purpose of loan

      • other (JSON Object): All sub objects required if any is not null or empty

        • amount (Decimal): Amount received

        • date (Date): Date received. Format 'yyyy-mm-dd'

        • natureOfIncome (String): Nature of income

        • payee (String): Payee

    • otherAccounts (JSON Array): Other bank accounts. All sub objects required if any is not null or empty.

      • number (Integer): Number of account. Numbering should begin at 1 and be consecutive.

      • accountName (String): Name of account

    • anticipatedActivity (JSON Object, Required): Anticipated financial activity (amounts in USD)

      • monthlyTurnOver (Decimal, Required): Monthly turnover

      • MonthsActivities (Decimal, Required): Anticipated transactional activity for next 12 month

      • sellingCryptoMonthlyVolume (Decimal, Required): Monthly volume of selling cryptocurrency (in USD)

      • sellingCryptoAverageAmount (Decimal, Required): Average order size for selling cryptocurrency (in USD)

      • sellingCryptoTotalAmountPerMonth (Decimal, Required): Total amount of sold cryptocurrency per month

      • purchaseCryptoMonthlyVolume (Decimal, Required): Monthly volume of purchasing cryptocurrency (in USD)

      • cryptoToCryptoAverageAmount (Decimal, Required): Average crypto to crypto order size (in USD)

      • cryptoToCryptoTotalAmountPerMonth (Decimal, Required): Total crypto to crypto amount (in USD)

      • totalMonthlyVolume (Decimal, Required) Total for all monthly volume - Sum of sellingCryptoMonthlyVolume and purchaseCryptoMonthlyVolume

      • btcTradingPercentage (Decimal, Required): Percentage of anticipated activity trading Bitcoin

      • ethTradingPercentage (Decimal, Required): Percentage of anticipated activity trading Ethereum

      • usdcTradingPercentage (Decimal, Required): Percentage of anticipated activity trading USD Coin

      • otherCoinsTradingPercentage (Decimal, Required): Percentage of anticipated activity trading other cryptocurrencies

      NOTE: Trading Percentages above must total to 100

  • documentsUpload (JSON Array): Document Upload

    • DocumentTypesID (Integer, Required)

    • FileName (String, Required): Name of file

  • confirmation (JSON Object): Customer's confirmation

    • bAcceptTerms (Boolean, Required): Indicates whether terms and conditions have been accepted.

    • bConfirm (Boolean, Required): Confirmation that the information provided is accurate and true.

Submit Business Verification Request Body JSON Example

{
    "confirmation": {
        "bAcceptTerms": true,
        "bConfirm": true
    },
    "corporate": {
        "anticipatedActivity": {
            "btcTradingPercentage": 10.0,
            "cryptoToCryptoAverageAmount": 100.0,
            "cryptoToCryptoTotalAmountPerMonth": 100.0,
            "ethTradingPercentage": 30.0,
            "monthlyTurnOver": 2000.0,
            "next12MonthsActivities": 4000.0,
            "otherCoinsTradingPercentage": 0.0,
            "purchaseCryptoMonthlyVolume": 100.0,
            "sellingCryptoAverageAmount": 100.0,
            "sellingCryptoMonthlyVolume": 100.0,
            "sellingCryptoTotalAmountPerMonth": 200.0,
            "totalAverageAmount": 100.0,
            "totalMonthlyVolume": 100.0,
            "usdcTradingPercentage": 60.0
        },
        "authorizedCapital": {
            "authorizedCapital": 10000,
            "bankAccountSignatories": "Albert Reynolds",
            "companySale": {
                "amount": 200,
                "companyAddress": "17 Bob Lane, Bobbington",
                "companyName": "Bobs",
                "country": "GBR",
                "date": "2023-01-20",
                "natureOfBusiness": "ecommerce"
            },
            "externalInvestment": {
                "amount": 0,
                "companyAddress": "string",
                "companyName": "string",
                "date": "2023-10-24T15:03:16.016Z"
            },
            "inheritance": {
                "amount": null,
                "date": null,
                "nameRelationshipDonor": null
            },
            "internalInvestments": [
                {
                    "amount": 1000,
                    "date": "2023-01-15",
                    "employeeName": "Bob Bobson",
                    "number": 1,
                    "position": "Vice President",
                    "sourceOfWealth": "Income"
                }
            ],
            "loan": {
                "amount": 1000,
                "date": "2023-10-24",
                "lenderNameAddress": "Rob Robson, 18 Gravel Pit Lane, Edgware",
                "purpose": "Promotion"
            },
            "other": {
                "amount": null,
                "date": null,
                "natureOfIncome": null,
                "payee": null
            },
            "plannedTurnover": 3200,
            "previousYearTurnover": 2600,
            "proofOfSourceOfFundsFileName": "sourceoffunds.pdf",
            "propertySale": {
                "address": "5 Elder Street, Oldtown",
                "amount": 2400000,
                "date": "2023-09-13"
            },
            "sourceFundsInformationTypesID": 1001,
            "sourceOfFunds": "Savings",
            "supportingDocuments": [
                {
                    "fileName": "SupportingDocument_1.pdf",
                    "number": 1
                }
            ]
        },
        "mainActivity": {
            "bFundsReceivedUSA": true,
            "bFundsSentUSA": true,
            "bPassiveIncomeExceedsFiftyPercent": true,
            "description": null,
            "typesID": 1000
        },
        "mainBusinessPartners": [
            {
                "companyRegistrationNumber": "765123489",
                "name": "Bob\u2019s",
                "number": 1,
                "website": "www.bobswebsite.com"
            }
        ],
        "operatingAddress": {
            "addressLine1": "1 Company Lane",
            "bUseDifferentAddress": true,
            "city": "New York",
            "country": "USA",
            "postcode": "12345",
            "stateProvince": "US-NY"
        },
        "otherAccounts": [
            {
                "accountName": "string",
                "number": 1
            }
        ],
        "representative": {
            "addressLine1": "2 Representative Lane",
            "city": "New York",
            "country": "USA",
            "dateOfBirth": "2000-12-25",
            "email": "rep@example.com",
            "firstName": "My",
            "lastName": "Representative",
            "personalIdDocument": {
                "dateOfIssue": "2017-03-15",
                "expiryDate": "2027-03-15",
                "idNumber": "123456789",
                "placeOfIssue": "New York"
            },
            "personalIdDocumentTypesID": 1001,
            "phoneNumber": "+123456789",
            "politicallyExposedPerson": {
                "firstName": "John",
                "lastName": "Johnson",
                "position": "Member of Congress",
                "stateInstitution": "US Congress"
            },
            "politicallyExposedPersonTypesID": 1003,
            "position": "CMO",
            "postcode": "12345",
            "ssn": "123456789",
            "stateProvince": "US-NY"
        }
    },
    "customersId": 13830,
    "documentsUpload": [
        {
            "documentTypesID": 1000,
            "fileName": "file1000.pdf"
        },
        {
            "documentTypesID": 1001,
            "fileName": "file1001.pdf"
        },
        {
            "documentTypesID": 1002,
            "fileName": "file1002.pdf"
        },
        {
            "documentTypesID": 1007,
            "fileName": "file1007.pdf"
        },
        {
            "documentTypesID": 1008,
            "fileName": "file1008.pdf"
        }
    ],
    "significantParties": [
        {
            "addressLine1": "123 ABC Street",
            "addressLine2": "Floor 2",
            "bControllingParty": true,
            "city": "New York",
            "country": "USA",
            "dateOfBirth": "1988-01-24",
            "email": "BenB@example.com",
            "firstName": "Ben",
            "lastName": "Benson",
            "nationality": "USA",
            "number": 1,
            "percentageSharesOwned": 65,
            "phoneNumber": "+123456789",
            "position": "CEO",
            "postcode": "12345",
            "proofOfAddressFilename": "SignificantParties_1_Address.pdf",
            "ssn": "123456789",
            "stateProvince": "NY",
            "title": "Mr"
        }
    ]
}

Response Body Parameters

  • status (Integer): 1 if success, 0 if failure

  • errors (Array): List of errors (if present)

  • details (JSON Object)

    • customersId (Integer): Customer Id of the new business

    • businessVerificationStep (String): State of business verification: Not Started, In Progress, Submitted, Verified

Response Body JSON Example

{
    "id": 13830,
    "details": {
        "customersId": 13830,
        "businessVerificationStep": "Submitted"
    },
    "status": "1",
    "errors": []
}

Potential Error Codes

Error Code MessageDescription

Required

Required field not provided

Invalid_SignificantParties_Numbering

Numbers should be distinct and consecutive starting at 1

Invalid_SignificantParties_Country_[[Number]]

Country not found for significant party number [[Number]]

Invalid_SignificantParties_Nationality_[[Number]]

Nationality not found

Invalid_SignificantParties_StateProvince_[[Number]]

State not found

Invalid_SignificantParties_PercentageSharesOwned_[[Number]]

PercentageSharesOwned must be between 0 and 100

Invalid_SignificantParties_PercentageSharesOwned

Total PercentageSharesOwned sum must not exceed 100

Invalid_SignificantParties_ProofOfAddressFileName_[[Number]]

File not found

Invalid_OperatingAddress_Country

Country not found

Invalid_OperatingAddress_StateProvince

State not found

Representative_Country

Country not found

Invalid_Representative_StateProvince

State not found

Invalid_Representative_PersonalIdentificationDocumentTypesID

Type not found

Invalid_Representative_PoliticallyExposedPersonTypesID

Type not found

Invalid_MainBusinessPartners_Number

Numbers should be distinct and consecutive starting at 1

Invalid_MainActivity_TypesID

Type not found

Invalid_AuthorizedCapital_AuthorizedCapital

Amount cannot be negative

Invalid_AuthorizedCapital_SourceFundsInformationTypesID

Type not found

Invalid_AuthorizedCapital_ExternalInvestment_Amount

Amount cannot be negative

Invalid_AuthorizedCapital_InternalInvestment_Number

Numbers should be distinct and consecutive starting at 1

Invalid_AuthorizedCapital_InternalInvestment_Amount_[[Number]]

Amount cannot be negative

Invalid_AuthorizedCapital_CompanySale_Amount

Amount cannot be negative

Invalid_AuthorizedCapital_Inheritance_Amount

Amount cannot be negative

Invalid_AuthorizedCapital_PropertySale_Amount

Amount cannot be negative

Invalid_AuthorizedCapital_Loan_Amount

Amount cannot be negative

Invalid_AuthorizedCapital_Other_Amount

Amount cannot be negative

Invalid_AuthorizedCapital_SupportingDocuments_Number

Numbers should be distinct and consecutive starting at 1

Invalid_AuthorizedCapital_SupportingDocuments_FileName_[[Number]]

File not found

Invalid_OtherAccounts_Number

Numbers should be distinct and consecutive starting at 1

Invalid_AnticipatedActivity_[[FieldName]]

Percentages must be between 0 and 100. Possible field names: BTCTradingPercentage, ETHTradingPercentage, USDCTradingPercentage, OtherCoinsTradingPercentage

Invalid_OtherAccounts_Percentages

Sum of percentages must not exceed 100

Invalid_DocumentUpload_DocumentTypesID

Only one file per document type is allowed

Invalid_DocumentUpload_FileNames

Files must be distinct

Invalid_DocumentUpload_DocumentTypesID_[[DocumentTypesID]]

Type not found

Invalid_DocumentUpload_FileName_[[DocumentTypesID]]

File with document type [[DocumentTypesID]] not found

Invalid_Confirmation_bConfirm

Customer must confirm

Invalid_Confirmation_bAcceptTerms

Customer must accept terms


Get Business Verification Status

The Get Business Verification Status endpoint of the Customer API retrieves the current verification status of a business customer.

Endpoint Description

  • Endpoint: /api/v1/customer/businesses/getverificationstatus

  • Method: GET

  • Query Parameters:

    • customersId (Integer): Identifier of the managed business customer. This parameter is required.

Response Body Types

  • status (Integer): Indicates the operation's success (1) or failure (0).

  • errors (String array): List of errors if the operation fails.

  • details (Object):

    • businessVerificationStep (String): The current verification step such as Not Started, In Progress, Submitted, Verified.

    • documents (Array): Details about documents uploaded.

      • fileName (String): Name of the file.

      • bUploaded (Bool): True if the document is uploaded.

      • bRejected (Bool): True if the document is rejected.

      • bVerified (Bool): True if the document is verified.

      • documentStatus (String): Status of the document e.g., Not Submitted, Checking, Approved.

      • uploadNotes (String): Notes associated with the document upload.

      • documentId (Integer): Identifier of the Document Type.

      • rejectionReason (String): Reason for document rejection, if any.

  • additionalDocuments (Array): Similar structure to documents for additional documents submitted.

Example of a Successful Response

{
  "id": 13830,
  "details": {
    "businessVerificationStep": "InProgress",
    "documents": [
      {
        "fileName": null,
        "bUploaded": false,
        "bRejected": false,
        "bVerified": false,
        "documentStatus": "Not Submitted",
        "uploadNotes": null,
        "documentId": 1000,
        "rejectionReason": null
      }
    ],
    "additionalDocuments": [
      {
        "fileName": "examplepdf.pdf",
        "bUploaded": true,
        "bRejected": false,
        "bVerified": false,
        "documentStatus": "Checking",
        "uploadNotes": null,
        "documentId": 1000,
        "rejectionReason": null
      }
    ]
  },
  "status": "1",
  "errors": []
}

Possible Error Message Codes

  • Unauthorized: The user is not permitted to use the endpoint.

  • Required: Named field missing, null or empty

  • Invalid_CustomersId: The customersId parameter is invalid.

  • Business_Account_Not_Found: No business account found for the given customersId.


Delete Business Document

This section documents the Delete Business Document endpoint of the Customer API, used for removing a verification document associated with a business customer.

Endpoint Description

  • Endpoint: /api/v1/customer/business/deletedocument

  • Method: POST

  • Content-Type: application/json

Request Body Parameters

  • customersId (Integer): Identifier of the managed business customer. This parameter is required.

  • documentId (Integer): Identifier of the document to be deleted. This parameter is required.

  • filename (String): Name of the file to delete. This parameter is required.

  • bAdditionalDocument (Bool): Indicates whether the document is listed in the additional documents list in verificationparameters response. This parameter is required.

Request Body Example

{
  "bAdditionalDocument": false,
  "customersId": 13830,
  "documentId": 1000,
  "filename": "examplepdf.pdf"
}

Success Response Body Types

  • status (Integer): Indicates the operation's success (1) or failure (0).

  • errors (String array): List of errors if the operation fails.

  • details (Object):

    • bSuccess (Bool): True if the document was successfully deleted.

Example of a Successful Response

{
  "id": 1,
  "details": {
    "bSuccess": true,
    "details": null,
    "errors": []
  },
  "status": "1",
  "errors": []
}

Possible Error Message Codes

  • Unauthorized: The user is not permitted to use the endpoint.

  • Required: Named field missing, null or empty

  • Invalid_FileName: Indicated an issue with the file name provided.

  • Invalid_DocumentTypesID: The documentId provided is not valid.

  • Invalid_FileSize: The file size exceeds the maximum limit allowed.

Last updated