Toqio onboarding-controller API
The onboarding-controller API from Toqio — 2 operation(s) for onboarding-controller.
The onboarding-controller API from Toqio — 2 operation(s) for onboarding-controller.
openapi: 3.0.0
info:
description: Endpoints to manage client accounts
version: v1.0.0
title: Accounts Account onboarding-controller API
license:
name: license
servers:
- url: https://api.sandbox.toq.io/wallet/api
description: Simulation environment
- url: https://api.toq.io/wallet/api
description: Production environment
tags:
- name: onboarding-controller
paths:
/customers/{customerId}/clients/create:
post:
tags:
- onboarding-controller
summary: Create Client Lead Via API without documents
operationId: createBasicCompanyLeadViaAPIUsingPOST
parameters:
- name: customerId
in: path
description: customerId
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBasicCompanyLeadViaApiDTO'
description: createCompanyLeadViaApiDTO
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/CreateCompanyLeadViaApiResponseDTO'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
security:
- OAuth2:
- openid
deprecated: false
/customers/{customerId}/clients:
post:
tags:
- onboarding-controller
summary: Create Client Lead Via API
operationId: createCompanyLeadViaAPIUsingPOST
parameters:
- name: customerId
in: path
description: customerId
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCompanyLeadViaApiDTO'
description: createCompanyLeadViaApiDTO
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/CreateCompanyLeadViaApiResponseDTO'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
security:
- OAuth2:
- openid
deprecated: false
components:
schemas:
ThirdParty:
type: object
properties:
code:
type: string
enum:
- xero
- a3
- anfix
- sage
mappedCategories:
type: boolean
name:
type: string
title: ThirdParty
CreateShareholderDTO:
type: object
required:
- address
- city
- country
- documentType
- frontSideBase64
- postalCode
- name
- surname
- percentageOfShares
- birthDate
properties:
name:
type: string
surname:
type: string
birthDate:
type: string
percentageOfShares:
type: string
documentType:
type: string
description: The available values for this field are PASSPORT or ID
frontSideBase64:
type: string
backSideBase64:
type: string
description: If the documentType is PersonalId you will have to fulfill this field beside the frontSideBase64 field
address:
type: string
address2:
type: string
city:
type: string
country:
type: string
postalCode:
type: string
title: CreateShareholderDTO
description: When selecting overrideCompliance true OR overrideCompliance false and runKYC true for SME REGISTERED and NON_REGISTERED clients, you can provide some information if you have it in advance about the company you want to onboard. To create and send a shareholder you will need to add some data beside the full name or number of shares, to run a proper validation process such as a personal ID and the Date of Birth. All the Ultimate Business Owners with at least a 25% of the shares should be sent to ensure the compliance process is properly run.
JourneyType:
type: object
properties:
id:
type: integer
format: int32
label:
type: string
title: JourneyType
CreateCompanyLeadViaApiResponseDTO:
type: object
properties:
data:
$ref: '#/components/schemas/ViewCompanyDTO'
status:
$ref: '#/components/schemas/CreateCompanyLeadViaApiStatus'
title: CreateCompanyLeadViaApiResponseDTO
UserInviteDTO:
type: object
required:
- firstName
- lastName
- email
- phoneCountry
- phoneNumber
- address
- birthDate
- city
- country
- postalCode
- role
properties:
role:
type: string
enum:
- ROLE_DIRECTOR
- ROLE_COMPANY_ADMIN
- ROLE_EMPLOYEE
- ROLE_ACCOUNTANT
- ROLE_OWNER
- ROLE_BENEFICIARY
- ROLE_AGENT
firstName:
type: string
lastName:
type: string
email:
type: string
phoneCountry:
type: string
description: You MUST add the country prefix. We will send an OTP SMS message when the user is setting up the credentials.
phoneNumber:
type: string
description: You MUST add a mobile phone. By adding a landline the request will be rejected.
birthDate:
type: string
example: yyyy-MM-dd
address:
type: string
address2:
type: string
city:
type: string
country:
type: string
postalCode:
type: string
title: UserInviteDTO
description: When selecting overrideCompliance true OR overrideCompliance false and runKYC true for SME REGISTERED clients, you can provide some information if you have it in advance about the company you want to onboard. All the DIRECTORS of the company MUST be added and will be required to do a KYC validation process by sending a live photo of their personal documentation and a selfie or a video, depending on the legislationCountry selection (e.g., if legislationCountry is GB this will be a selfie, if legislationCountry ES it will be a video). These DIRECTORS, in addition to the main user created in the OnboardingUserDTO, will go through this process to be reviewed in our compliance partner (overrideCompliance false) OR just saved to collect the information provided (overrideCompliance true AND runKYC true).
OnboardingUserDTO:
type: object
required:
- role
- firstName
- lastName
- birthDate
- email
- phoneCountry
- phoneNumber
- personalAddress
- personalCity
- residenceCountry
- personalPostalCode
properties:
role:
type: string
description: The role assigned depend on the organisationType and the access the user will have when accessing the portal. For CONSUMER you can select the roles ROLE_OWNER (owner of the account with total visibility and capabilities in the portal) or ROLE_BENEFICIARY (this user can access only their movements). For SME, the set of roles available are; ROLE_COMPANY_ADMIN (full permissions and Executive director of the company, will have to go over a KYC process before gaining access to the portal), ROLE_DIRECTOR (full access to the portal, representing the business role of a Manager, without going through a KYC process). ROLE_EMPLOYEE (accessing only their transactions and cards, without permissions to manage expenses of other users or running payments), ROLE_ACCOUNTANT and ROLE_AGENT (representing an external person to the organisation, with reading capabilities only)
default: ROLE_COMPANY_ADMIN
enum:
- ROLE_DIRECTOR
- ROLE_COMPANY_ADMIN
- ROLE_EMPLOYEE
- ROLE_ACCOUNTANT
- ROLE_OWNER
- ROLE_BENEFICIARY
- ROLE_AGENT
firstName:
type: string
middleName:
type: string
lastName:
type: string
birthDate:
type: string
example: yyyy-MM-dd
email:
type: string
phoneCountry:
type: string
description: This field expect the code ISO 3166 of the selected country. We will send an OTP SMS message when the user is setting up the credentials.
phoneNumber:
type: string
description: You MUST add a mobile phone. By adding a landline the request will be rejected.
personalAddress:
type: string
personalAddress2:
type: string
personalCity:
type: string
residenceCountry:
type: string
personalPostalCode:
type: string
title: OnboardingUserDTO
description: This is the information you must provide for the main user of the client. This is mandatory for any organisationType, regardless of being SME or CONSUMER.
ExpectedVolumeDTO:
properties:
currency:
type: string
description: Select the currency
default: GBP
enum:
- GBP
- EUR
range:
type: string
description: 'Allowed values: ```1-5000``` ```5001-10000``` ```10001+```'
default: 5001-10000
enum:
- 1-5000
- 5001-10000
- 10001+
type:
type: string
description: Monthly amount
default: monthly
enum:
- monthly
CreateCompanyLeadViaApiStatus:
type: object
properties:
account:
$ref: '#/components/schemas/ApiResponseItem'
billing:
$ref: '#/components/schemas/ApiResponseItem'
client:
$ref: '#/components/schemas/ApiResponseItem'
directors:
$ref: '#/components/schemas/ApiResponseItem'
documents:
$ref: '#/components/schemas/ApiResponseItem'
kyb:
$ref: '#/components/schemas/ApiResponseItem'
shareholders:
$ref: '#/components/schemas/ApiResponseItem'
user:
$ref: '#/components/schemas/ApiResponseItem'
title: CreateCompanyLeadViaApiStatus
OnboardingClientDTO:
type: object
required:
- address
- city
- clientType
- countryCode
- legislationCountry
- name
- postalCode
- businessCode
properties:
legislationCountry:
type: string
description: The legislationCountry field defines the legislation which applies to your company, not your client's companies. In the basis of this field, the client will be required to upload certain documents in the process.
default: GB
enum:
- GB
- ES
clientType:
type: string
description: You have to select the clientType to define if the aplication is for CONSUMER (retail) or BUSINESS (SME) clients
default: BUSINESS
enum:
- BUSINESS
- CONSUMER
organisationType:
type: string
description: Only for CORPORATE (SME) clients. Please verify with your banking provider if the organisation type applies
default: REGISTERED
enum:
- SOLE_TRADER
- REGISTERED
- NON_REGISTERED
subOrganisationType:
type: string
description: If selecting SOLE_TRADER the org type should be SOLE_TRADER. If selecting REGISTERED, the org. type can be LIMITED, PUBLIC_LIMITED, PARTNERSHIP or CHARITY. In case you are selecting NON_REGISTERED, the org. type could be ASSOCIATION, SUPPORT_GROUP, NON_REG_PARTNERSHIP or NOT_YET_REGISTERED
default: LIMITED
enum:
- SOLE_TRADER
- LIMITED
- PARTNERSHIP
- CHARITY
- PUBLIC_LIMITED
- ASSOCIATION
- SUPPORT_GROUP
- NON_REG_PARTNERSHIP
- NOT_YET_REGISTERED
industryCode:
deprecated: true
type: string
description: This field is required if the banking provider is Modulr and the client is BUSINESS.
default: I
enum:
- I
- N
- A
- R
- F
- P
- D
- K
- Q
- J
- C
- B
- X
- S
- M
- O
- L
- H
- E
- G
businessCode:
type: string
description: Identifies the merchant’s primary economic activity. Used by banking providers for compliance, risk and reporting. You can find the list of available business codes in the API documentation.
name:
type: string
description: This will be the company name for BUSINESS, REGISTERED or NON_REGISTERED, and the name and surname for SOLE_TRADER or CONSUMER client type.
cif:
type: string
description: This is the company number of the client and it's mandatory if the type is BUSINESS.
registrationDate:
type: string
description: Format yyyy-MM-dd
address:
type: string
description: This is the address of the client, which could be different of the Trading Address. You can populate both address data with the same information.
address2:
type: string
description: Optional
city:
type: string
countryCode:
type: string
description: This field expect the code ISO 3166 of the selected country.
postalCode:
type: string
tradingName:
type: string
description: To be fulfilled for SME (REGISTERED, NON_REGISTERED and SOLE_TRADER) clients only. This applies to any subOrganisationType and must be populated.
tradingAddress:
type: string
description: To be fulfilled for SME (REGISTERED, NON_REGISTERED and SOLE_TRADER) clients only. This applies to any subOrganisationType and must be populated.
tradingAddress2:
type: string
description: Optional
tradingCity:
type: string
description: To be fulfilled for SME (REGISTERED, NON_REGISTERED and SOLE_TRADER) clients only. This applies to any subOrganisationType and must be populated.
tradingCountry:
type: string
description: To be fulfilled for SME (REGISTERED, NON_REGISTERED and SOLE_TRADER) clients only. This applies to any subOrganisationType and must be populated.
tradingPostalCode:
type: string
description: To be fulfilled for SME (REGISTERED, NON_REGISTERED and SOLE_TRADER) clients only. This applies to any subOrganisationType and must be populated.
accountPurposes:
type: array
items:
type: string
enum:
- PAY-BILLS
- MONEY-TO-FROM-FAMILY
- DIVIDENDS
- OTHER
- SAVINGS
- PERSONAL-BUSINESS-PURPOSES
- PENSION
- CRYPTO
- LOTTERY-GAMING
- SALARY
legalPhoneNumber:
type: string
description: Add the merchants legal phone number, this can be a landline or a mobile phone.
legalPhoneCountry:
type: string
description: You MUST add the country prefix of the phone number.
statementDescriptor:
type: string
description: It will appear on the end customer's bank or card statement, if supported by the banking service provider, to help identifying a transaction.
maxLength: 22
pattern: ^[a-zA-Z0-9.,'\_\-?+*/ ]*$
expectedVolume:
type: object
$ref: '#/components/schemas/ExpectedVolumeDTO'
title: OnboardingClientDTO
description: A client is the top object, containing users. It can be a corporate or an individual, in the case of consumer users or sole traders. A client has a main user which must be created at the time of creating the client. This main user will be invited to set up the credentials and join the application.
ApiResponseItem:
type: object
properties:
errors:
type: array
items:
type: string
success:
type: boolean
title: ApiResponseItem
Document:
type: object
required:
- documentPageBase64EncodedString
- documentType
- name
properties:
documentPageBase64EncodedString:
type: string
description: Send the file in base64
documentType:
type: string
description: The document type will depend on the legislationCountry value. If GB the available documentType are PROOF_OF_SHAREHOLDER_STRUCTURE, PREVIOUS_YEAR_ACCOUNTS and PROOF_OF_TRADING_ADDRESS. If the legislationCountry is ES the available documentType are ESCRITURAS, CIF and CERTIFICADO_DE_TITULARIDAD_REAL.
name:
type: string
description: The name of the document.
title: Document
description: You can send, when creating a lead, some documentation related to the company to speed up the compliance process or just for recording that information about the business. This applies to SME REGISTERED clients ONLY. As you can see below, in the documentType field, in the basis of the legislationCountry selected there are a number of documents you can send.
DirectorDTO:
type: object
properties:
alias:
type: string
cards:
type: array
items:
type: string
email:
type: string
firstName:
type: string
id:
type: string
intnlPhoneNumber:
type: string
kycStatus:
type: string
enum:
- AWAITING_RESPONSE
- REFERRED
- COMPLETE
- PENDING_EXTERNAL_APPROVAL
- ACCEPT
- DECLINE
- CLOSE
- OVERRIDE_COMPLIANCE
- REFQUE
- STADEC
- STACLR
lastName:
type: string
locale:
type: string
onboardedAt:
type: string
format: date-time
onboardingStatus:
type: string
enum:
- INCOMPLETE
- NOT_ONBOARDING
- PENDING_KYC_RESULT
- PENDING_KYB_RESULTS
- PENDING_KYC_DOCUMENTS
- PENDING_KYB_DATA
- PENDING_KYB
- PENDING_ACCOUNT
- COMPLETED
- DECLINED
- PENDING_USER_INFO
- PENDING_KYC
phoneCountry:
type: string
phoneNumber:
type: string
pushEnabled:
type: boolean
truNarrativeLink:
type: string
enabled:
type: boolean
description: This field indicating whether the user is enabled or disabled to use the platform.
default: true
tin:
type: string
description: '[Deprecated] Type of Nominal Interest, used by Crealsa'
title: DirectorDTO
Shareholder:
type: object
properties:
address:
type: string
address2:
type: string
birthDate:
type: string
format: date-time
city:
type: string
country:
type: string
id:
type: string
kyc:
$ref: '#/components/schemas/KYX'
name:
type: string
percentageOfShares:
type: string
postalCode:
type: string
s3DocumentURL:
type: string
surname:
type: string
title: Shareholder
ViewCompanyDTO:
type: object
properties:
clientType:
type: string
enum:
- BUSINESS
- CONSUMER
complianceBlocksStatuses:
$ref: '#/components/schemas/ComplianceStatusDTO'
countryCode:
type: string
customerId:
type: string
description: We will provide you with a costumer id to be placed in this field. If you don't have it, please get in touch with customer_success@toq.io
directors:
type: array
items:
$ref: '#/components/schemas/DirectorDTO'
externalFinanceId:
type: string
description: The financing external id, used if the feature advanced invoicing is being used by the customer.
externalId:
type: string
description: The same as externalFinanceId.
id:
type: string
kyxStatus:
type: string
enum:
- AWAITING_RESPONSE
- REFERRED
- COMPLETE
- PENDING_EXTERNAL_APPROVAL
- ACCEPT
- DECLINE
- CLOSE
- REFQUE
- STADEC
- STACLR
legislationCountry:
type: string
logo:
type: string
name:
type: string
onboardingStatus:
type: string
enum:
- INCOMPLETE
- NOT_ONBOARDING
- PENDING_KYC_RESULT
- PENDING_KYB_RESULTS
- PENDING_KYC_DOCUMENTS
- PENDING_KYB_DATA
- PENDING_KYB
- PENDING_ACCOUNT
- COMPLETED
- DECLINED
- PENDING_USER_INFO
- PENDING_KYC
organisationType:
type: string
enum:
- SOLE_TRADER
- REGISTERED
- NON_REGISTERED
primaryContactId:
type: string
description: The id of the primary user of the company
registrationDate:
type: string
shareholders:
type: array
items:
$ref: '#/components/schemas/Shareholder'
status:
type: string
enum:
- LEAD
- ONBOARDING
- ONBOARDED
- FROZEN
- REJECTED
subOrganisationType:
type: string
enum:
- SOLE_TRADER
- LIMITED
- PARTNERSHIP
- CHARITY
- PUBLIC_LIMITED
- ASSOCIATION
- SUPPORT_GROUP
- NON_REG_PARTNERSHIP
- NOT_YET_REGISTERED
superCustomerId:
type: string
thirdParty:
$ref: '#/components/schemas/ThirdParty'
description: '[Deprecated] The third party used by the company.'
tradingAddress:
type: string
tradingAddress2:
type: string
tradingCity:
type: string
tradingCountry:
type: string
tradingName:
type: string
tradingPostalCode:
type: string
viewAlertThirdParty:
type: boolean
description: '[Deprecated] Used to indicate if the third party is being used.'
hasAccountCreated:
type: boolean
description: This field is true if the client has already created an account.
default: false
externalAccountId:
type: string
description: '[Deprecated] Used for Crealsa. This field is deprecated and will be removed in future versions.'
tnAccountId:
type: string
description: '[Deprecated] Trunarrative account id.'
title: ViewCompanyDTO
KYX:
type: object
properties:
accountId:
type: integer
format: int32
accountReference:
type: string
auditReference:
type: string
clientApplicationReference:
type: string
date:
type: string
format: date-time
documents:
type: array
items:
$ref: '#/components/schemas/Document'
journey:
$ref: '#/components/schemas/Journey'
journeyType:
$ref: '#/components/schemas/JourneyType'
kyxType:
type: string
enum:
- KYB
- KYC
previousStatus:
type: string
enum:
- AWAITING_RESPONSE
- REFERRED
- COMPLETE
- PENDING_EXTERNAL_APPROVAL
- ACCEPT
- DECLINE
- CLOSE
- REFQUE
- STADEC
- STACLR
referralReference:
type: string
riskLevel:
type: string
status:
type: string
enum:
- AWAITING_RESPONSE
- REFERRED
- COMPLETE
- PENDING_EXTERNAL_APPROVAL
- ACCEPT
- DECLINE
- CLOSE
- REFQUE
- STADEC
- STACLR
uid:
type: string
updatedAt:
type: string
format: date-time
title: KYX
CreateCompanyLeadViaApiDTO:
type: object
properties:
customerId:
type: string
description: We will provide you with a costumer id to be placed in this field. If you don't have it, please get in touch with customer_success@toq.io
client:
$ref: '#/components/schemas/OnboardingClientDTO'
user:
$ref: '#/components/schemas/OnboardingUserDTO'
overrideCompliance:
type: boolean
description: Select true if you don't need the client going over the compliance process. This will only work for compliance providers that permit the use of the override process. Use carefully and only if you already have run a compliance process over the client.
runKYC:
type: boolean
description: Works only for TRUNARRATIVE compliance process. If in the field above, overrideCompliance, you have selected true, you still can ask the user for company and personal information to be collected for monitoring. When selecting this option as true, the client will be asked for the compliance information but won't go thru a compliance process and will be automatically onboarded.
sendInvite:
type: boolean
description: Select true if you want to send an invite to the main user of the client. If you select false, it will store the data and you could invite the lead later at your convenience from the admin portal.
billingModelId:
type: string
description: Add the id of the billing model you want to apply to the customer.
directors:
type: array
items:
$ref: '#/components/schemas/UserInviteDTO'
shareholders:
type: array
items:
$ref: '#/components/schemas/CreateShareholderDTO'
documents:
type: array
items:
$ref: '#/components/schemas/Document'
title: Create Client Lead
description: This is the main endpoint to create a new lead.
CreateBasicCompanyLeadViaApiDTO:
type: object
properties:
customerId:
type: string
description: We will provide you with a costumer id to be placed in this field. If you don't have it, please get in touch with customer_success@toq.io
client:
$ref: '#/components/schemas/OnboardingClientDTO'
user:
$ref: '#/components/schemas/OnboardingUserDTO'
overrideCompliance:
type: boolean
description: Select true if you don't need the client going over the compliance process. This will only work for compliance providers that permit the use of the override process. Use carefully and only if you already have run a compliance process over the client.
billingModelId:
type: string
description: Add the id of the billing model you want to apply to the customer.
title: Create Client Lead
description: This is the main endpoint to create a new lead.
Journey:
type: object
properties:
id:
type: integer
format: int32
name:
type: string
title: Journey
ComplianceStatusDTO:
type: object
properties:
boardOfDirectorsStatus:
type: string
enum:
- IN_PROGRESS
- COMPLETED
- UNDER_REVIEW
- DECLINED
- PENDING
- VERIFYING
- VERIFIED
businessDetailsStatus:
type: string
enum:
- IN_PROGRESS
- COMPLETED
- UNDER_REVIEW
- DECLINED
- PENDING
- VERIFYING
- VERIFIED
overallComplianceStatus:
type: string
enum:
- IN_PROGRESS
- COMPLETED
- UNDER_REVIEW
- DECLINED
- PENDING
- VERIFYING
- VERIFIED
shareholdersStatus:
type: string
enum:
- PENDING
- IN_PROGRESS
- COMPLETED
supportingDocumentsStatus:
type: string
enum:
- IN_PROGRESS
- COMPLETED
- UNDER_REVIEW
- DECLINED
- PENDING
- VERIFYING
- VERIFIED
title: ComplianceStatusDTO
securitySchemes:
clientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api.toq.io/iam/oauth/token
scopes: {}
x-source-pages:
- https://platform.toq.io/reference/createaccountusingpost_1
- https://platform.toq.io/reference/createdynamicaccountconfiguration
- https://platform.toq.io/reference/createproduct
- https://platform.toq.io/reference/deleteaccountstatusviaapiusingdelete
- https://platform.toq.io/reference/deleteaccountviaapiusingput
- https://platform.toq.io/reference/deletedynamicaccountconfiguration
- https://platform.toq.io/reference/getaccountsusingget
- https://platform.toq.io/reference/getaccountusingget
- https://platform.toq.io/reference/getclientaccounts
- https://platform.toq.io/reference/getcustomfaculties
- https://platform.toq.io/reference/getdynamicaccountbuttonconfiguration
- https://platform.toq.io/reference/getledgertypetexts
- https://platform.toq.io/reference/getpartnerproductsusingget_1
- https://platform.toq.io/reference/getproducts
- https://platform.toq.io/reference/updateaccountalias
- https://platform.toq.io/reference/updateaccountreadonlystatus
- https://platform.toq.io/reference/updatecustomfaculties
- https://platform.toq.io/reference/updatedynamicaccountconfiguration
- https://platform.toq.io/reference/updateledgertypetexts
- https://platform.toq.io/reference/updateproduct