Business Onboarding
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 V2: 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 V2 : 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 V2: 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 V2
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/v2/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 withCountriesID
for Statesname
(string): Country NameisoCode
(String): Country ISO Code, 3 letters - ISO 3166-1 alpha-3
states: An array of state objects including
countriesID
(Integer): Id of state’s countryname
(String): Name of stateansiCode
(String): ANSI Code for US states
productServices: An array of products and service type objects with
id
(Integer): Id of product or service typename
(String): Name of product or service type
Example of a Successful Response:
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 V2
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/v2/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.currencyCode
(String, Required): Currency code.
registeredCountryCode
(String, Required): Country code where business is registered.bConductsThirdPartyPayments
(Boolean, Required): Flag to determine whether customer will be conducting third party payments.requestedProducts
(Integer array, Required): A list of products and services that the account will be used for.sendInvite
(Boolean, Required): Flag to send an email invite to the user to login via the User Interface. Set tofalse
by default.
Request Body Example JSON:
Response Body Types:
On successful creation, the response will contain:
id
(Integer): A numeric ID representing the operation.details
(JSON Object): IncludescustomersId
andcustomerUsersCustomersID
, 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:
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.
Required
Named field missing, null or empty
Username_Not_Available
Email address is already in use
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_RequestedProducts
Product not recognized
Invalid_CurrencyCode
Currency Code not found/available
Invalid_CountryISOCode
Country not found
Get Parameters for Business Verification V2
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/v2/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.
mainActivityTypes
,sourceFundTypes
,transactionVolumes
,monthlyUsdEquivalents
,uboReportingExemptions
,regionsOfOperation
,entityTypes
(JSON Arrays): Lists main business activity, source fund, transaction volume, monthly USD equivalents, UBO reporting exemptions, regions of operation and business entity 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 verificationDocumentTypesId
(Integer): Id of Document TypeDocumentNotes
(String): Description of document typeDocumentStatus
(String): Status of Customer's document:Not Submitted
Checking
Approved
Expired
Rejected
Filename
(String): Filename of uploaded documentName
(String): Name of document type
AdditionalDocuments
(JSON Array): Contains objects with additional supporting documents for document upload, including:bRequired
(Bool): True if required for verificationDocumentTypesId
(Integer): Id of Document TypeDocumentNotes
(String): Description of document typeDocumentStatus
(String): Status of Customer's document:Not Submitted
Checking
Approved
Expired
Rejected
Filename
(String): Filename of uploaded documentName
(String): Name of document type
Example of a Successful Response:
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
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.
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
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
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
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
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.
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 ownership structure, main business activities, capital, investments, and anticipated activity, among others. This information is crucial for the completion of the business verification process.
Endpoint:
/api/v3/customer/business/submitverification
Method:
POST
Request Body Parameters:
customersID
(Integer): Id of the managed business accountregistrationInformation
(JSON Object): Contains registration details for the businessentityName
(String, Required): Legal name of entityentityTypesID
(Integer, Required): Type of business entityentityTypeOther
(String): Type of business entity if the type 'Other' is specified in as entityTypesIDregistrationDate
(Datetime, Required): Date of business registrationregistrationNumber
(String, Required): Official registration numbertaxNumber
(String, Required): Tax ID numberdoingBusinessAs
(String, Required): List of all business namesaddressStreet
(String, Required): Registered address streetaddressNumber
(String, Required): Registered address unit numberaddressPostCode
(String, Required): Registered address zip/postal codeaddressCity
(String, Required): Registered address cityaddressState
(String, Required): Registered address state/county/province as applicableaddressCountry
(String, Required): Registered address country codeoperatingAddressStreet
(String): Operating address street. Required if any other operating address field is enteredoperatingAddressNumber
(String): Operating address unit number. Required if any other operating address field is enteredoperatingAddressPostCode
(String): Operating address zip/postal code. Required if any other operating address field is enteredoperatingAddressCity
(String): Operating address city. Required if any other operating address field is enteredoperatingAddressState
(String): Operating address state/county/province as applicable. Required if any other operating address field is enteredoperatingAddressCountry
(String): Operating address country code. Required if any other operating address field is entered
operationsInformation
(JSON Object): Contains operations details for the entitywebAddress
(String): Website address of entityphoneNumber
(String): Business phone numbersupportEmail
(String): Business support emailbPubliclyListed
(String, Required): Is the business publicly listed. Value must be "Yes", "No" or "NA"ticker
(String): Trading symbol of the listed company. Required if publicly listedexhcanges
(String): Exchange(s) where company is listedoperationRegionIds
(Integer Array, Required): Regions of business operationsbLicenseRequired
(String, Required): Does the business require a license. Value must be "Yes", "No" or "NA"additionalLicensingInfo
(String): Additional licensing informationfinancialInstitutionFormFileName
(String): File name of financial institution formbusinessActivityIds
(Integer Array, Required): Main business activity typesweb3ChainsAndAddresses
(String): If the entity uses Web3 for transactions, any blockchain and blockchain addressessourceOfFundsIds
(Integer Array, Required): Source of funds typessourceOfFundsOther
(String): Other source of fund type. Required if 'Other' source fund type is chosen.activeBanks
(String, Required): Name of bank(s) for which the business currently holds an active accountyearlyTransactionsId
(Integer, Required): Anticipated yearly number of transactions typemonthlyUsdValueId
(Integer, Required): Anticipated monthly US dollar equivalent
ownerInformation
(JSON Object): Contains information about beneficial owners of the businessexemptionId (Integer): UBO Exemption type, if applicable.
authorizedSigner (String, Required): An individual that is an authorized signer for the organisation
bConfirmAboveTen (Boolean): Confirmation that applicant has included all beneficial owners with 10% or more ownership.
individualBeneficialOwners
(JSON Object, all elements are required. At least one controlling party is required, unless the entity has a UBO exemption): Contains objects with necessary details for Significant Parties - all beneficial owners and/or control personsnumber
(Integer): Individual beneficial owner number. Should be numbered 1 to N, where N is the number of individual beneficial owners in totalguid
(String): Individual beneficial owner guid. Used to identify individual beneficial owner in beneficialOwnersStructure object.firstName
(String): First namelastName
(String): Last nametitle
(String): Title of individualdateOfBirth
(Date): Date of Birth in format ‘yyyy-mm-dd’.nationality
(String, Country ISO Code, 3 letters - ISO 3166-1 alpha-3): Nationality countryemail
(String): Individual's email addressphoneNumber
(String): Phone number, must include country codecountry
(String, Country ISO Code, 3 letters - ISO 3166-1 alpha-3): Country of individual's current citizenshipssn
(String): SSN/ Tax Id NumberstateProvince
(String, For USA, use ISO 3166-2:US code. E.g. US-FL): State or Provincecity
(String)addressLine1
(String): Address Line 1addressLine2
(String, Optional): Address Line 2postcode
(String): Postcode or ZIP codeproofOfAddressFileName
(String): Proof of address filename. File should be uploaded via uploaddocument, using documentId matching ‘Significant Parties Proof of Address’.
businessBeneficialOwners
(JSON Object): Contains objects with necessary details for all entities which are beneficial ownersnumber
(Integer): Business beneficial owner number. Should be numbered 1 to N, where N is the number of business beneficial owners in totalguid
(String): Business beneficial owner guid. Used to identify business beneficial owner in beneficialOwnersStructure object.entityName
(String, Required): Legal name of entityentityTypesID
(Integer, Required): Type of business entityregistrationDate
(Datetime, Required): Date of business registrationregistrationNumber
(String, Required): Official registration numbertaxNumber
(String, Required): Tax ID numberdoingBusinessAs
(String, Required): List of all business namesaddressStreet
(String, Required): Registered address streetaddressNumber
(String, Required): Registered address unit numberaddressPostCode
(String, Required): Registered address zip/postal codeaddressCity
(String, Required): Registered address cityaddressState
(String, Required): Registered address state/county/province as applicableaddressCountry
(String, Required): Registered address country codeoperatingAddressStreet
(String): Operating address street. Required if any other operating address field is enteredoperatingAddressNumber
(String): Operating address unit number. Required if any other operating address field is enteredoperatingAddressPostCode
(String): Operating address zip/postal code. Required if any other operating address field is enteredoperatingAddressCity
(String): Operating address city. Required if any other operating address field is enteredoperatingAddressState
(String): Operating address state/county/province as applicable. Required if any other operating address field is enteredoperatingAddressCountry
(String): Operating address country code. Required if any other operating address field is entered
beneficialOwnersStructure
(JSON Array): A list of objects of type OwnershipTreeDto, representing the direct beneficial owners of the onboarding business. Required unless a UBO Exemption is given.
documentsUpload
(JSON Array): Document UploadDocumentTypesID
(Integer, Required)FileName
(String, Required): Name of file
terms
(JSON Object): Customer's confirmationbTaxAcknowledgement (Boolean, Required): Indicates whether customer agrees to "I confirm that the entity applying for the account is up to date and compliant with all applicable tax laws and regulations for which the entity would be responsible"
bFatcaAcknowledgement (Boolean, Required): Indicates whether customer agrees to "I do confirm that I am in full compliance with the Foreign Account Tax Compliance Act (FATCA)"
bConfirmTrueAndCorrect (Boolean, Required): Indicates whether customer agrees to "I confirm that the information provided is true and correct. I will notify, in writing, any changes to the information provided. I am aware that all or part of the information provided in this questionnaire may be transferred to the tax administrator or to any other institution in accordance with international treaties or agreements, as well as the United States regarding automated exchange of information on financial accounts"
bAcceptTerms (Boolean, Required): Indicates whether customer agrees to "I agree to use the services of Ibanera LLC only for legitimate purposes. I acknowledge that false or incorrect information provided could require reports to regulators or law enforcement resulting in termionation of business relations"
OwnershipTreeDto
bIsBusiness
(Boolean, Required) True if owner is a business/entity, false if owner is an individual.ownersGuid
(String, Required) Must match a guid from businessBeneficialOwners or individualBeneficialOwners according whether bIsBusiness is true or false.percentageOwned
(Decimal, Required): Percentage Shares Ownedposition
(String): Individual's position in the company. Required if owner is an individual, must be null otherwise.bControllingParty
(Boolean): True if the individual is the controlling party. Required if owner is an individual, must be null otherwise.children
(JSON Array): A list of objects of type OwnershipTreeDto, representing the direct beneficial owners of the owner business. Must be null if the owner is an individual
Beneficial Owners Structure Validation
Validation errors pertaining to an object in Benefical Owners Structure will be referenced by a path of the form BeneficialOwnersStructure[i].Children[j].....Children[k] using zero-indexing to identify the specific object in BeneficialOwnersStructure.
OwnerInformation.BeneficialOwnersStructure
GUIDs must be distinct
GUIDs of the top level objects in beneficialOwnersStructure must be distinct
OwnerInformation.[[Path]].Children
GUIDs must be distinct
GUIDs of the top level objects in children must be distinct
OwnerInformation.[[Path]].bIsBusiness
Required
bIsBusiness must be true or false
OwnerInformation.[[Path]].OwnersGuid
Not Found
OwnersGuid not found on list of business/individual owners
OwnerInformation.[[Path]].OwnersGuid
Invalid
Every beneficial business owner should occur at least once in the ownership tree with Children not null
OwnerInformation.[[Path]].OwnersGuid
Repeated Children
Every beneficial business owner should occur at most once in the ownership tree with Children not null
OwnerInformation.[[Path]].OwnersGuid
Business cannot be direct owner of itself
A business cannot appear in BeneficialOwnersStructure as a direct child of itself
OwnerInformation.[[Path]].PercentageOwned
PercentageOwned must be between 0 and 100
PercentageOwned must be between 0 and 100
OwnerInformation.[[Path]].bControllingParty
Required
bControllingParty is required for individual owners
OwnerInformation.[[Path]].bControllingParty
Invalid
bControllingParty must be null for business owners
OwnerInformation.[[Path]].PositionAtCompany
Required
PositionAtCompany is required for individual owners
OwnerInformation.[[Path]].PositionAtCompany
Invalid
PositionAtCompany must be null for business owners
OwnerInformation.[[Path]].Children
Invalid
Children must be null for individual owners
OwnerInformation.[[Path]].Children
A controlling party is required
At least one object in Children should be have bControllingParty as true
Submit Business Verification Request Body JSON Example
Response Body Parameters
status
(Integer): 1 if success, 0 if failureerrors
(Array): List of errors (if present)details
(JSON Object)customersId
(Integer): Customer Id of the new businessbusinessVerificationStep
(String): State of business verification: Not Started, In Progress, Submitted, Verified
Response Body JSON Example
Potential Error Codes
Required
Required field not provided
Invalid_RegistrationInformation_EntityTypesID
Entity type not found
Invalid_RegistrationInformation_AddressCountry
Country not found
Invalid_RegistrationInformation_AddressState
State not found
Invalid_RegistrationInformation_OperatingAddressCountry
Country not found
Invalid_RegistrationInformation_OperatingAddressState
State not found
Invalid_OperationsInformation_bPubliclyListed
Value must be "Yes", "No" or "NA"
Invalid_OperationsInformation_OperationRegionIds
Id not found
Duplicated_OperationsInformation_OperationRegionIds
Ids must not be duplicated
Invalid_OperationsInformation_bLicenseRequired
Value must be "Yes", "No" or "NA"
Invalid_OperationsInformation_BusinessActivityIds
Id not found
Duplicated_OperationsInformation_BusinessActivityIds
Ids must not be duplicated
Invalid_OperationsInformation_SourceOfFundsIds
Id not found
Duplicated_OperationsInformation_SourceOfFundsIds
Ids must not be duplicated
Invalid_OperationsInformation_YearlyTransactionsId
Id not found
Invalid_OperationsInformation_MonthlyUsdValueId
Id not found
Invalid_OwnerInformation_ExemptionId
Id not found
Invalid_OwnerInformation_BusinessBeneficialOwners
Should be null if business exempt
Invalid_OwnerInformation_IndividualBeneficialOwners
Should be null if business exempt
Invalid_OwnerInformation_BusinessBeneficialOwners_Number
Numbers should be distinct and consecutive starting at 1
Invalid_OwnerInformation_BusinessBeneficialOwners_EntityTypesID_[[Number]]
Entity type Id not found for beneficial business owner number [[Number]]
Invalid_OwnerInformation_BusinessBeneficialOwners_AddressCountry_[[Number]]
Country not found for beneficial business owner number [[Number]]
Invalid_OwnerInformation_BusinessBeneficialOwners_AddressState_[[Number]]
State not found for beneficial business owner number [[Number]]
Invalid_OwnerInformation_BusinessBeneficialOwners_OperatingAddressCountry_[[Number]]
Country not found for beneficial business owner number [[Number]]
Invalid_OwnerInformation_BusinessBeneficialOwners_OperatingAddressState_[[Number]]
State not found for beneficial business owner number [[Number]]
Invalid_OwnerInformation_IndividualBeneficialOwners_Number
Numbers should be distinct and consecutive starting at 1
Invalid_OwnerInformation_IndividualBeneficialOwners_Email
Emails of individual beneficial owners must be distinct
Invalid_OwnerInformation_IndividualBeneficialOwners_Country_[[Number]]
Country not found for individual beneficial owner [[Number]]
Invalid_OwnerInformation_IndividualBeneficialOwners_Nationality_[[Number]]
Nationality not found for individual beneficial owner [[Number]]
Invalid_OwnerInformation_IndividualBeneficialOwners_StateProvince_[[Number]]
State not found for individual beneficial owner [[Number]]
Invalid_OwnerInformation.bConfirmAboveTen
bConfirmAboveTen must be true unless business has UBO exemption
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
Last updated