Onboard Customer via Banking as a Service (Restricted Account)
General Information
To start using Banking as a Service functionality, your DevApp should include Banking as a Service API product.
To open an account, order cards, and perform payments on behalf of your clients (BaaS Clients), a list of BaaS clients and their accounts must be taken.
Postman collection of Banking as a Service API is available here.
The user of the Banking as a Service API - is called Platform, which will onboard their clients which will be called BaaS Clients
Onboard Customer: Restricted Account
The user of the Banking as a Service API - is called Platform, which will onboard their clients which will be called BaaS Clients.
Restricted Accounts are fully functioning ConnectPay Customer’s account, but the end user (the holder of the account), does not have direct access to control account via ConnectPay channels.
End user - customer will be able to control Restricted Account only via Platform provided channel(s). Platform will control and secure the login credentials of the end user.
Platform users will create login credentials and user within the Platform. The Platform will redirect User to perform ID verification (IDV) and collect all the necessary data via Platform’s UI. The Platform will pass all the needed information via API to ConnectPay to perform required KYC actions.
After successful KYC, ConnectPay will notify The Platform about opened IBAN account, and BaaS Client ID.
Using BaaS Client ID - Platform will be able to view balance, order and control cards, initiate payments.
Personal Onboarding Application (Restrcited Account) flow
Personal Onboarding flow:
1. User and login credentials created at the Platform side including 2FA (2 factor authentification) method which is mandatory for user to authetificate actions.
2. Platform request an IDV (ID verification) token via API
a. POST Initiate IDV session api
b. Request:
POST /baas/onboarding/personal/idv HTTP/1.1
Host: api-stage.connectpay.com
X-Request-ID: 891bb806-3e8c-4593-8c1d-6bb9ae9401e5
Authorization: Bearer 65a09bd8-3868-4f47-9a8a-9e5a17d84196
Accept: application/json;version=1
Content-Type: application/json
Content-Length: 471
{
"externalReference": "1d4DcRtqevprMXTS4yaZsHzwQ5xvdi",
"successUrl":"https://webhook.site//1NjXmsDszUsA9PjU4qMMGHPcy5yr",
"failureUrl":"https://webhook.site//3UmtRUzSG4YvZpKJCFKWcqjZQbq6",
"dropUrl" :"https://webhook.site//3yH9PcPU4Q7qXsyGHHK4gVad3SYnBn4",
"notificationUrl": "https://webhook.site//3edeasLrY1KCbpMrSMzmtJjGBQB",
"person": {
"firstName": "John",
"lastName": "Sample Peter",
"email": "Zora61@gmail.com"
}
}
c. Response
{
"application": {
"applicationId": "61110113-c9b5-40c9-9d6a-d94d6f5f2529",
"status": "IDV_TOKEN_GENERATED"
},
"redirectUrl": "https://ui.idenfy.com/?authToken=OwGAoKevSlSFciTAX2u4G9u6XvxyVkaMgsFqYaxu&lang=en",
"sessionId": "OwGAoKevSlSFciTAX2u4G9u6XvxyVkaMgsFqYaxu"
}
3. Platform with the Received token/link need to ask customer to perform IDV
a. Inititate the IDV via iDenfy SDK: Welcome | iDenfy API Documentation and Welcome | iDenfy API Documentation
b. or Redirect to iDenfy link: Welcome | iDenfy API Documentation
4..1 After successful IDV User will be redirected back OR to successUrl if provided
4.2 If IDV is failed, then User will be redirected back OR to failureUrl if provided
4.3 If IDV is dropped without ending the flow user will be redirected back OR to dropUrl is provided
5. Platform need to receive Application status: IDV_APPROVED
a. via notification: POST Application status change notification ConnectPay APIs
b. or via GET Personal Application status API.
c. IF received status: IDV_DECLINED, step No. 2 need to be repeated.
6. After the succesfull IDV, platform need to collect additioanal details to open an account.
7. Platform requires to call this API:
a.POST Initiate onboarding Application (full KYC data) apie
b.Request
POST /baas/onboarding/personal/applications HTTP/1.1
HOST: api-stage.connectpay.com
X-Request-ID: 58821c04-6aab-407b-b8a4-bc7783b2f505'
Authorization: Bearer
Accept: application/json;version=1
Content-Type: application/json
{
"applicationId": "564a09f1-3d9a-4185-92dc-69c33dbc01a5",
"person": {
"firstName": "John",
"lastName": "Sample Peter",
"isUbo": true,
"pep": {
"isPep": true,
"position": "chair of charity"
},
"address": {
"addressLine1": "84 Rainey Street, Arlen, Texas",
"addressLine2": "address line 2",
"postcode": "TX78701",
"city": "Arlen",
"countryCode": "US"
},
"taxIdentification": {
"residenceCountry": {
"countryCode": "US",
"tin": "{{$randomMACAddress}}"
},
"additionalCountries": [
{
"countryCode": "LT",
"tin": "{{$randomMACAddress}}"
},
{
"countryCode": "PL",
"tin": "{{$randomMACAddress}}"
}
]
}
},
"account": {
"purposesOfAccount": [
"VIRTUAL_CURRENCY_OR_GAMBLING_RELATED_TRANSACTIONS"
],
"purposesOfAccountOther": "Selling pro-pain and pro-pain accessories",
"purposesOfAccountAdditionalInformation": {
"businessActivityRegistrationNo": "{{$randomMACAddress}}",
"businessActivityIndustry": "{{$randomBsBuzz}}"
},
"sourceOfIncome": "BUSINESS_PROFIT_OR_DIVIDENDS",
"sourceOfIncomeOther": "Propane sales",
"requestedProducts": [
"RAILS_SWIFT"
],
"monthlyGrossTurnover": "1000_3000"
},
"merchant": {
"paymentMethod": [
"CARD",
"PIS"
],
"targets": {
"countries": [
"LT",
"LV"
],
"monthlyGrossTurnover": {
"amount": 1000,
"currency": "EUR"
}
}
}
}
c. Response
{
"applicationId": "564a09f1-3d9a-4185-92dc-69c33dbc01a5",
"status": "COMPLIANCE_REVIEW"
}
8. After succesfull submisions application status should change to COMPLIANCE_REVIEW
9. After the required onboarding and KYC actions are completed by ConnectPay, application status will change to ACCOUNT_ISSUED
a. Application status = ACCOUNT_ISSUED, and baasClientID
will be provided.
{
"application": {
"applicationId": "f8494d2c-b602-4e13-8190-68faf5519c77",
"status": "ACCOUNT_ISSUED",
"baasClientId": "d548f667-a52f-423b-98be-0f160dc7978a",
}
}
10. Based on baasClientID
Platform should perform other actions: