Skip to content
Last updated

Onboarding

This guide walks you through onboarding corporate bank accounts via the Open Banking channel. The onboarding process connects your organization's bank accounts to the Aritma Banking API, enabling account information retrieval and payment initiation.

Prerequisites

Before you begin, make sure you have the following in place:

  • A tenant and subscription - see the Getting Started guide
  • A client with the banking.consents.create IAM action granted on the subscription. In most cases, granting banking.manage is sufficient as it includes banking.consents.create and other required actions.
  • The scope banking.ais.read to verify onboarded accounts
Example values used in this guide

The examples below use the following values - replace them with your own:

PlaceholderExample valueDescription
subscriptionId992606c793984bcf81e543d90ecfbb36Your subscription ID
organisationNumber999999999The organization number
bankIdcba4beaf-9b52-40c5-8929-e0af6c1e8b18The bank identifier

Step 1: Find your bank

Use the GET /banks endpoint to find available banks for open banking. You'll need the bankId from the response when creating a consent.

curl -i -X GET \
  'https://developer.aritma.com/_mock/apis/banking/v4/openapi/banking-openapi/banks?countryCode=NO&channels=string&includeAdditionalInformation=true' \
  -H 'api-version: string'
Note:

Some banks include an onboarding field with links to external onboarding documents or pages. Check these for any bank-specific requirements before proceeding.

Try it out

Loading...

Create a consent by calling POST /consents with the organization and bank account details.

FieldDescription
channelTypeMust be "openBanking" for open banking
subscriptionIdYour subscription ID (e.g. 992606c793984bcf81e543d90ecfbb36)
resourceGroupNameThe organization number (e.g. "999999999"). A new resource group is created automatically if one does not already exist.
bankIdThe bank identifier from Step 1
properties.psuCorporateIdThe organization number
properties.accountNumbersComma-separated list of account numbers to onboard
properties.combinedServiceIndicatorSet to "true" to enable combined AIS and PIS services
properties.numberOfApproversNumber of required approvers (e.g. "1")
Note:

The required consent properties may vary between banks. Use GET /banks/{bankId} with includeAdditionalInformation=true to discover bank-specific property requirements.

curl -i -X POST \
  https://developer.aritma.com/_mock/apis/banking/v4/openapi/banking-openapi/consents \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'api-version: string' \
  -d '{
    "channelType": "openBanking",
    "subscriptionId": "992606c793984bcf81e543d90ecfbb36",
    "resourceGroupName": "999999999",
    "properties": {
      "psuCorporateId": "999999999",
      "combinedServiceIndicator": "true",
      "numberOfApprovers": "1",
      "accountNumbers": "<AccountNumber1>, <AccountNumber2>"
    },
    "bankId": "cba4beaf-9b52-40c5-8929-e0af6c1e8b18"
  }'

The response contains:

  • consentId - store this for later use
  • redirectUrl - the URL to redirect the PSU (Payment Service User) to
  • status - the initial consent status
Note:

The redirectUrl is only usable once.

Try it out

Loading...

Step 3: Redirect the PSU

A user with a valid role in the organization must open the redirectUrl from the previous step. They will be presented with information about the onboarding and asked to confirm it.

You can preselect the language by appending a ui-culture query parameter to the redirect URL:

  • ?ui-culture=nb - Norwegian BokmÃ¥l
  • ?ui-culture=en - English (default)

Step 4: User Verification

The PSU must authenticate with BankID (in Norway) or the country-equivalent identification method. This verifies the user's identity with Aritma.

Step 5: KYC validation

After user verification, our system automatically performs KYC (Know Your Customer) validation:

  1. Role validation - verifies the PSU has a valid role in the organization
  2. Account ownership - verifies the organization is the account owner of the bank accounts requested in the consent

Step 6: Completion and provisioning

What happens next depends on the state of the bank agreement and KYC results:

  • Bank agreement exists - If an agreement with the bank has already been established (external process), the onboarding service will typically complete the onboarding automatically and provision the accounts.
  • No bank agreement or insufficient information - If no bank agreement has been created, or the bank does not supply enough onboarding information, the Aritma support team will manually review the onboarding.
  • KYC insufficient - If KYC validation is not sufficient, or KYC is not supported for the country, Aritma support can execute manual KYC validation.
Note:

You can track the consent status by polling GET /consents/{consentId} or by subscribing to consent events through the Events API. The consent status will transition from Created → Started → Authorized when complete, or to AwaitingApproval if manual review is required.

curl -i -X GET \
  https://developer.aritma.com/_mock/apis/banking/v4/openapi/banking-openapi/consents/1E5EFC3B-635E-4973-A605-41D7F0D6D7B3 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'api-version: string'
Loading...

Step 7: Verify onboarded accounts

Once the consent status is Authorized, verify the onboarding by retrieving the accounts. You can scope the request in two ways:

curl -i -X GET \
  'https://developer.aritma.com/_mock/apis/banking/v4/openapi/banking-openapi/accounts?withBalance=true&bban=12345612345678&iban=FR7612345987650123456789014&search=string&cursor=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Channel-Type: unspecified' \
  -H 'Consent-ID: <consentId>' \
  -H 'PSU-IP-Address: string' \
  -H 'Resource-Group-Name: string' \
  -H 'Scopes: /subscriptions/7fdf00601dfb/resource-groups/my-company' \
  -H 'Subscription-Id: string' \
  -H 'api-version: string'

Option B: Using subscription and resource group headers

curl -i -X GET \
  'https://developer.aritma.com/_mock/apis/banking/v4/openapi/banking-openapi/accounts?withBalance=true&bban=12345612345678&iban=FR7612345987650123456789014&search=string&cursor=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Channel-Type: openBanking' \
  -H 'Consent-ID: string' \
  -H 'PSU-IP-Address: string' \
  -H 'Resource-Group-Name: 999999999' \
  -H 'Scopes: /subscriptions/7fdf00601dfb/resource-groups/my-company' \
  -H 'Subscription-Id: 992606c793984bcf81e543d90ecfbb36' \
  -H 'api-version: string'

If accounts are returned with status enabled, they are ready for use - including payment initiation.

Try it out

Loading...