Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 247 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

API cookbooks

Welcome

Loading...

Authentication

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Header parameters

Loading...

Loading...

Loading...

Loading...

Loading...

Employee

Loading...

Loading...

Loading...

Person

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

ACCOUNTS

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Reports

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

DEPOSITS

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Payments

Loading...

Loading...

Loading...

Loading...

Loading...

Export-import roles

Here, you can learn how to use APIs to export roles and their privileges from one Tuum environment and import them into another. This functionality aims to facilitate smooth replication for testing across different environments.

Tuum offers three API endpoints for exporting and importing roles and their associated privileges.

  1. Export roles endpoint enables you to retrieve all roles or specific roles and their privileges from the source Tuum environment.

  2. Partial import endpoint allows you to add a selected set of roles and their privileges to the target Tuum environment. Any existing roles and privileges in the target environment not included in the import will remain unchanged.

  3. Complete import endpoint lets you delete all existing roles and their privileges in the target environment and replace them with new roles and privileges specified in the payload.

The export and import functionality is restricted to users with the EXPORT_IMPORT_ROLE_PRIVILEGES privilege. Learn here how to assign privileges.

About authentication

To use Tuum's API, you must first authenticate. Once you have completed the authentication process, you will receive a . This token allows you to make authorised API calls within the Tuum system.

Tuum has two different API endpoints for authentication:

  1. ,

  2. .

You must choose the authentication endpoint applicable to the context in which you will make API requests.

  • When making API requests for your employees, select the authentication endpoint for employees.

  • When making API requests for your customers, select the authentication endpoint for customers.

In this part of the API cookbook, you will find:

QMR - Quarterly Mastercard report

You can generate a quarterly Mastercard report in PDF format by following these steps:

JSON Web Token (JWT)
of employees
of customers
Authenticate employee
Create customer credentials
Authenticate customer
Refresh JSON Web Token
Invalidate customer credentials
Export-import roles
Request to generate QMR manually
Check QMR generation status
Export requested QMR as PDF

Mandatory parameters

To make an authorised API call, you must include the x-auth-token header parameter.

x-auth-token

For the HTTP header parameter x-auth-token, use the JWT token you received in response to the authentication call as a parameter value.

Example cURL with employee token

-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDMtMDhUMDg6NDg6NDkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2NzgyNjUzMjl9.G7rqNTJbeyMdMy1ZGwu1G7JRSvwAg084IiBYhOEz4I8'

Authenticate customer

Here, you can learn how to make an API call to authenticate a customer. Once you execute the call successfully, you will receive a JSON web token that permits you to make authorised API calls to other Tuum API endpoints.

Sample API call

To authenticate a customer, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/authorise

Learn more about the authenticate customer endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for authentication of a customer.

{
"username": "customer_username",
"password": "customer_password"
}
curl 'https://auth-api.sandbox.tuumplatform.com/api/v1/authorise' \
-H 'Content-Type: application/json' \
-d '{
"username": "customer_username",
"password": "customer_password"
}'

Please make sure to input the username and password of the particular customer when submitting your request.

If your customer doesn't have login details, you can create them following the instructions provided in the Create customer credentials example.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWF0b21payIsInBlcnNvbklkIjoiSUQtMTAzOCIsInRlbmFudENvZGUiOiJNQiIsImV4cGlyeURUaW1lIjoiMjAyMy0wNy0yOFQxMjoyMDoyMSIsImV4cCI6MTY5MDU0NjgyMX0.wpNOfTan73vnqQNZo5cI99B2NWuVZ6wurW9JiO7z0x0"
    }
}

Result

An customer is authenticated, and a JSON Web Token is returned in the response.

In order to make authorised API calls, the JSON Web Token that was received must be used as a parameter value for the x-auth-token header parameter.

Savings accounts

A savings account is a type of account designed to help customers save money for specific goals while earning a higher interest rate. To open a savings account, you must have an existing currency account (called the servicing account) and provide an initial deposit.

These API call examples demonstrate how to create a new savings account, retrieve its unique savings ID, and set up a savings order to automate recurring deposits.

See the sections below for details:

About reports

To generate and download a report, follow these steps as part of the standard report flow:

  1. Request to generate a report.

  2. Check the report generation status.

  3. Download the requested report.

For more detailed information about specific report workflows, refer to the available report guides.

Import all roles

In this example, you can learn how to replace all roles and their privileges in the target Tuum environment.

This endpoint is disabled for the Prod (Live) environment and is available only for non-Prod environments like DEV, TEST, or similar ones.

As a precondition to import, first export all roles and associated privileges by making the API call, as shown in the example of exporting selected roles with an empty request body.

Use case

In this example, we showcase the steps to replace all roles and associated privileges in the target environment using the data retrieved in your export roles request.

Use case data
API parameters with values

We want to import all roles to the target environment and thus we have to use the roles and privileges from the response of the export done before.

The system will import only roles and privileges with a valid validity range.

Sample API calls

To import all roles and privileges, make the following API call with the roles and associated privileges (exported before) in the request body.

https://auth-api.{another-environment}.tuumplatform.com/api/v1/roles/privileges/import

Learn more about the endpoint in the Tuum developer portal.

Result

All valid roles and their privileges in the target environment have been replaced with roles and associated privileges exported from the source environment.

Activate deposit product

Use case

In this use case we will activate a new deposit product that was created as a previous step.

Use case data
API parameters with values

The path parameter is depositTypeCode. We will use the PREMIUM deposit product.

.../product/PREMIUM/activate

Sample API call

To activate a deposit product, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v1/deposits/product/{depositTypeCode}/activate

See more information about the activate deposit product endpoint in the Tuum developer portal.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

Result

As a result, the PREMIUM deposit product was activated.

Create outgoing payments

In this section, you will find instructions on how to create the following types of outgoing payments:

Account transactions report

You can generate an accounts transactions report in CSV or JSON format by following these steps:

Invalidate customer credentials

Here, you can learn how to make an API call to invalidate customer credentials. Once the call succeeds, your customer cannot authenticate using the invalidated credentials.

Sample API call

To create customer credentials, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/credentials/invalidate

Learn more about the in the Tuum developer portal.

Invalidate customer credentials

POST https://auth-api.sandbox.tuumplatform.com/api/v1/credentials/invalidate

Learn more about the in the Tuum developer portal.

Sample request

Below is an example request body of the API call to invalidate customer credentials.

Please make sure to input the username and password of the particular customer when submitting your request.

To make a successful API call, you must include the JSON Web Token of the authenticated employee with specific user rights as a header parameter with the value of x-auth-token. Kindly adhere to the instructions given in the explanations for .

Sample response

Below you find an example response body to the API call above.

Response

Result

After making the API call, the customer's credentials become invalid, making it impossible to authenticate themselves.

Find person addresses

Use case

Learn how to find a particular person's addresses in Tuum. In this example, we will demonstrate it on a private person using the following data.

Use case data
API parameters with values

To retrieve the record of a legal entity, use the same API endpoint.

Sample API call

To retrieve customer data, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/addresses

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to retrieve person addresses.

No request body.

Sample response

Below you find an example response body to the API call above.

Response

Result

The result of the API call is the overview of the addresses linked to the person.

Authenticate employee

Here, you can learn how to make an API call to authenticate an employee. Once you execute the call successfully, you will receive a JSON web token that permits you to make authorised API calls to other Tuum API endpoints.

Sample API call

To authenticate an employee, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/employees/authorise

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for authentication of an employee.

Please make sure to input the username and password of the particular employee when submitting your request.

Sample response

Below you find an example response body to the API call above.

Response

Result

An employee is authenticated, and a JSON Web Token is returned in the response.

In order to make authorised API calls, the JSON Web Token that was received must be used as a parameter value for the x-auth-token header parameter.

Find employee by username

Use case

In this example, we will review how to find an employee by username.

Use case data
API parameters with values

Sample API call

To find an employee by username, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/employees/{employeeId}

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to retrieve customer data.

No request body.

Sample response

Below you find an example response body to the API call above.

Response

Result

The result of the API call is the dataset of a particular employee.

Refresh JSON Web Token

Here, you can learn how to make an API call to refresh a valid JSON Web Token. Once you execute the call successfully, you will receive a JSON Web Token with new expiration time.

You can use the refresh JSON Web Token endpoint to renew a valid token of an employee or customer. For renewal, provide the respective token as the value for the x-auth-token header parameter.

Sample API call

To refresh a valid JSON Web Token, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call to refresh a valid JSON Web Token.

This POST request does not have a body.

Sample response

Below you find an example response body to the API call above.

Response

Result

The response will contain a fresh JSON Web Token with an updated expiration time.

You can keep making API calls using the renewed JSON Web Token.

Create customer group

Use case

Here we will review how to create customer groups that are used to make different price decisions based on the group. We will create a new customer group using the following data:

Use case data
API parameters with values

Sample API call

To create a new customer group, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v1/person-group-types

See more information about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a new customer group.

Sample response

Here you find an example response body to the API call above.

Response

Result

A new BUSINESS customer group is created.

Create deposit class code

Use case

Here we will review how to create deposit class codes that can be used to define separate general ledger accounts for different deposit products. We will create a new deposit class code for the premium customers.

Use case data
API parameters with values

Sample API call

To create a new deposit class code, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v1/deposit-class-codes

See more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a deposit class code.

Sample response

Below you find an example response body to the API call above.

Response

Result

As an outcome, a new deposit class code for premium customers was created.

Forget person

Use case

In this use case, we will review a situation when a person - Rhys Davey with personId ID-3204, who has the account inactivated, requested the bank to remove the personal data. To complete this request, you can initiate the forget person process.

Sample API call

To initiate the forget person process, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3204/forget/start

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the forget person API call.

Sample response

The forget person generates the following response.

Response

Result

As an outcome, the personal data of Rhys Davey ID-3204 is forgotten.

Check QMR generation status

Here, you will learn how to check the generation status of QMR in Tuum.

Use case

In this use case, we will demonstrate how to check the generation status of a requested QMR.

Use case data
API parameters with values

Sample API call

To find the status of the requested report, make the following API call.

reports-api.sandbox.tuumplatform.com/ api/v2/generations/{generationId}

Learn more about the endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

No request body.

Sample response

Below you will find the response to the API request:

Response

Result

This endpoint returns the status of the QMR. When the statusCode value is DONE, the report is . In this example, the sourceRef for exporting the PDF file is ID-4359.

Deposit flow

In this block, you will learn how to open a deposit contract flow. There are two flows available:

  • ,

  • .

Deposit flow - from application

The first deposit flow starts from a deposit application and includes the following steps:

  1. - once the deposit application is created, the Tuum system automatically creates a related deposit offer.

  2. - once the deposit offer is accepted, the Tuum system automatically creates a related deposit contract. Or - reject the offer and terminate the flow.

Deposit flow - from offer

You can use this flow if your organisation processes deposit applications outside the Tuum system.

When using the deposit offer flow, you can set or change the interest rate within the deposit product min/max range. On the contrary, the deposit application flow always uses the default interest rate with no option to change it.

This deposit contract flow starts from a deposit offer and includes the following steps:

  1. - to enter the required deposit information into the Tuum system.

  2. - once the deposit offer is accepted, the Tuum system will automatically create a deposit contract based on the deposit offer. Or - to reject the deposit offer and terminate the flow.

Below, you will find the following chapters:

Inactivate deposit product

Use case

In this example, we will review how to deactivate a deposit product.

Use case data
API parameters with values

Sample API call

To deactivate a deposit product, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v1/deposits/product/{depositTypeCode}/deactivate

See more information about the endpoint in the Tuum developer portal.

Sample response

Below, you find an example response body to the API call above.

Response

Result

As a result, the PREMIUM deposit product was deactivated.

  • Once a deposit product is deactivated, the existing active contracts created under this product will remain active until they reach their maturity date.

  • Opening new contracts for a deactivated deposit product is not possible.

Find person

This guide will help you find details about an individual or a legal entity.

The endpoint provides a detailed overview of the person from various APIs.

The endpoint provides person's address details.

You can use use other endpoints to find person details such as , , , , , , , , , , and . Select the appropriate endpoint based on the specific requirements to retrieve the necessary person data.

Based on your use case, use either of the endpoints to retrieve person data:

Deposit product management

Instructions in this section will help you to manage deposit products throughout their lifecycle.

Below you will find the following chapters:

Deposit contract management

In this block, you will find the most common use cases that explain how to manage an active deposit contract.

Below you will find the following sections:

Create savings account
Find savings ID for savings account
Create or update savings order
Account transactions report
QMR - Quarterly Mastercard report
Create SEPA payment
Create SWIFT payment
Create domestic UK payment
Create domestic US payment
Request to generate account transactions report
Check account transactions report generation status
Download requested account transactions report
Deposit flow - from application
Deposit flow - from offer
Create deposit application
Accept deposit offer
decline deposit offer
Create deposit offer
Accept deposit offer
decline deposit offer
Create deposit application
Find deposit application
Create deposit offer
Find deposit offer
Accept deposit offer
Edit deposit offer
Decline deposit offer
Find deposit contract
find person details
find person address
countries
additional contacts
logs
documents
external contacts
financial data
groups
ID numbers
LEI code
person representatives
tax numbers
Find person details
Find person addresses
Create deposit class code
Create deposit product
Update deposit product
Activate deposit product
Find deposit product
Inactivate deposit product
Change payout details
Change contract prolongation status
Update contract header
Adjust deposit contract interest
Make premature termination
All roles and privileges from the 
response of the export done before.
{
    "errors": null,
    "validationErrors": null,
    "data": null
}
endpoint
endpoint
curl 'https://auth-api.sandbox.tuumplatform.com/api/v1/credentials/invalidate' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTM6MjE6MTYiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1NTA0NzZ9.KFAC4t3rgo6Cc2yr9V2-h6ZfgOyKLXyI9u22FLa_gvQ' \
-H 'Content-Type: application/json' \
-d '{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}'
header parameters
{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}

Private person with Tuum personId: ID-3392.

.../persons/ID-3392/addresses

find person address
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/addresses' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjFUMTA6NTc6MzIiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTYyODkwNTJ9.nz1Fm5JV4tgUvL9rD-PbVb_fBVbIgbbxDhVpPdp6h2Q' \
--header 'x-channel-code: SYSTEM' \
--data ''
{
    "errors": null,
    "validationErrors": null,
    "data": [
        {
            "addressId": "ID-3052",
            "personId": "ID-3392",
            "addressTypeCode": "R",
            "street1": "85 Park End St",
            "street2": null,
            "cityCounty": "Broomhill",
            "stateRegion": null,
            "zip": "NE65 0YW",
            "countryCode": "GB",
            "moveInDate": null,
            "validityRange": {
                "endTime": null,
                "startTime": "2023-06-01T07:55:53.213023Z"
            }
        }
    ]
}
authenticate employee
curl -X POST 'https://auth-api.sandbox.tuumplatform.com/api/v1/employees/authorise' \
-H 'Content-Type: application/json' \
--data-raw '{
"username": "employee_username",
"password": "employee_password"
}'
{
"username": "employee_username",
"password": "employee_password"
}
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDMtMDhUMDg6NDg6NDkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2NzgyNjUzMjl9.G7rqNTJbeyMdMy1ZGwu1G7JRSvwAg084IiBYhOEz4I8"
    }
}

We will search for the employee with the [email protected] username.

...api/v1/employees/[email protected]

find employee
curl --location 'https://auth-api.sandbox.tuumplatform.com/api/v1/employees/username?username=test.employee%40bank.com' \
--header 'x-channel-code: BACKOFFICE' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjUtMDEtMDZUMjI6MzA6MjIiLCJleHAiOjE3MzYyMDI2MjIsInJvbGVzIjpbIkFETUlOIl19.N67SgRQZXpJHFCh-Ea6oAyQjlq86kl8vUkEyokn6bDw' \
--data ''
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "employeeId": "ID-1183",
        "firstName": "Test",
        "lastName": "Employee",
        "username": "[email protected]",
        "email": "[email protected]",
        "authenticationMethod": "PASSWORD",
        "defaultTenantCode": "MB",
        "roles": [
            "CUSTOMER_SERVICE"
        ],
        "tenants": [
            {
                "tenantEmployeeId": "ID-1213",
                "defaultTenant": true,
                "tenantId": "ID-1000",
                "tenantCode": "MB",
                "roles": [
                    "CUSTOMER_SERVICE"
                ]
            }
        ],
        "externalId": null,
        "lastLogin": "2024-11-25T12:28:04.635156Z",
        "blockedUntil": null,
        "failedAttempts": 0
    }
}
refresh JSON token
curl -X POST 'https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTA6MDM6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1Mzg2MDF9.vOLapdiXflbGV4c2pJnziQzgJzP1MYPPBcdk4wIZdoM' \
-d ''
https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTA6MDM6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1Mzg2MDF9.vOLapdiXflbGV4c2pJnziQzgJzP1MYPPBcdk4wIZdoM"
    }
}

The group name is business.

"personGroupCode": "BUSINESS"

This is a group for the premium customers.

"description": "Premium customers"
{
    "errors": null,
    "validationErrors": null,
    "data": null
}
create customer group
curl -L 'https://person-api.sandbox.tuumplatform.com/api/v1/person-group-types' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTlUMjA6NDQ6MTIiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODcyMDc0NTJ9.KsLN7WxZ10oCLe9pEHKaUP6mcqIjCXVazamMZpIEYQE' \
-H 'Content-Type: application/json' \
-d '{
  "personGroupCode": "BUSINESS",
  "description": "Premium customers"
}'
{
  "personGroupCode": "BUSINESS",
  "description": "Premium customers"
}

The new class code is created for the premium customers group.

{
 "description": "Class code for premium customers",
 "depositClassCode": "PREMIUM_CUSTOMER"
 }
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "description": "Class code for premium customers",
        "depositClassCode": "PREMIUM_CUSTOMER"
    }
}
create deposit class code
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v1/deposit-class-codes' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDItMjJUMTc6MDE6MTciLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE3MDg2MjEyNzd9.XD_GcGtj3ArKvsM2OxUKKhBNmhQ-TA5RcjmKxTR2fkA' \
--header 'Content-Type: application/json' \
--data '{
  "description": "Class code for premium customers",
  "depositClassCode": "PREMIUM_CUSTOMER"
}'
{
  "description": "Class code for premium customers",
  "depositClassCode": "PREMIUM_CUSTOMER"
}
forget person
curl -X 'POST' \
  'https://person-api.dev.tuum.xyz/api/v1/persons/ID-3204/forget/start' \
  -H 'accept: */*' \
  -H 'x-channel-code: SYSTEM' \
  -H 'x-tenant-code: MB.EU' \
  -H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjc3JmVG9rZW4iOiJzdHJpbmciLCJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTZUMTg6NDg6NDQiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE2ODY5NDEzMjR9.OBniiwiaI2ZN1PMdr6InOjUNtg22vEso8wnpV6kJ104' \
  -H 'Content-Type: application/json' \
  -d '{
  "processReason": "CUSTOMER_REQUESTED",
  "processDate": "2023-06-15"
}'
{
  "processReason": "CUSTOMER_REQUESTED",
  "processDate": "2023-06-15"
}
{
  "errors": null,
  "validationErrors": null,
  "data": null
}

The generationId parameter is obtained from the manually generated QMR that was previously requested.

...api/v2/generations/ID-13061

find generation by generation ID
curl -L 'https://reports-api.sandbox.tuumplatform.com/api/v2/generations/ID-13061' \
-H 'x-tenant-code: MB' \
-H 'Accept-Language: en' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdGkgdGVzdCIsImVtcGxveWVlSWQiOiJJRC0xNDE3IiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTEwLTIyVDA5OjQ4OjMyIiwiZXhwIjoxNzYxMTI2NTEyLCJyb2xlcyI6WyJBRE1JTiIsIlNZU1RFTSJdfQ.7TVoQhmqGBjZuDajPYh2rEJyXbJ27Xf3w9ZPQVEMnk4'
ready for export
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "generationId": "ID-13061",
        "generationTypeCode": "CARD_MQMR",
        "generationGroupCode": "CARD",
        "statusCode": "DONE",
        "createdDTime": "2025-10-22T08:01:53.971Z",
        "entryDate": null,
        "inputJson": "{\"binNumber\":\"111172\",\"exportFileType\":\"PDF\",\"reportingPeriod\":{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-10-01\"}}",
        "errorCode": null,
        "source": null,
        "fileInfos": [
            {
                "generationFileId": "ID-11417",
                "fileName": "MastercardQMR-111172-2025-07-01-2025-10-01.pdf",
                "storageSource": {
                    "sourceName": "STORAGE.FILE",
                    "sourceRef": "ID-4359"
                },
                "additionalData": null
            }
        ],
        "previewJson": null
    }
}

The path parameter is depositTypeCode. We will use the PREMIUM deposit product.

...product/PREMIUM/deactivate

deactivate deposit product
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

Optional parameters

To protect your POST requests against duplicating, you can use the optional header parameter x-request-id - request ID.

The request ID value must be in the format of a Universally Unique IDentifier (UUID), RFC 4122.

Below we will provide examples to show the difference in the API call outcomes with and without the request ID header parameter.

Use case

We will review several examples that illustrate the difference in the API outcomes when the request ID is used and when the request ID is not applied.

The initial request data:

Use case data
API parameters with values

Person's Tuum id is ID-3419.

The name of the account holder is Eleanor Rigby.

Eleanor is a resident of Great Britain.

The standard price list is assigned to the account.

Eleanor is assigned to the GROUP_A customer group.

Currency account type.

The account currency code is GBP.

Explanatory examples

To view the examples, go to the following pages:

Summary

From the illustrated examples we can see that when the x-request-id parameter is applied, it prevents the system from creating new objects. And when the x-request-id is not used or is used with unique value as per each call, all the POST calls are treated as unique and new objects are created:

POST call / Request ID
Same request ID
No or unique request ID

Initial POST call

Unique response

Unique response

Duplicated POST call

Same as in the initial response

Unique response

Duplicated POST with updated data

Same as in the initial response

Unique response

Usage recommendations

If you use the x-request-id header parameter, it is recommended to avoid reusing the same parameter value, even if the requests are made to different Tuum APIs.

Find employee by ID

Use case

In this example, we will find an existing employee by employeeId.

Use case data
API parameters with values

We will search an employee ID-1183 whose .

...api/v1/employees/ID-1183

Sample API call

To find an employee by username, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/employees/username

Learn more about the find employee endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to retrieve customer data.

No request body.

curl --location 'https://auth-api.sandbox.tuumplatform.com/api/v1/employees/ID-1183' \
--header 'x-channel-code: BACKOFFICE' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMTZUMjI6Mzk6MTUiLCJleHAiOjE3MzQzODg3NTUsInJvbGVzIjpbIkFETUlOIl19.ftJgnhviaIP-qTsXh19FIG6wpZntGXezBIXHVK0-63U' \
--data ''

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "employeeId": "ID-1183",
        "firstName": "Test",
        "lastName": "Employee",
        "username": "[email protected]",
        "email": "[email protected]",
        "authenticationMethod": "PASSWORD",
        "defaultTenantCode": "MB",
        "roles": [
            "CUSTOMER_SERVICE"
        ],
        "tenants": [
            {
                "tenantEmployeeId": "ID-1213",
                "defaultTenant": true,
                "tenantId": "ID-1000",
                "tenantCode": "MB",
                "roles": [
                    "CUSTOMER_SERVICE"
                ]
            }
        ],
        "externalId": null,
        "lastLogin": "2024-11-25T12:28:04.635156Z",
        "blockedUntil": null,
        "failedAttempts": 0
    }
}

Result

The result of the API call is the dataset of a particular employee.

Download requested account transactions report

Here, you will learn how to download the requested account transactions report as a JSON or CSV file in Tuum.

Use case

In this use case, we will review how to download an account transactions report.

Use case data
API parameters with values

The generationFileId value is ID-2864. This parameter is generated when .

...generations/files/ID-2864

Sample API call

To find the status of the requested report, make the following API call. reports-api.sandbox.tuumplatform.com/ /api/v1/generations/files/{generationFileId}

Learn more about the get the report file endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to get the report file.

No body request.

curl --location 'https://reports-api.sandbox.tuumplatform.com/api/v1/generations/files/ID-2864' \
--header 'x-channel-code: system' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEyMzgiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHBpcnlEVGltZSI6IjIwMjUtMDMtMDdUMjM6MTQ6NTkiLCJleHAiOjE3NDEzODkyOTksInJvbGVzIjpbIkFDQ09VTlRBTlQiLCJBRE1JTiJdfQ.M_9PeWkEX4izXTAhYPNzj68FrMxB7gFJ7Zum9VPECKE' \
--data ''

Sample response

Below you find an example response body to the API call above.

Response
[{"transactionId":"ID-275388","groupId":"290379","postingDate":"2029-04-01","valueDate":"2029-04-01","accountId":"ID-12333","transactionTypeCode":"ACC_ADM_FEE","transactionSubtypeCode":null,"transactionGroupCode":"FEE","directionCode":"OUT","transactionAmount":{"amount":5.00,"currencyCode":"EUR"},"initialBalanceAmount":{"amount":-5.00,"currencyCode":"EUR"},"filingCode":"2029040100275388","source":{"sourceName":"ACCOUNT.ACCOUNT_PERIODIC_FEE","sourceRef":"ID-78253"},"contractSource":null,"counterparty":null,"details":"Account maintenance fee","referenceNumber":null,"metaInfo":null,"merchantInfo":null,"transactionDTime":"2025-02-28T11:23:58.16Z","reversedTransactionId":null,"endToEndId":null,"paymentServiceProviderCode":null,"virtualAccountId":null,"labels":[],"uniqueIdentifier":"1f78c038-96a6-4882-925e-ce8cd2668220","reportDateType":"POSTING_DATE","domainCode":"ACMT","familyCode":"MDOP","subfamilyCode":"FEES","reversed":false}, {"transactionId":"ID-1005","groupId":"1005","postingDate":"2024-06-11","valueDate":"2024-06-11","accountId":"ID-1006","transactionTypeCode":"ACC2SEPA_PAY","transactionSubtypeCode":null,"transactionGroupCode":"PAYMENT","directionCode":"OUT","transactionAmount":{"amount":1.00,"currencyCode":"EUR"},"initialBalanceAmount":{"amount":20000.00,"currencyCode":"EUR"},"filingCode":"2024061100001005","source":{"sourceName":"PAYMENT","sourceRef":"PAYM-1000"},"contractSource":null,"counterparty":{"name":"Simon Parker","accountNumber":{"value":"EE871275295834652820","type":"IBAN"},"accountNumberSubtype":null,"accountNumberCountryCode":"EE","financialInstitutionId":{"value":"PARXEE22XXX","type":"BIC"}},"details":"test","referenceNumber":null,"metaInfo":"{\"paymentResidencyCountryCode\":\"LV\",\"intrabankPaymentSource\":null,\"paymentMetaInfo\":\"[{\\\"typeCode\\\":\\\"SELECTED_SCHEME\\\",\\\"value\\\":\\\"SEPA_REGULAR\\\"}]\"}","merchantInfo":null,"transactionDTime":"2024-06-11T07:13:38.232717Z","reversedTransactionId":null,"endToEndId":null,"paymentServiceProviderCode":"SEPA","virtualAccountId":null,"labels":["COUNTERPARTY_EE","SEPA_REGULAR"],"uniqueIdentifier":"294ecf20-0e7f-46f8-9abe-3f4e040313bc","reportDateType":"POSTING_DATE","domainCode":"PMNT","familyCode":"ICDT","subfamilyCode":"OTHR","reversed":false}]

Result

As a result, the generated account transactions report was downloaded.

Sample account transaction export file

Below, you will find a sample of account transaction export file.

2KB
account_transaction_export.json
Open

1KB
account_transaction_export.csv
Open

Create customer credentials

Here, you can learn how to make an API call to create customer credentials. Once the call is successful, your customers can authenticate themselves using the created credentials.

Sample API call

To create customer credentials, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/credentials

Learn more about the create customer credentials endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call to create customer credentials.

{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}
curl 'https://auth-api.sandbox.tuumplatform.com/api/v1/credentials' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWF0b21payIsInBlcnNvbklkIjoiSUQtMTAzOCIsInRlbmFudENvZGUiOiJNQiIsImV4cGlyeURUaW1lIjoiMjAyMy0wNy0yOFQxMjoyMDoyMSIsImV4cCI6MTY5MDU0NjgyMX0.wpNOfTan73vnqQNZo5cI99B2NWuVZ6wurW9JiO7z0x0' \
-H 'Content-Type: application/json' \
-d '{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}'

Please make sure to input the username and password of the particular customer when submitting your request.

To make a successful API call, you must include the JSON Web Token of the authenticated employee with specific user rights as a header parameter with the value of x-auth-token. Kindly adhere to the instructions given in the explanations for header parameters.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "credentialId": "ID-1005",
        "personId": "ID-1038",
        "username": "customer_username",
        "tenantId": "ID-1000"
    }
}

Result

After making the API call, customer credentials will be created so that they can authenticate themselves.

Reactivate person

Use case

Here, you can learn how to reactivate a person who is in INACTIVE status. We will reactivate a private person, Rhys Davey, who was inactivated previously, but has now returned as a client.

Use case data
API parameters with values

The personId of Rhys Davey who we want to reactivate isID-3204.

Since the person returned as a client, the reason can be set as OTHER.

The reactivation is effective from June 15th 2023. The date format: YYYY-MM-DD.

You can use different values for the processReason parameter, which can be defined from Lookups.

The by default processReason-s for private and legal persons:

  • ERROR,

  • OTHER.

Sample API call

To reactivate a person, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3204/reactivate/start

Learn more about the reactivate person endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call to inactivate a person.

{
  "processReason": "OTHER",
  "processDate": "2023-06-15"
}
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3204/reactivate/start' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiTGF1cmEgVCIsImVtcGxveWVlSWQiOiJJRC0xMDU0IiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTAzLTA1VDE1OjEwOjE4IiwiZXhwIjoxNzQxMTg3NDE4LCJyb2xlcyI6WyJBRE1JTiJdfQ.gnVRav5NmpZapS3uGMLt69xADsYdEPiGGOjXnt1jqyY' \
--header 'x-channel-code: SYSTEM' \
--header 'Accept-Language: en' \
--header 'Content-Type: application/json' \
--data '{
  "processReason": "OTHER",
  "processDate": "2023-06-15"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

Result

The person's status is changed to PENDING. The person can be activated with Activate person endpoint.

Find deposit offer

Use case

In this example, we will review how to find a deposit offer using the application ID.

Use case data
API parameters with values

Searching the deposit offer that was created for the with ID-1696407202.

...applications/ID-1696407202/offers

Sample API call

To find a deposit offer that was automatically created by the deposit application, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v2/applications/{applicationId}/offers

See more about the find offer endpoint in the Tuum developer portal.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "offerId": "ID-1696407305",
        "personId": "ID-2660",
        "applicationId": "ID-1696407202",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM_TEST",
        "terminationType": "WITHOUT_INTEREST",
        "statusCode": "PRESENTED",
        "reasonCode": null,
        "accountId": "ID-1012",
        "interestRate": 0.25,
        "period": 3,
        "periodTypeCode": "MONTH",
        "endDate": null,
        "initialMoney": {
            "amount": 5000.00,
            "currencyCode": "EUR"
        },
        "interestPaymentFreqCode": "END",
        "prolongationCode": null,
        "countryCode": "EE",
        "maturityDate": "2025-02-15",
        "returnAmount": {
            "amount": 5003.13,
            "currencyCode": "EUR"
        },
        "postingDate": "2024-11-15",
        "lastValidDate": "2024-11-16",
        "channelCode": "SYSTEM",
        "tenantCode": "MB",
        "contractHeaderId": null,
        "contractNumber": null,
        "depositClassCode": "PREMIUM_CUSTOMER",
        "payoutDetails": null,
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false
    }
}

Result

As an outcome, we found the deposit offer ID ID-1696407305 and fetched related details.

Find deposit application

Use case

In this case, we will review how to find the ID of a created deposit application using person ID.

Use case data
API parameters with values

We will find an existing that was created for the test person with ID-2660.

...v2/persons/ID-2660/applications

This API call requires mandatory query parameters pageSize and pageNumber.

...?pageSize=1&pageNumber=1

Sample API call

To find a deposit application, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v3/persons/{personId}/applications

See more about the find deposit application endpoint in the Tuum developer portal.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "values": [
            {
                "applicationId": "ID-1696407202",
                "personId": "ID-2660",
                "depositGroupCode": "TIME_DEPOSIT",
                "depositTypeCode": "PREMIUM_TEST",
                "statusCode": "ACCEPTED",
                "accountId": "ID-5334",
                "period": 3,
                "periodTypeCode": "MONTH",
                "endDate": null,
                "initialMoney": {
                    "amount": 5000.00,
                    "currencyCode": "EUR"
                },
                "interestPaymentFreqCode": "END",
                "prolongationCode": null,
                "countryCode": "EE",
                "interestRate": 0.25,
                "postingDate": "2024-11-14",
                "channelCode": "SYSTEM",
                "tenantCode": "MB",
                "offerId": null,
                "depositClassCode": "PREMIUM_CUSTOMER",
                "payoutDetails": null,
                "personTypeCode": "P",
                "taxResidencyCountryCode": "EE",
                "taxExempt": false
            }
        ],
        "pageNumber": 1,
        "pageSize": 1,
        "endReached": true,
        "sort": null
    }
}

Result

As a result we found the deposit application with the ID-1696407202 and fetched other information related to the deposit application.

Accept deposit offer

Use case

In this example, we will review how to accept a deposit offer.

Use case data
API parameters with values

We will accept the deposit offer ID-1696407305.

...v1/offers/ID-1696407305/accept

Sample API call

To accept a deposit offer, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v2/offers/{offerId}/accept

See more about the accept deposit offer endpoint in the Tuum developer portal.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "offerId": "ID-1696407305",
        "personId": "ID-2660",
        "applicationId": "ID-1696407202",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM_TEST",
        "terminationType": "WITHOUT_INTEREST",
        "statusCode": "ACCEPTED",
        "reasonCode": null,
        "accountId": "ID-5334",
        "interestRate": 0.25,
        "period": 3,
        "periodTypeCode": "MONTH",
        "endDate": null,
        "initialMoney": {
            "amount": 5000.00,
            "currencyCode": "EUR"
        },
        "interestPaymentFreqCode": "END",
        "prolongationCode": null,
        "countryCode": "EE",
        "maturityDate": "2025-02-15",
        "returnAmount": {
            "amount": 5003.13,
            "currencyCode": "EUR"
        },
        "postingDate": "2024-11-15",
        "lastValidDate": "2024-11-16",
        "channelCode": "SYSTEM",
        "tenantCode": "MB",
        "contractHeaderId": null,
        "contractNumber": null,
        "depositClassCode": "PREMIUM_CUSTOMER",
        "payoutDetails": null,
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false
    }
}

Result

As a result the deposit offer ID-1696407305 was accepted.

Once the deposit offer is accepted, the Tuum system automatically creates a deposit contract based on the related deposit offer.

Export selected roles

In this example, you can learn how to retrieve specific roles and their privileges from the source Tuum environment.

To export all roles and privileges, make the same API call with an empty request body.

Use case

In this example, we will export specific roles and privileges.

Use case data
API parameters with values

The system will export only roles and associated privileges with a valid validity range.

Sample API call

To export specific roles and privileges, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/roles/privileges/export

Learn more about the in the Tuum developer portal.

Sample request

Below is an example request body of the API call for export roles.

Sample response

Below you find an example response body to the API call above.

Response

Result

The selected valid roles ACCOUNTANT and TEST_LT with related privileges have been exported.

Use the response content to import roles and privileges into the target environment.

Create employee

Use case

In this use case, we will create a new employee with the following data set:

Use case data
API parameters with values

Sample API call

To create a new employee, make the following API call.

https://auth-api.sandbox.tuumplatform.com/api/v1/employees

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an employee.

Sample response

Below you find an example response body to the API call above.

Response

Result

As a result, a new employee with the employeeId: ID-1183 was created.

Create person document

Use case

In this example, we will review how to add a document record for a person.

Use case data
API parameters with values

You can add different types of personal documents: ID cards, passports, driving licences and residence permits. See more in the .

Sample API call

To create a person document, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/documents

See more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a person document.

Sample response

Below you will find an example response to the API call from above.

Response

Result

A new passport record ID-1024 was added for a private person.

Create account class code

Use case

In this example, we will show how to create an account class code.

Use case data
API parameters

Sample API call

To create a new account class code, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v1/account-class-codes

See more information about the endpoint in the Tuum developer portal.

Create account class code

POST https://account-api.sandbox.tuumplatform.com/api/v1/account-class-codes

See more information about this in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account class code.

Sample response

Below you find an example response body to the API call above.

Response

Result

A new account class code is created.

Update person address

Use case

Here we will review how to update the person address.

Use case data
API parameters with values

The addressId parameter is generated when a . You can fetch the current address data by calling the endpoint.

Sample API call

To update person address, make the following call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3397/addresses/ID-3088

See more information about the endpoint in the Tuum developer portal.

Sample request

Below is an example body request of the API call for updating the person address.

Sample response

Below you find an example response body to the API call above.

Response

Result

The person address information is updated.

Create account limit type

Use case

Here, we will create a single currency account limit type with the account scope.

Use case data
API parameters with values

You can find more information about the in the dev portal.

Sample API call

To create an account limit type, make the following call.

https://account-api.sandbox.tuumplatform.com/api/v1/limits/types

See more about the create

in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account and setting access rights.

Sample response

Below you find an example response body to the API call above.

Response

Result

A new single currency account limit type is created - ID-1002. In the , we will assign this limit type to an existing account and define the limit amount.

Assign person to group

Use case

Here we will review how to assign a person to the customer group. Let us assign a private person, Trevor Tuum, to a business customer group.

Use case data
API parameters with values

Sample API cal

To assign a person to the customer group, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/person-groups

To learn more about the endpoint, check the Tuum developer portal.

Sample request

Below is the example body request of the API call for assigning a person to the group.

Sample response

Here you find an example response body to the API call above.

Response

Result

The user ID-3392 is assigned to the BUSINESS customer group.

Check account transactions report generation status

Here, you will learn how to check the generation status of account transactions report in Tuum.

Use case

In this example, we will review how to check the status of a requested report file.

Use case data
API parameters with values

Sample API call

To find the status of the requested report, make the following API call.

reports-api.sandbox.tuumplatform.com/ api/v2/generations/{generationId}

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to find report status.

No request body.

Sample response

Below you find an example response body to the API call above.

Response

Result

This endpoint returns the status of the account transactions report. When the statusCode has a value DONE, the report is ready for . In this example, the generationFileId of the report file is ID-2864.

Create person financial data

Use case

In this example, we will show how to set up legal person financial data. We will modify New company Ltd and add assets as a currency worth 10000000 EUR.

Use case data
API parameters with values

Learn more about the endpoint details in the Tuum developer portal.

Sample API call

To create financial data, call the following endpoint.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3394/financial-data

Sample request

Below is an example request body of the API call for creating person representation.

Sample response

Below you will find an example response to the API call from above.

Response

Result

Assets as a currency worth 10000000 EUR are added to the legal person.

Find deposit product

Use case

In this example, we will find the .

Use case data
API parameters with values

Sample API call

deposit-api.sandbox.tuumplatform.com/api/v1/deposits/product/{depositTypeCode}

See more about the endpoint in the Tuum developer portal.

Sample response

Below you find an example response body to the API call above.

Response

Result

As a result, a complete set of product details about the PREMIUM deposit product was returned.

Create account limit code

Use case

In this example, we will review how to set up an account limit code. This parameter gives a name and description of the account limit that will be configured in the further articles.

Use case data
API parameters with values

Sample API call

To create a new account limit code, make the following call.

Create account limit code

https://account-api.sandbox.tuumplatform.com/api/v1/limits/codes

See more information about this in the Tuum developer portal.

Sample request

Below is an example body request of the API call for creating an account limit code.

Sample response

Below you find an example response body to the API call above.

Response

Result

A new limit code NEW_ACCOUNT_LIMIT is created and enabled. This parameter will be used for setting up an account limit type.

Remove person restoration key

Use case

In this example, we will review how to forget a person record forever and make it unrecoverable.

Use case data
API parameters with values

Sample API call

To remove the restoration key, make the following call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3415/forget/key

See more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request to remove the restoration key call.

No request body.

Sample response

The remove restoration key endpoint generates the following response.

Response

Result

The restoration key of a forgotten person ID-3415 is removed. The personal data that belong to the person is non-recoverable.

Decline deposit offer

Use case

In this example, we will review how to decline a deposit offer.

Use case data
API parameters with values

Sample API call

deposit-api.sandbox.tuumplatform.com/api/v3/offers/{offerId}/decline

See more information about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for declining a deposit offer.

Sample response

Below you find an example response body to the API call above.

Response

Result

As a result, a deposit offer ID-1718023943 was declined.

.../persons/ID-3419/accounts
"personName": "Eleanor Rigby"
"residencyCountryCode": "GB"
"priceListTypeCode": "STANDARD"
"customerGroupCode": "GROUP_A"
"accountTypeCode": "CURRENCY"
"currencyCode": "GBP"
Requests with same request ID
Requests without request ID
employee profile was previously created
checking the report generation status
.../persons/ID-3204/reactivate/start
"processReason": "OTHER"
"processDate": "2023-06-15"
deposit application
deposit application

The role codes we're exporting roles and privileges for are: ACCOUNTANT and TEST_LT.

"roleCodes": [
    "ACCOUNTANT",
    "TEST_LT"
  ]
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "rolesWithPrivileges": [
            {
                "roleCode": "ACCOUNTANT",
                "privilegeNames": [
                    "ADD_PERSON",
                    "APPROVE_APPLICATIONS",
                    "DISBURSE_LOAN",
                    "EDIT_CONTRACT",
                    "EDIT_LOAN_PRODUCTS",
                    "EDIT_PERSON",
                    "MANAGE_USERS",
                    "SEARCH_CONTRACT_DOCUMENTS",
                    "VIEW_GL_JOURNAL",
                    "VIEW_LOAN_CONTRACT",
                    "VIEW_LOAN_PRODUCTS",
                    "VIEW_PERSON",
                    "VIEW_PERSON_ADDITIONAL_CONTACT",
                    "VIEW_PERSON_GROUP_TYPE"
                ],
                "valid": true
            },
            {
                "roleCode": "TEST_LT",
                "privilegeNames": [
                    "MANAGE_USERS",
                    "READ_RESTRICTED_DATA",
                    "VIEW_EXTERNAL_CONTRACTS",
                    "VIEW_FOUREYE_REVIEW_RULE",
                    "VIEW_PERSON",
                    "VIEW_PERSON_GROUP_TYPE",
                    "VIEW_REVIEW_APPROVALS_CONFIGURATION"
                ],
                "valid": true
            }
        ]
    }
}
endpoint
curl --location 'https://auth-api.sandbox.tuumplatform.com/api/v1/roles/privileges/export' \
--header 'Accept-Language: en-GB' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiTGF1cmEgVGVlbcOkZ2kiLCJlbXBsb3llZUlkIjoiSUQtMTA1MCIsInRlbmFudENvZGUiOiJNQi5FVSIsImV4cGlyeURUaW1lIjoiMjAyNS0wMy0xOFQxMDo0NjoxMSIsImV4cCI6MTc0MjI5NDc3MSwicm9sZXMiOlsiQURNSU4iXX0.zD1buC7eTHM0cDgGMhThq1II6TUY3DdmfrHzDphcBdE' \
--header 'Content-Type: application/json' \
--data '{
  "roleCodes": [
    "ACCOUNTANT",
    "TEST_LT"
  ]
}'
{
  "roleCodes": [
    "ACCOUNTANT",
    "TEST_LT"
  ]
}

We will create a record for a Test Employee.

"username": "[email protected]",
"email": "[email protected]",
"firstName": "Test",
"lastName": "Employee"

Test Employee is a Customer Support representative.

"roles": [
    "CUSTOMER_SERVICE"
  ]

The employee password must be 12 to 20 characters long and contain one upper-case letter, one digit, and one special character.

"password": "Vys%k6;)#,bab"

The name of the tenant where new employee is created.

"tenantCode": "BANK"
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "employeeId": "ID-1183",
        "firstName": "Test",
        "lastName": "Employee",
        "username": "[email protected]",
        "email": "[email protected]",
        "authenticationMethod": "PASSWORD",
        "defaultTenantCode": "MB",
        "roles": [
            "CUSTOMER_SERVICE"
        ],
        "tenants": [
            {
                "tenantEmployeeId": "ID-1213",
                "defaultTenant": true,
                "tenantId": "ID-1000",
                "tenantCode": "BANK",
                "roles": [
                    "CUSTOMER_SERVICE"
                ]
            }
        ],
        "externalId": null,
        "lastLogin": "2024-11-25T12:28:04.635156Z",
        "blockedUntil": null,
        "failedAttempts": 0
    }
}
create employee
curl --location 'https://auth-api.sandbox.tuumplatform.com/api/v1/employees' \
--header 'x-channel-code: BACKOFFICE' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTEtMjVUMTM6MDc6MTUiLCJleHAiOjE3MzI1NDAwMzUsInJvbGVzIjpbIkFETUlOIl19.zIFVF28Qu62-9V6xRJI_t1QpnWd4HdPpPSFx5FaepEM' \
--header 'Content-Type: application/json' \
--data-raw '{
  "username": "[email protected]",
  "email": "[email protected]",
  "firstName": "Test",
  "lastName": "Employee",
  "roles": [
    "CUSTOMER_SERVICE"
  ],
  "password": "Vys%k6;)#,bab",
  "tenantCode": "BANK"
}'
{
  "username": "[email protected]",
  "email": "[email protected]",
  "firstName": "Test",
  "lastName": "Employee",
  "roles": [
    "CUSTOMER_SERVICE"
  ],
  "password": "Vys%k6;)#,bab",
  "tenantCode": "BANK"
}

Adding a document record for a private person ID-3392.

...persons/ID-3392/documents

Adding the person's passport details.

{
  "issuingCountry": "GB",
  "number": "0124R5M1P5",
  "documentTypeCode": "PASSPORT",
  "expiryDate": "2025-01-03"
}
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "docuId": "ID-1024",
        "personId": "ID-3392",
        "issuingCountry": "GB",
        "number": "0124R5M1P5",
        "documentTypeCode": "PASSPORT",
        "expiryDate": "2025-01-03",
        "validityRange": {
            "startTime": "2023-07-17T17:47:42.187928Z",
            "endTime": null
        }
    }
}
Tuum developer portal
create person document
curl -L -g 'https://person-api.{{env}}.{{domain}}/api/v1/persons/ID-3392/documents' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTdUMTg6Mzk6MTAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODk2MTkxNTB9.cfzAzYCJ2lAWGHj_YxX9-vc21YS-ekBsZvOJx9C9Pqk' \
-H 'Content-Type: application/json' \
-d '{
  "issuingCountry": "GB",
  "number": "0124R5M1P5",
  "documentTypeCode": "PASSPORT",
  "expiryDate": "2025-01-03"
}'
{
  "issuingCountry": "GB",
  "number": "0124R5M1P5",
  "documentTypeCode": "PASSPORT",
  "expiryDate": "2025-01-03"
}

Create a new account class code.

{
"description": "New account class code",
"accountClassCode": "NEW"
    }
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "description": "New account class code",
        "accountClassCode": "NEW"
    }
}
create account class code
endpoint
curl --location 'https://account-api.sandbox.tuumplatform.com/api/v1/account-class-codes' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMzFUMTA6NTE6MzUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA4MDA2OTV9.ocnwYQJzynRutWPRu-Jr_BmKkwRleeV5koMW_RbsNJ0' \
--header 'Content-Type: application/json' \
--data '{
  "description": "New account class code",
  "accountClassCode": "NEW"
}'
{
  "description": "New account class code",
  "accountClassCode": "NEW"
}

Updating the addressId ID-3088of the legal person with personId ID-3397.

...persons/ID-3397/addresses/ID-3088

New address reference.

"street1": "Brick Lane 4"
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "addressId": "ID-3088",
        "personId": "ID-3397",
        "addressTypeCode": "R",
        "street1": "Brick Lane 4",
        "street2": null,
        "cityCounty": "London",
        "stateRegion": null,
        "zip": "13789",
        "countryCode": "GB",
        "moveInDate": null,
        "validityRange": {
            "endTime": null,
            "startTime": "2023-07-12T14:33:23.624199Z"
        }
    }
}
new person is created
find person addresses
update person address
curl -L -X PUT 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3397/addresses/ID-3057' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTJUMTU6MzM6MTAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkxNzU5OTB9.qzjD0zt7w5nIvYTaz9xEMP_jfZEgcH6KsnJZdlkdLy8' \
-H 'Content-Type: application/json' \
-d '{
  "street1": "Brick Lane 4",
  "cityCounty": "London",
  "zip": "13789",
  "countryCode": "GB"
}'
{
  "street1": "Brick Lane 4",
  "cityCounty": "London",
  "zip": "13789",
  "countryCode": "GB"
}

The limit must be applicable on the account level.

"scopeTypeCode": "ACCOUNT"

The limit is active on a montly basis.

"periodTypeCode": "MONTHLY"

The limit is calculated per currency.

"calcTypeCode": "PER_CURRENCY"

The limit code that was generated in the previous call.

"limitCode": "NEW_ACCOUNT_LIMIT"
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "limitTypeId": "ID-1002",
        "scopeTypeCode": "ACCOUNT",
        "periodTypeCode": "MONTHLY",
        "calcTypeCode": "PER_CURRENCY",
        "limitCode": "NEW_ACCOUNT_LIMIT"
    }
}
limit type parameters
ndpoint
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v1/limits/types' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTFUMTU6MDA6MTUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkwODc2MTV9.wfWaIi2x7wg64c0UPBPBHoezz5EhajJqQp1oHD7Rm7o' \
-H 'Content-Type: application/json' \
-d '{
  "scopeTypeCode": "ACCOUNT",
  "periodTypeCode": "MONTHLY",
  "calcTypeCode": "PER_CURRENCY",
  "limitCode": "NEW_ACCOUNT_LIMIT"
}'
further API call
{
  "scopeTypeCode": "ACCOUNT",
  "periodTypeCode": "MONTHLY",
  "calcTypeCode": "PER_CURRENCY",
  "limitCode": "NEW_ACCOUNT_LIMIT"
}

A private person with personId: ID-3392

...persons/ID-3392/person-groups

A customer group for business customers

"personGroupCode": "BUSINESS"
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personGroupId": "ID-1489",
        "personId": "ID-3392",
        "personGroupCode": "BUSINESS",
        "validityRange": {
            "endTime": null,
            "startTime": "2023-06-21T20:48:57.250757Z"
        }
    }
}
assign person to group
curl -L 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/person-groups' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMjFUMjE6Mjk6NDgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODczODI5ODh9.pPztGj-fAiRrRmZAOKYDuJSGrvZuUis59WKDAfcuE7A' \
-H 'Content-Type: application/json' \
-d '{
  "personGroupCode": "BUSINESS"
}'
{
  "personGroupCode": "BUSINESS"
}

The generationId number of the report file that was previously requested.

...api/v2/generations/ID-2864

find report status
curl --location --request GET 'https://reports-api.sandbox.tuumplatform.com/api/v2/generations/ID-4714' \
--header 'x-channel-code: system' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEyMzgiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHBpcnlEVGltZSI6IjIwMjUtMDMtMDdUMTg6MzY6NTAiLCJleHAiOjE3NDEzNzI2MTAsInJvbGVzIjpbIkFDQ09VTlRBTlQiLCJBRE1JTiJdfQ.WMgoNN6FnntbkVsSxBZtI6mosBNnoOWBrC14reJ9RJM' \
--header 'Content-Type: application/json' \
--data '{
  "accountTypeCode": "INTERNAL",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "INTERNAL",
  "priceListTypeCode": "INTERNAL",
  "currencyCode": "EUR"
}'
download
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "generationId": "ID-2864",
        "generationTypeCode": "ACCOUNT_TRANSACTIONS",
        "generationGroupCode": "ACCOUNT",
        "statusCode": "DONE",
        "createdDTime": "2025-03-07T17:57:04.304Z",
        "entryDate": null,
        "inputJson": "{\"exportFileType\":\"JSON\",\"transactionType\":null,\"transactionSubtype\":null,\"dateFrom\":\"2029-04-01\",\"dateTo\":\"2029-05-31\",\"dateType\":\"POSTING_DATE\",\"directionCode\":null,\"amountFrom\":null,\"amountTo\":null,\"currencyCode\":null,\"contractNumber\":null,\"transactionGroupCodes\":null,\"referenceNumber\":null,\"counterpartyNameSubstring\":null,\"counterpartyAccountNumberSubstring\":null,\"detailsSubstring\":null,\"virtualAccountId\":null,\"source\":null,\"includeAccessRestricted\":false,\"uniqueIdentifier\":null}",
        "errorCode": null,
        "source": {
            "sourceName": "ACCOUNT",
            "sourceRef": "ID-12333"
        },
        "fileInfos": [
            {
                "generationFileId": "ID-2864",
                "fileName": "account-transactions-ID-12333-20250307-1757-04-365.json",
                "storageSource": null,
                "additionalData": null
            }
        ],
        "previewJson": null
    }
}

The personId of the legal person. New company Ltd is ID-3394.

...persons/ID-3394/financial-data

The financial data type code is assets.

"financialDataTypeCode": "ASSETS"

The financial data value type code is currency.

"financialDataValueTypeCode": "CURRENCY"

The currency code is EUR. The currencyCode follows ISO 4217 format.

"currencyCode": "EUR"

The period presents the count of months for the validity range and is 12 months.

"period": 12

The financial value for the current period is 10000000.

"currentPeriodValue": 10000000
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "financialDataId": "ID-1017",
        "personId": "ID-3394",
        "financialDataTypeCode": "ASSETS",
        "financialDataValueTypeCode": "CURRENCY",
        "currentPeriodValue": 10000000,
        "currencyCode": "EUR",
        "period": 12,
        "periodRange": null,
        "nextPeriodEstimateValue": null,
        "description": null,
        "valueRange": null,
        "validityRange": {
            "startTime": "2024-05-20T10:49:58.556Z",
            "endTime": null
        }
    }
}
create person financial data
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3394/financial-data' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjBUMTE6NDY6MTMiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTYyMDU1NzN9.rhx33fBFHBGOlwWyXJKTtPh4u7J58F2SuvrIdhuA_3c' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data '{
  "financialDataTypeCode": "ASSETS",
  "financialDataValueTypeCode": "CURRENCY",
  "currentPeriodValue": 10000000,
  "currencyCode": "EUR",
  "period": 12
}'
{
  "financialDataTypeCode": "ASSETS",
  "financialDataValueTypeCode": "CURRENCY",
  "currentPeriodValue": 10000000,
  "currencyCode": "EUR",
  "period": 12
}

The path parameter is depositTypeCode. We will use the PREMIUM deposit product.

...deposits/product/PREMIUM

newly created deposit product
find deposit product
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "depositTypeCode": "PREMIUM",
        "depositGroupCode": "TIME_DEPOSIT",
        "description": "Premium deposit",
        "tenantCode": "MB",
        "statusCode": "ACTIVE",
        "countryCode": "EE",
        "currencyCode": "EUR",
        "contractNumberPrefix": "PR-EE-",
        "offerValidDays": 1,
        "daysToWaitCredit": 2,
        "calculateTaxesEnabled": false,
        "terminationType": "WITHOUT_INTEREST",
        "signatureRequired": false,
        "daysToWaitSignature": null,
        "fileGenerationRequired": false,
        "withdrawalAllowed": false,
        "autoProlongationAllowed": true,
        "interestCalculationMethod": {
            "daysInMonth": "30",
            "daysInYear": 360
        },
        "interestPeriodSelector": "FIXED",
        "interests": [
            {
                "interestId": "ID-1696407383",
                "amountRange": {
                    "startValue": 5000,
                    "endValue": 100001
                },
                "periodTypeCode": "MONTH",
                "period": 3,
                "periodRange": null,
                "interestRate": 0.25,
                "minInterestRate": null,
                "maxInterestRate": null,
                "paymentFrequencyTypeCode": "END",
                "validityRange": {
                    "endDate": null,
                    "startDate": "2027-01-09"
                },
                "depositTypeCode": "PREMIUM",
                "employeeId": "1"
            }
        ],
        "depositClassCode": "PREMIUM_CUSTOMER"
    }
}

The technical name of the account limit code.

"code": "NEW_ACCOUNT_LIMIT"

The description of the new account limit code.

"name": "New account limit"

The account limit code is enabled.

"enabled": true
 {
    "errors": null,
    "validationErrors": null,
    "data": {
        "code": "NEW_ACCOUNT_LIMIT",
        "name": "New account limit",
        "description": null,
        "enabled": true
    }
}
endpoint
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v1/limits/codes' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTFUMTM6NDg6MDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkwODMyODB9.w8DHO1S6HtsPCmAc98IG3F3b7bN2f2m7mlHoXf2gR4U' \
-H 'Content-Type: application/json' \
-d '{
  "code": "NEW_ACCOUNT_LIMIT",
  "name": "New account limit"
}'
{
  "code": "NEW_ACCOUNT_LIMIT",
  "name": "New account limit",
  "enabled": true
}

There is a private person personId ID-3415 whose person record is already inactivated and forgotten. The person wants to ensure that the personal data is removed completely and is non-recoverable.

...persons/ID-3415/forget/key

remove person restoration key
curl -L -X DELETE 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3415/forget/keyhttps://person-api.{{env}}.{{domain}}/api/v1/persons/ID-3415/forget/key' \
-H 'x-channel-code: BACKOFFICE' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTJUMTQ6MDg6MTYiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkxNzA4OTZ9.Weps_UVn2b2iOkcZYgSyZd_mcxu7TSoOVxABvDWsWkI' \
-d '{
  "processReason": "OTHER",
  "processDate": "2023-06-15"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

We will decline a deposit offer ID-1718023944.

...offers/ID-1718023944/decline

decline deposit offer
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v3/offers/ID-1718023944/decline' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMDYtMjdUMDk6NDU6NTgiLCJleHAiOjE3MTk0ODE1NTgsInJvbGVzIjpbIkFETUlOIl19.Iek0Ie70FXaTaduvpSat17RcEV8KPp9c9JsL14S1QOU' \
--header 'Content-Type: application/json' \
--data '{
  "reasonCode": "DOCUMENT_MISSING"
}'
{
  "reasonCode": "DOCUMENT_MISSING"
}
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "offerId": "ID-1718023943",
        "personId": "ID-1015",
        "applicationId": null,
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "terminationType": "WITHOUT_INTEREST",
        "statusCode": "DECLINED",
        "reasonCode": null,
        "accountId": "ID-1012",
        "interestRate": 0.25,
        "period": 3,
        "periodTypeCode": "MONTH",
        "endDate": null,
        "initialMoney": {
            "amount": 5000.00,
            "currencyCode": "EUR"
        },
        "interestPaymentFreqCode": "MONTH",
        "prolongationCode": "PRINCIPAL",
        "countryCode": "EE",
        "maturityDate": "2025-03-30",
        "returnAmount": {
            "amount": 5003.12,
            "currencyCode": "EUR"
        },
        "postingDate": "2024-12-30",
        "lastValidDate": "2024-12-31",
        "channelCode": "BACKOFFICE",
        "tenantCode": "MB",
        "contractHeaderId": null,
        "contractNumber": null,
        "depositClassCode": "PREMIUM_CUSTOMER",
        "payoutDetails": {
            "name": "Tech Writing",
            "accountNumber": {
                "value": "XX47XXXX99999000000000000000122",
                "type": "IBAN"
            },
            "financialInstitutionId": null,
            "referenceNumber": null,
            "countryCode": null
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false
    }
}

Import selected roles

In this example, you can learn how to add specific roles and their privileges to the target Tuum environment.

If a role code already exists in the target environment, the import process replaces its current privileges with the imported ones.

Use case

We will import specific roles and associated privileges using the data retrieved in the previous export selected roles example.

Use case data
API parameters with values

The role codes we're importing roles and privileges for are: ACCOUNTANT and TEST_LT.

The roles and privileges combination was obtained from the endpoint.

In this example, the role ACCOUNTANT already existed in the target environment, but role TEST_LT is a new role.

The system will import only roles and associated privileges with a valid validity range.

Sample API call

To import specific roles and associated privileges to the target environment, make the following API call.

Ensure the target environment for the import is different from the export environment.

https://auth-api.target-environment.tuumplatform.com/api/v1/roles/privileges/import

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for import roles.

{
  "rolesWithPrivileges": [
            {
                "roleCode": "ACCOUNTANT",
                "privilegeNames": [
                    "ADD_PERSON",
                    "APPROVE_APPLICATIONS",
                    "DISBURSE_LOAN",
                    "EDIT_CONTRACT",
                    "EDIT_LOAN_PRODUCTS",
                    "EDIT_PERSON",
                    "MANAGE_USERS",
                    "SEARCH_CONTRACT_DOCUMENTS",
                    "VIEW_GL_JOURNAL",
                    "VIEW_LOAN_CONTRACT",
                    "VIEW_LOAN_PRODUCTS",
                    "VIEW_PERSON",
                    "VIEW_EXTERNAL_CONTRACTS",
                    "VIEW_PERSON_GROUP_TYPE",
                ],
                "valid": true
            },
            {
                "roleCode": "TEST_LT",
                "privilegeNames": [
                    "MANAGE_USERS",
                    "READ_RESTRICTED_DATA",
                    "Test_LT",
                    "VIEW_FOUREYE_REVIEW_RULE",
                    "VIEW_REVIEW_APPROVALS_CONFIGURATION",
                    "VIEW_PERSON",
                    "VIEW_EXTERNAL_CONTRACTS",
                    "VIEW_PERSON_GROUP_TYPE",
                ],
                "valid": true
            }
        ]
}
curl --location --request PATCH 'https://target-environemnt.tuumaplatform.com/api/v1/roles/privileges/import' \
--header 'Accept-Language: en-GB' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiTGF1cmEgVGVlbcOkZ2kiLCJlbXBsb3llZUlkIjoiSUQtMTM0OCIsInRlbmFudENvZGUiOiJNQiIsImV4cGlyeURUaW1lIjoiMjAyNS0wMy0yMFQxMzoxODowMCIsImV4cCI6MTc0MjQ3NjY4MCwicm9sZXMiOlsiQURNSU4iXX0.FsBEnzSkQdNXqBcl3C2BuPs1OsyYyIBT-efAXyr8sqk' \
--header 'Content-Type: application/json' \
--data '{
        "rolesWithPrivileges": [
            {
                "roleCode": "ACCOUNTANT",
                "privilegeNames": [
                    "ADD_PERSON",
                    "APPROVE_APPLICATIONS",
                    "DISBURSE_LOAN",
                    "EDIT_CONTRACT",
                    "EDIT_LOAN_PRODUCTS",
                    "EDIT_PERSON",
                    "MANAGE_USERS",
                    "SEARCH_CONTRACT_DOCUMENTS",
                    "VIEW_GL_JOURNAL",
                    "VIEW_LOAN_CONTRACT",
                    "VIEW_LOAN_PRODUCTS",
                    "VIEW_PERSON",
                    "VIEW_PERSON_ADDITIONAL_CONTACT",
                    "VIEW_PERSON_GROUP_TYPE"
                ],
                "valid": true
            },
            {
                "roleCode": "TEST_LT",
                "privilegeNames": [
                    "MANAGE_USERS",
                    "READ_RESTRICTED_DATA",
                    "VIEW_EXTERNAL_CONTRACTS",
                    "VIEW_FOUREYE_REVIEW_RULE",
                    "VIEW_PERSON",
                    "VIEW_PERSON_GROUP_TYPE",
                    "VIEW_REVIEW_APPROVALS_CONFIGURATION"
                ],
                "valid": true
            }
        ]
}
'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

Result

The selected valid roles ACCOUNTANT and TEST_LT with related privileges have been imported.

Update personal info

Use case

Here you can learn how to update a record of a particular person (your customer) in Tuum. In this example, we will demonstrate how to update the record of a private person using the following data.

Use case data
API parameters with values

Updating private person with Tuum personId: ID-3392.

...persons/ID-3392/personal

Adding the middleName: Harry.

The person record in the example below is updated with a minimum data set. In the same way, you can update a person with a richer data set.

Sample API call

To update the particular person's record, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/personal

Learn more about the update personal info endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to update the particular customer's data.

{
    "surname": "Tuum",
    "givenName": "Trevor",
    "middleName": "Harry",
    "identificationNumber": {
        "idNumberId": "ID-1770",
        "idNumber": "DQ654327C",
        "idCountryCode": "GB"
    }
}
curl --location --request PUT 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/personal' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMDctMjRUMTE6MjU6NTMiLCJleHAiOjE3MjE4MjAzNTMsInJvbGVzIjpbIkFETUlOIl19.G-2NqlqmoHvoBRj3666a-Lv8VGRUybpX-ta4UPRpcsQ' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data '{
    "surname": "Tuum",
    "givenName": "Trevor",
    "middleName": "Harry",
    "identificationNumber": {
        "idNumberId": "ID-1770",
        "idNumber": "DQ654327C",
        "idCountryCode": "GB"
    }
}'

When using the example request, please change the x-auth-token to the one you obtained with your authentication API call.

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personTypeCode": "P",
        "givenName": "Trevor",
        "middleName": "Harry",
        "surname": "Tuum",
        "name": null,
        "email": null,
        "phoneNumber": null,
        "phoneCountryCode": null,
        "residencyCountryCode": null,
        "sex": null,
        "nationality": null,
        "dependantPersons": null,
        "legalForm": null,
        "identificationNumber": {
            "idNumberId": "ID-1770",
            "personId": "ID-3392",
            "idNumber": "DQ654327C",
            "idCountryCode": "GB",
            "vatNumber": null,
            "taxNumber": null,
            "validityRange": {
                "startTime": "2023-06-01T07:55:53.37628Z",
                "endTime": null
            }
        }
    }
}

Result

The middleName of the private person is updated.

Find savings ID for savings account

A savings ID is a unique identifier used to link a savings order to its associated savings account. It is generated separately and serves as a reference during savings order creation.

The savings account ID in this example is the same as the one created in the previous section. If the savings ID is not already known, it can be retrieved by following the example below.

Use case

In this example, we will retrieve a savings ID, which is required to create a savings order.

Use case data
API parameters with values

The savings ID will be retrieved for the savings account ID-23941.

Sample API call

To retrieve a savings ID for savings account, use the following endpoint:

https://account-api.sandbox.tuumplatform.com/api/v3/accounts/saving-accounts/{savingAccountId}/savings

Learn more about the returns saving for a saving account endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

No request body.

curl -L 'https://account-api.sandbox.tuumplatform.com/api/v3/accounts/saving-accounts/ID-23941/savings' \
-H 'x-tenant-code: MB' \
-H 'Accept-Language: en' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdCBrYXN1dGFqYSIsImVtcGxveWVlSWQiOiJJRC0xMTAwIiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTA5LTI5VDEzOjU3OjMwIiwiZXhwIjoxNzU5MTU0MjUwLCJyb2xlcyI6WyJBRE1JTiJdfQ.P3ug4ax2vc6OXYoZ3I4RmeeA2rOPbREnTOR4QiJKoYY' \
-H 'Content-Type: application/json'

Sample response

Below you will find the response to the API request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "savingId": "ID-1491",
        "savingAccountId": "ID-23941",
        "currencyAccountId": "ID-23819",
        "savingName": "Emergency savings",
        "firstDebitDate": "2033-06-01",
        "lastDebitDate": null,
        "savingEndDate": "2040-05-18",
        "nextDebitDate": "2033-06-01",
        "currencyCode": "EUR",
        "interestRate": 3.10,
        "savingAmount": 1000,
        "initialAmount": 10,
        "orderAmount": 50,
        "savingDay": 1,
        "frequency": "MONTHLY",
        "manuallyEnded": false,
        "errorCode": null,
        "accountInterests": [
            {
                "accountInterestMethodId": "ID-000000015023",
                "accountTypeInterestMethodId": "ID-000000001290",
                "currencyCode": "EUR",
                "interestGroupCode": "DEPOSIT",
                "nextInterestCalculationDate": "2033-05-11",
                "balanceTypeCode": "END_OF_DAY",
                "calculationBaseTermCode": "SIMPLE",
                "rateTypeCode": "FIXED",
                "calcDaysMonth": "30",
                "calcDaysYear": "360",
                "paymentIntervalTypeCode": "MONTH",
                "minPayableInterestAmount": 0.01,
                "marginTypeCode": null,
                "conditions": [
                    {
                        "accountInterestConditionId": "ID-000000033574",
                        "amountRange": null,
                        "interestRate": 3.1,
                        "ratePeriodTypeCode": "PER_YEAR",
                        "interestTypeCode": "ACCO_INT",
                        "validityRange": {
                            "startDate": "2033-05-11",
                            "endDate": null
                        },
                        "source": null,
                        "rateBaseCode": null,
                        "baseRate": null,
                        "marginRate": null
                    }
                ]
            }
        ],
        "interestBalances": [],
        "accountNumbers": [
            {
                "accountNumberId": "ID-15148",
                "accountId": "ID-23941",
                "accountNumber": {
                    "value": "XX20XXXX99999000000000000127872",
                    "type": "IBAN"
                },
                "countryCode": "XX",
                "financialInstitutionId": {
                    "value": "ICECLOUDXXX",
                    "type": "BIC"
                },
                "accountNumberSubtype": null,
                "defaultCurrencyCode": "EUR",
                "statusCode": "ENABLED",
                "externalSyncEnabled": false,
                "validityRange": {
                    "endTime": null,
                    "startTime": "2025-10-14T07:31:32.92Z"
                }
            }
        ]
    }
}

Result

The savings ID has been successfully retrieved for the specified savings account. It will be used to reference the account when setting up savings orders.

Create account type class rule

Use case

In this example, we will review how to create an account class rule.

Use case data
API parameters

Setting a new rule for the internal accounts type.

The was generated in the previous API call.

The validity range of the rule. The validity range format: YYYY-MM-DD.

Sample API call

To create a new account type class rule, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v1/account-type-class-rules

See more about the create account type class rule endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account type class rule.

{
  "accountTypeCode": "INTERNAL",
  "accountClassCode": "NEW",
  "validityRange": {
    "startDate": "2023-07-31"
  }
}
curl --location 'https://account-api.sandbox.tuumplatform.com/api/v1/account-type-class-rules' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMzFUMTQ6Mjk6NTgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA4MTM3OTh9.toMwogjfmBdNlD14soqIDPiZ6q1oF0dClO3hDFhJkHM' \
--header 'Content-Type: application/json' \
--data '{
  "accountTypeCode": "INTERNAL",
  "accountClassCode": "NEW",
  "validityRange": {
    "startDate": "2023-07-31"
  }
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountTypeCode": "INTERNAL",
        "accountClassCode": "NEW",
        "validityRange": {
            "startDate": "2023-07-31",
            "endDate": null
        },
        "accountTypeClassRuleId": "ID-1007"
    }
}

Result

A new account type class rule was created.

Request to generate QMR manually

Here, you will learn how to generate quarterly Mastercard report (QMR) in Tuum.

Use case

In this example, we will demonstrate how to request to generate the QMR for the third quarter of 2025.

Use case data
API parameters with values

The report includes Mastercard data for BIN 111172.

The type of report file that is going to be generated.

The reporting period is the third quarter of 2025.

Sample API call

To request the quarterly Mastercard report, use the following endpoint:

https://reports-api.sandbox.tuumplatform.com/api/v1/card/mqmr/export

Learn more about the card MQMR export endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

{
  "binNumber": "111172",
  "exportFileType": "PDF",
  "reportingPeriod": {
    "startDate": "2025-07-01",
    "endDate": "2025-10-01"
  }
}
curl -L 'https://reports-api.sandbox.tuumplatform.com/api/v1/card/mqmr/export' \
-H 'x-tenant-code: MB' \
-H 'Accept-Language: en' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdGkgdGVzdCIsImVtcGxveWVlSWQiOiJJRC0xNDE3IiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTEwLTIxVDEwOjIxOjEwIiwiZXhwIjoxNzYxMDQyMDcwLCJyb2xlcyI6WyJBRE1JTiIsIlNZU1RFTSJdfQ.P-_CWPnpAm2Xb5UBWE6tHjzTYqg5f4GNrFw7p8Fo8D0' \
-H 'Content-Type: application/json' \
-d '{
  "binNumber": "111172",
  "exportFileType": "PDF",
  "reportingPeriod": {
    "startDate": "2025-07-01",
    "endDate": "2025-10-01"
  }
}'

Sample response

Below you will find the response to the API request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "generationId": "ID-13061",
        "generationTypeCode": "CARD_MQMR",
        "groupTypeCode": "CARD",
        "statusCode": "PENDING",
        "createdDTime": "2025-10-22T08:01:53.971Z",
        "inputJson": "{\"binNumber\":\"111172\",\"exportFileType\":\"PDF\",\"reportingPeriod\":{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-10-01\"}}",
        "errorCode": null,
        "source": null,
        "previewEnabled": false
    }
}

Result

This endpoint initiates the manual generation of a QMR. When the statusCode value is PENDING, the report generation is in progress and the status can be checked. In this example, the generationId for checking the QMR generation status is ID-13061.

Create deposit application

Use case

In this example, we will review how to create a deposit application with a minimum data set.

Use case data
API parameters with values

We will create a deposit application for a test person whose account ID is ID-2660.

...persons/ID-2660/applications

The amount that the test person is going to deposit is 5000 EUR.

The deposit application is opened for a PREMIUM created earlier.

The servicing account ID that is tied to the deposit. Note: see the article to learn more about the account creation.

The deposit is offered with the 3 month duration. The interest will be paid at the end of the contract period. The deposit's jurisdiction country is Estonia.

The tax residency code determines which tax rate is enabled for this country when deducting the tax from the interest during the pay out. The tax exempt is false by default. Note: the taxResidencyCountryCode and taxExempt parameters are editable even after the deposit contract is created or activated.

Sample API call

deposit-api.sandbox.tuumplatform.com/api/v2/persons/{personId}/applications

See more information about the create deposit application endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a deposit application.

{
  "initialMoney": {
    "amount": 5000,
    "currencyCode": "EUR"
  },
  "depositTypeCode": "PREMIUM",
  "accountId": "ID-5334",
  "period": 3,
  "periodTypeCode": "MONTH",
  "interestPaymentFreqCode": "END",
  "countryCode": "EE",
  "taxResidencyCountryCode": "EE",
  "taxExempt": "false"
}
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v2/persons/ID-2660/applications' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjlUMTc6MjM6MDQiLCJleHAiOjE3MTcwMDMzODQsInJvbGVzIjpbIkFETUlOIl19.RyH47_HA4Run4sJtIGeiJmxhlN8sCin_GnGLH_6qKZc' \
--header 'Content-Type: application/json' \
--data '{
  "initialMoney": {
    "amount": 5000,
    "currencyCode": "EUR"
  },
  "depositTypeCode": "PREMIUM",
  "accountId": "ID-5334",
  "period": 3,
  "periodTypeCode": "MONTH",
  "interestPaymentFreqCode": "END",
  "countryCode": "EE",
  "taxResidencyCountryCode": "EE",
   "taxExempt": "false"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "applicationId": "ID-1696407202",
        "personId": "ID-2660",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "statusCode": "ACCEPTED",
        "accountId": "ID-5334",
        "period": 3,
        "periodTypeCode": "MONTH",
        "endDate": null,
        "initialMoney": {
            "amount": 5000.00,
            "currencyCode": "EUR"
        },
        "interestPaymentFreqCode": "END",
        "prolongationCode": null,
        "countryCode": "EE",
        "interestRate": 0.25,
        "postingDate": "2024-11-14",
        "channelCode": "SYSTEM",
        "tenantCode": "MB",
        "offerId": null,
        "depositClassCode": "PREMIUM_CUSTOMER",
        "payoutDetails": null,
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false
    }
}
     

Result

As a result, a new deposit application ID-1696407202 was created.

Create additional contact

Use case

Here we will cover how to add additional contacts to a legal person that can be used to reach out to different departments like accounting, fraud, risk etc. We will add fraud department contacts to New company Ltd.

Use case data
API parameters with values

The personId of the legal person New company Ltd is ID-3394.

...persons/ID-3394/additional-contact

The contact type code is the fraud department.

The description of the contact type.

The email of the contact.

The phone number of the contact.

The country code of the phone number.

Sample API call

To add additional contact to the person, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3394/additional-contacts

See more information about creating person additional contacts endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating additional contacts.

{
 "contactTypeCode": "FRAUD_CONTACT",
  "description": "Contacts for fraud department",
  "email": "[email protected]",
  "phoneNumber": "0901820",
  "phoneCountryCode": "+49"
}
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3394/additional-contacts' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjFUMDc6MjY6NTMiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTYyNzY0MTN9.sQw8rjIaygzdHjCKDSlEQsHu0Lvh3U0EjAWWEYaAH5A' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data-raw '{
 "contactTypeCode": "FRAUD_CONTACT",
  "description": "Contacts for fraud department",
  "email": "[email protected]",
  "phoneNumber": "0901820",
  "phoneCountryCode": "+49"
}'

Sample response

Here you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "additionalContactId": "ID-1009",
        "personId": "ID-3394",
        "contactTypeCode": "FRAUD_CONTACT",
        "description": "Contacts for fraud department",
        "email": "[email protected]",
        "phoneCountryCode": "+49",
        "phoneNumber": "0901820",
        "preferredMethodOfContact": false,
        "validityRange": {
            "endTime": null,
            "startTime": "2024-05-21T06:46:42.928Z"
        }
    }
}

Result

A new fraud department contact is added to the person.

Request to generate account transactions report

Here, you will learn how to generate account transactions report in Tuum.

Use case

In this example, we will review how to request to generate account transactions report.

Use case data
API parameters with values

The ID of the account from where the transactions report will be exported.

...accounts/ID-12333/transactions/export

The type of report file that is going to be generated. The exportFileType can be:

  • JSON or

  • CSV.

The transaction export time frame. For the dateType you can choose:

  • POSTING_DATE - is the current Tuum banking date when the account transaction was posted.

  • VALUE_DATE - is the date on which operation actually carries out or is supposed to carry out in the account. Must be the same or earlier than the posting date.

Sample API call

To request account transaction report, make the following call.

https://account-api.sandbox.tuumplatform.com/api/v4/accounts/{accountId}/transactions/export

Learn more about the export account transactions endpoint in the Tuum developer portal.

Sample request

In the sample below you will find information on how to request an account transactions report.

{
  "exportFileType": "JSON",
  "dateFrom": "2029-04-01",
  "dateTo": "2029-05-31",
  "dateType": "POSTING_DATE"
}
curl --location 'https://reports-api.sandbox.tuumplatform.com/api/v4/accounts/ID-12333/transactions/export' \
--header 'x-channel-code: system' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEyMzgiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHBpcnlEVGltZSI6IjIwMjUtMDMtMDdUMTg6MDA6NTYiLCJleHAiOjE3NDEzNzA0NTYsInJvbGVzIjpbIkFDQ09VTlRBTlQiLCJBRE1JTiJdfQ.BCgLd6S47mKEIZ0JG1ADMtc6ThjJlJPWPpv3pidIugk' \
--header 'Content-Type: application/json' \
--data '{
  "exportFileType": "JSON",
  "dateFrom": "2029-04-01",
  "dateTo": "2029-05-31",
  "dateType": "POSTING_DATE"
}'

Sample response

Below you will find an example response to the API call from above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "generationId": "ID-2864",
        "generationTypeCode": "ACCOUNT_TRANSACTIONS",
        "groupTypeCode": "ACCOUNT",
        "statusCode": "PENDING",
        "createdDTime": "2025-03-07T17:21:10.04Z",
        "inputJson": "{\"exportFileType\":\"JSON\",\"transactionType\":null,\"transactionSubtype\":null,\"dateFrom\":\"2029-04-01\",\"dateTo\":\"2029-05-31\",\"dateType\":\"POSTING_DATE\",\"directionCode\":null,\"amountFrom\":null,\"amountTo\":null,\"currencyCode\":null,\"contractNumber\":null,\"transactionGroupCodes\":null,\"referenceNumber\":null,\"counterpartyNameSubstring\":null,\"counterpartyAccountNumberSubstring\":null,\"detailsSubstring\":null,\"virtualAccountId\":null,\"source\":null,\"includeAccessRestricted\":false,\"uniqueIdentifier\":null}",
        "errorCode": null,
        "source": {
            "sourceName": "ACCOUNT",
            "sourceRef": "ID-12333"
        },
        "previewEnabled": false
    }
}

Note that the report generation process is asynchronous. Use the generationId parameter (ID-2864 in this example) to check the report status and retrieve the report in the subsequent steps.

Result

As a result, a request was made to generate an account transaction report.

Adjust deposit contract interest

Use case

In this use case, we will create an interest adjustment for an active deposit contract. We will use the deposit contract that was previously created.

Use case data
API parameters with values

The contract header is ID-1696407222. See find deposit contract page for more details.

...contracts/ID-1696407222/adjustments

The contract adjustment is an interest increase. And the component is interest. Note: to create an interest decrease adjustment, use the following value for the eventTypeCode parameter: INTEREST_DECREASE.

The interest increase amount is 0.25 EUR. Note: the contract interest adjustments must fall within the overall deposit interest adjustments rule.

Sample API call

To adjust the deposit contract interest, make the following API call. deposit-api.sandbox.tuumplatform.com/api/v1/contracts/{headerId}/adjustments

See more about the create contract adjustment endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for changing deposit contract payout details.

{
  "valueDateRule": "APPROVAL_DATE",
  "valueDate": "2027-03-06",
  "eventTypeCode": "INTEREST_INCREASE",
  "details": "Test",
  "componentTypeCode": "INT",
  "money": {
    "amount": 0.25,
    "currencyCode": "EUR"
  }
}
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v1/contracts/ID-1696407222/adjustments' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDMtMTVUMTU6Mjk6MzgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE3MTA1MTY1Nzh9.B5YRuidueo8Ykoqv3z89Jm1rYSwPe2_B1w7Kk_sjP-k' \
--header 'Content-Type: application/json' \
--data '{
  "valueDateRule": "APPROVAL_DATE",
  "valueDate": "2027-03-06",
  "eventTypeCode": "INTEREST_INCREASE",
  "details": "Test",
  "componentTypeCode": "INT",
  "money": {
    "amount": 0.25,
    "currencyCode": "EUR"
  }
}'

Sample response

Below you will find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "adjustmentBookingId": "ID-1021",
        "componentTypeCode": "INT",
        "eventTypeCode": "INTEREST_INCREASE",
        "adjustmentType": "BOOKING",
        "postingDate": "2027-06-03",
        "valueDateRule": "APPROVAL_DATE",
        "valueDate": "2027-06-03",
        "statusCode": "PROCESSED",
        "initiatedByUserId": "1",
        "amountMoney": {
            "amount": 0.25,
            "currencyCode": "EUR"
        },
        "details": "Test",
        "source": {
            "sourceName": "DEPOSIT.CONTRACT_HEADER",
            "sourceRef": "ID-1696407222",
            "sourceLink": null
        },
        "originalAdjustmentBookingId": null,
        "headerId": "ID-1696407222",
        "personId": "ID-2660",
        "versionId": "ID-1696407267"
    }
}

Result

As a result a deposit contract interest adjustment: INTEREST_INCREASE with ID-1021 was created.

Edit deposit offer

Use case

In this example, we will review how to edit a deposit offer.

Use case data
API parameters with values

We will change the deposit offer ID-1718024058.

...offers/ID-1718024058

We will change the deposit offer initial amount from 5000 EUR to 6000 EUR.

Sample API call

To edit a deposit offer, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v2/offers/{offerId}

See more about the edit deposit offer endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for editing a deposit offer.

{
  "initialMoney": {
    "amount": 6000,
    "currencyCode": "EUR"
  },
  "period": 3,
  "interestPaymentFreqCode": "END",
  "taxResidencyCountryCode": "EE",
  "prolongationCode": "PRINCIPAL",
  "taxExempt": "false",
  "interestRate": 0.35
}
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v2/offers/ID-1718024058' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMzBUMTM6MzI6MjgiLCJleHAiOjE3MzAyOTUxNDgsInJvbGVzIjpbIkFETUlOIl19.7g3ys-QseNqtzu6P5l5lEdpj1tk5izFT10f4AEc9RVo' \
--header 'Content-Type: application/json' \
--data '{
  "initialMoney": {
    "amount": 6000,
    "currencyCode": "EUR"
  },
  "period": 3,
  "interestPaymentFreqCode": "END",
  "taxResidencyCountryCode": "EE",
  "prolongationCode": "PRINCIPAL",
  "taxExempt": "false",
  "interestRate": 0.35
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "offerId": "ID-1718024058",
        "personId": "ID-2660",
        "applicationId": null,
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "COPY_PREMIUM_NEW",
        "terminationType": "WITHOUT_INTEREST",
        "statusCode": "PRESENTED",
        "reasonCode": null,
        "accountId": "ID-1012",
        "interestRate": 0.35,
        "period": 3,
        "periodTypeCode": "MONTH",
        "endDate": null,
        "initialMoney": {
            "amount": 6000.00,
            "currencyCode": "EUR"
        },
        "interestPaymentFreqCode": "END",
        "prolongationCode": "PRINCIPAL",
        "countryCode": "EE",
        "maturityDate": "2027-04-26",
        "returnAmount": {
            "amount": 6005.25,
            "currencyCode": "EUR"
        },
        "postingDate": "2027-01-26",
        "lastValidDate": "2027-01-27",
        "channelCode": "BACKOFFICE",
        "tenantCode": "MB",
        "contractHeaderId": null,
        "contractNumber": null,
        "depositClassCode": "PREMIUM_CUSTOMER",
        "payoutDetails": {
            "name": "Test User",
            "accountNumber": {
                "value": "EE961221248796768756",
                "type": "IBAN"
            },
            "financialInstitutionId": null,
            "referenceNumber": null,
            "countryCode": null
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false,
        "marginRate": null
    }
}

Result

As a result the deposit offer ID-1718024058 was updated. The initial offer amount was changed.

Inactivate person

Use case

Here, you can learn how to inactivate a person who is no longer an active user. We will inactivate a private person, Rhys Davey, who no longer uses any services and does not wish to maintain an active customer record.

Use case data
API parameters with values

Person inactivation is not permanent and person can be to PENDING status and later to ACTIVE status.

You can use different values for the processReason parameter. See below:

The processReason for private person:

  • MERGER,

  • DEATH,

  • OTHER,

  • LEFT_FOR_COMPETITOR,

  • DATA_RETENTION_PERIOD_END.

The processReason for legal person:

  • MERGER,

  • LIQUIDATION,

  • OTHER,

  • LEFT_FOR_COMPETITOR,

  • DATA_RETENTION_PERIOD_END.

Sample API call

To inactivate a person, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3204/inactivate/start

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call to inactivate a person.

Sample response

Below you find an example response body to the API call above.

Response

Result

The person's status is changed to INACTIVE.

Find deposit contract

Use case

In this example, we will find the deposit contract that was automatically created by the Tuum system after .

Use case data
API parameters with values

Sample API call

/deposit-api.sandbox.tuumplatform.com/api/v3/persons/{personId}/contracts

See more information about the endpoint in the Tuum developer portal.

Sample response

Below you will find an example response body to the API call above.

Response

Result

As a result, we found the deposit contract number PR-EE-1000 with headerId ID-1696407222 and activeVersionId ID-1696407267.

Search account transactions

Use case

In this example, we will review how to fetch the account transactions.

Use case data
API parameters with values

You can use the following values for the dataType parameter: POSTING_DATE or VALUE_DATE.

Note:

  • POSTING_DATE - is always a current Tuum banking date when an account transaction was posted to the account API.

  • VALUE_DATE - is a date when an operation is actually carried out or is supposed to be carried out in the account.

Sample API call

To search the account transactions, make the following call.

https://account-api.sandbox.tuumplatform.com/api/v4/accounts/{accountId}/transactions/search

See more about the endpoint in the Tuum developer portal.

Sample request

Below is the sample request to find account transactions.

Sample response

Below you find an example response body to the API call above.

Response

Result

The details of the existing account transactions are fetched.

Find person details

Use case

Learn how to find a particular person's (your customer's) main details in Tuum. In this example, we will demonstrate it on a private person using the following data.

Use case data
API parameters with values

To retrieve the record of a legal entity, use the same API endpoint.

Sample API call

To retrieve customer data, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v3/persons/ID-3392

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to retrieve customer data.

No request body.

Sample response

Below you find an example response body to the API call above.

Response

Result

The result of the API call is the dataset of the particular person.

The personId of Rhys Davey who we want to inactivate isID-3204.

.../persons/ID-3204/inactivate/start

Since the person requested to inactivate their account, the reason can be set as OTHER.

"processReason": "OTHER"

The inactivation is effective from June 15th 2023. The date format: YYYY-MM-DD.

"processDate": "2023-06-15"
{
  "processReason": "OTHER",
  "processDate": "2023-06-15"
}
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3204/inactivate/start' \
--header 'x-channel-code: system' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTVUMTQ6MTc6MTgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODY4Mzg2Mzh9.nohgrCBeB0UK4HVFLGlV867_C923zuMe_m_Y6I6Jl8k' \
--header 'Content-Type: application/json' \
--data '{
  "processReason": "OTHER",
  "processDate": "2023-06-15"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": null
}
reactivated
activated
inactivate person

Searching for transactions on the ID-1279 account.

...accounts/ID-1279/transactions...

The search from and to dates. The date format is: YYYY-MM-DD.

...search?dateFrom=2023-01-01&dateTo=2023-07-10...

The search data type is the posting date.

...&dateType=POSTING_DATE...

Requesting to display the search results on the first page; the page size is 5.

...&pageNumber=1&pageSize=5

https://account-api.{{env}}.{{domain}}/api/v4/accounts/ID-1279/transactions/search?dateFrom=2023-01-01&dateTo=2023-07-10&dateType=POSTING_DATE&pageNumber=1&pageSize=5
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v4/accounts/ID-1279/transactions/search?dateFrom=2023-01-01&dateTo=2023-07-10&dateType=POSTING_DATE&pageNumber=1&pageSize=5' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTBUMTc6MDk6MzUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkwMDg5NzV9.grNoFmnvoFcSb2IifdVKojVUQHZTwLU083wH2ci4fpc' \
-d ''
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "values": [
            {
                "accountTransactionId": "ID-1183",
                "groupId": "1190",
                "postingDate": "2023-07-01",
                "valueDate": "2023-07-01",
                "accountId": "ID-1279",
                "transactionTypeCode": "ACC_ADM_FEE",
                "transactionSubtypeCode": null,
                "directionCode": "OUT",
                "currencyCode": "EUR",
                "amount": 5.00,
                "initialBalanceAmount": 0.00,
                "filingCode": "2023070100001183",
                "details": "Account maintenance fee",
                "referenceNumber": null,
                "source": {
                    "sourceName": "ACCOUNT.ACCOUNT_PERIODIC_FEE",
                    "sourceRef": "ID-1063",
                    "sourceLink": null
                },
                "contractSource": null,
                "merchantInfo": null,
                "metaInfo": null,
                "createdDTime": "2023-07-01T00:00:09.294656Z",
                "endToEndId": null,
                "paymentServiceProviderCode": null,
                "transactionDTime": "2023-07-01T00:00:09.963737Z",
                "reversed": false,
                "virtualAccountId": null,
                "labels": [],
                "counterparty": null
            }
        ],
        "pageNumber": 1,
        "pageSize": 5,
        "endReached": true,
        "sort": null,
        "total": 1
    }
}
search account transactions

Private person with Tuum personId: ID-3392

.../persons/ID-3392

{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personId": "ID-3392",
        "personTypeCode": "P",
        "statusCode": "ACTIVE",
        "statusCodeReason": null,
        "name": null,
        "givenName": "Trevor",
        "middleName": null,
        "surname": "Tuum",
        "birthDate": null,
        "creationDate": "2023-06-01",
        "deathDate": null,
        "liquidationDate": null,
        "inactivationDate": null,
        "registrationDate": null,
        "sex": null,
        "email": null,
        "customerTypeCode": null,
        "nationality": null,
        "taxResidencyCountry": null,
        "placeOfBirth": null,
        "countryOfBirth": null,
        "phoneCountryCode": null,
        "phoneNumber": null,
        "idNumber": "DQ654327C",
        "idCountryCode": "GB",
        "residencyCountryCode": null,
        "language": null,
        "educationCode": null,
        "activityCode": null,
        "housingTypeCode": null,
        "buildingTypeCode": null,
        "moveInDate": null,
        "maritalStatusCode": null,
        "dependantPersons": null,
        "employmentTimeCode": null,
        "fixedEmploymentLength": null,
        "businessAreaCode": null,
        "intraOrgCode": null,
        "tradingName": null,
        "webAddress": null,
        "pepExplanation": null,
        "legalForm": null,
        "businessModelDescription": null,
        "counterpartySectorCode": null,
        "forgotten": null,
        "usResident": false,
        "pep": false,
        "source": null,
        "tenantCode": "MB",
        "fullName": "Trevor Tuum"
    }
}
find person
curl 'https://person-api.sandbox.tuumplatform.com/api/v3/persons/ID-3392' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMDFUMDg6NTU6NDciLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODU2MDk3NDd9.55aYdFuNopFjauFv8XG-FO6S5io6c4PNlF__rUIJixM' \
-H 'x-channel-code: SYSTEM'
rolesWithPrivileges": [
            {
                "roleCode": "ACCOUNTANT",
                "privilegeNames": [
                    "ADD_PERSON",
                    "APPROVE_APPLICATIONS",
                    "DISBURSE_LOAN",
                    "EDIT_CONTRACT",
                    "EDIT_LOAN_PRODUCTS",
                    "EDIT_PERSON",
                    "MANAGE_USERS",
                    "SEARCH_CONTRACT_DOCUMENTS",
                    "VIEW_GL_JOURNAL",
                    "VIEW_LOAN_CONTRACT",
                    "VIEW_LOAN_PRODUCTS",
                    "VIEW_PERSON",
                    "VIEW_PERSON_ADDITIONAL_CONTACT",
                    "VIEW_PERSON_GROUP_TYPE"
                ],
                "valid": true
            },
            {
                "roleCode": "TEST_LT",
                "privilegeNames": [
                    "MANAGE_USERS",
                    "READ_RESTRICTED_DATA",
                    "VIEW_EXTERNAL_CONTRACTS",
                    "VIEW_FOUREYE_REVIEW_RULE",
                    "VIEW_PERSON",
                    "VIEW_PERSON_GROUP_TYPE",
                    "VIEW_REVIEW_APPROVALS_CONFIGURATION"
                ],
                "valid": true
            }
Export selected roles
"middleName": "Harry"
...accounts/saving-accounts/ID-23941/savings
"accountTypeCode": "INTERNAL"
"accountClassCode": "NEW"
"validityRange": {
    "startDate": "2023-07-31"
  }
account class code
"binNumber": "111172"
"exportFileType": "PDF"
"reportingPeriod": {
    "startDate": "2025-07-01",
    "endDate": "2025-10-01"
  }
"initialMoney": {
    "amount": 5000,
    "currencyCode": "EUR"
  }
"depositTypeCode": "PREMIUM"
"accountId": "ID-5334"
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE"
"taxResidencyCountryCode": "EE",
  "taxExempt": "false"
deposit product
create account
"contactTypeCode": "FRAUD_CONTACT"
"description": "Contacts for fraud department"
"email": "[email protected]"
"phoneNumber": "0901820"
"phoneCountryCode": "+49"
"exportFileType": "JSON"
"dateFrom": "2029-04-01",
"dateTo": "2029-05-31",
"dateType": "POSTING_DATE"
"eventTypeCode": "INTEREST_INCREASE",
"componentTypeCode": "INT",
"money": {
    "amount": 0.25,
    "currencyCode": "EUR"
  }
"initialMoney": {
    "amount": 6000,
    "currencyCode": "EUR"
  }

We will find an existing deposit contract that was created for the test person with the ID-2660.

...v2/persons/ID-2660/contracts

This API call requires mandatory query parameters pageSize and pageNumber.

...?pageSize=1&pageNumber=1

accepting the related deposit offer
find deposit contract
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "values": [
            {
                "headerId": "ID-1696407222",
                "personId": "ID-2660",
                "accountId": "ID-1012",
                "applicationId": "ID-1696407202",
                "offerId": "ID-1696407305",
                "depositGroupCode": "TIME_DEPOSIT",
                "depositTypeCode": "PREMIUM_TEST",
                "contractNumber": "PR-EE-1000",
                "countryCode": "EE",
                "channelCode": "SYSTEM",
                "tenantCode": "MB",
                "depositClassCode": null,
                "headerActivationDate": null,
                "headerClosingDate": null,
                "activeVersion": {
                    "versionId": "ID-1718023938",
                    "headerId": "ID-1718023942",
                    "versionNumber": 1,
                    "statusCode": "ACTIVE",
                    "preparationDate": "2024-11-15",
                    "signingDate": null,
                    "activationDate": null,
                    "endDate": "2025-02-15",
                    "closingDate": null,
                    "period": 3,
                    "periodTypeCode": "MONTH",
                    "interestRate": 0.25,
                    "interestPaymentFrequencyCode": "END",
                    "prolongCode": null,
                    "countryCode": "EE",
                    "cancelReasonCode": "CREDIT_PERIOD_PASSED",
                    "lastCreditReceiveDate": "2024-11-17",
                    "lastSigningDate": null,
                    "changeTypeCode": "NEW_CONTRACT",
                    "components": [
                        {
                            "componentId": "ID-1718023964",
                            "versionId": "ID-1718023938",
                            "componentTypeCode": "PRI",
                            "initialMoney": {
                                "amount": 5000.00,
                                "currencyCode": "EUR"
                            },
                            "balanceMoney": {
                                "amount": 0.00,
                                "currencyCode": "EUR"
                            },
                            "calculationMethod": null,
                            "rateBaseCode": null,
                            "rate": null,
                            "accruedUntil": null,
                            "paymentDay": 15,
                            "paymentInterval": 1,
                            "baseInvalidFromDate": null
                        },
                        {
                            "componentId": "ID-1718023965",
                            "versionId": "ID-1718023938",
                            "componentTypeCode": "INT",
                            "initialMoney": {
                                "amount": 0.00,
                                "currencyCode": "EUR"
                            },
                            "balanceMoney": {
                                "amount": 0.00,
                                "currencyCode": "EUR"
                            },
                            "calculationMethod": {
                                "daysInMonth": "30",
                                "daysInYear": 360
                            },
                            "rateBaseCode": "FIX",
                            "rate": 0.25,
                            "accruedUntil": null,
                            "paymentDay": 15,
                            "paymentInterval": 1,
                            "baseInvalidFromDate": null
                        }
                    ],
                    "totalInterestMoney": {
                        "amount": 3.13,
                        "currencyCode": "EUR"
                    },
                    "totalInterestAccruedMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "channelCode": "SYSTEM",
                    "tenantCode": "MB",
                    "terminationType": "WITHOUT_INTEREST",
                    "nextPayoutDate": null,
                    "payoutDetails": null
                },
                "personTypeCode": "P",
                "taxResidencyCountryCode": "EE",
                "taxExempt": false
            }
        ],
        "pageNumber": 1,
        "pageSize": 1,
        "endReached": true,
        "sort": null
    }
}

Activate person

Use case

This example presents how to activate a person from PENDING status to ACTIVE.

The ability to use the activate person endpoint depends on the platform settings of your company Tuum instance. The enabled configuration ensures that the status of the newly created person is set to PENDING.

In this example, we will demonstrate how to activate a recently created private individual, Ashley Tuum, as she has passed all pre-activation checks.

Use case data
API parameters with values

The personId of the Ashley Tuum is ID-29367.

...persons/ID-29367/activate

Sample API call

To activate the person, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-29367/activate

Learn more about the activate person endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to activate person.

No request body.

curl --location --request POST 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-29367/activate' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjlUMTQ6MzM6MDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTY5OTMxODB9.hIvk230HwvSX2BMWxas_P7Xq8WyGfAEzeZsPz_U0ITY' \
--header 'x-channel-code: SYSTEM' \
--header 'Accept-Language: en' \
--data''

Sample response

Below you will find an example response to the API call from above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personId": "ID-29367",
        "statusCode": "ACTIVE",
        "source": null,
        "tenantCode": "MB",
        "forgotten": false,
        "legalForm": null,
        "creationDate": "2024-05-29",
        "personalInfo": {
            "personTypeCode": "P",
            "givenName": "Tuum",
            "middleName": null,
            "surname": "Ashley",
            "name": null,
            "email": null,
            "phoneNumber": null,
            "phoneCountryCode": null,
            "residencyCountryCode": null,
            "sex": null,
            "nationality": null,
            "dependantPersons": null,
            "legalForm": null,
            "identificationNumber": {
                "idNumberId": "ID-3390",
                "personId": "ID-29367",
                "idNumber": "testidddd",
                "idCountryCode": "GB",
                "vatNumber": null,
                "taxNumber": null,
                "validityRange": {
                    "startTime": "2024-05-29T13:29:50.225Z",
                    "endTime": null
                }
            }
        },
        "additionalInfo": {
            "birthDate": null,
            "countryOfBirth": null,
            "placeOfBirth": null,
            "language": null,
            "educationCode": null,
            "maritalStatusCode": null,
            "dependantPersons": null,
            "taxResidencyCountry": null,
            "usResident": false,
            "pep": false,
            "customerTypeCode": null,
            "statusCodeReason": null,
            "deathDate": null,
            "liquidationDate": null,
            "inactivationDate": null,
            "tradingName": null,
            "registrationDate": null,
            "webAddress": null,
            "pepExplanation": null,
            "businessAreaCodes": [],
            "businessModelDescription": null,
            "intraOrgCode": null,
            "counterpartySectorCode": null
        },
        "work": {
            "activityCode": null,
            "businessAreaCode": null,
            "businessAreaCodes": [],
            "employmentTimeCode": null,
            "fixedEmploymentLength": null
        },
        "home": null,
        "addresses": [
            {
                "addressId": "ID-28849",
                "personId": "ID-29367",
                "addressTypeCode": "R",
                "street1": "24 Botley Road",
                "street2": null,
                "cityCounty": "Middleton Hall",
                "stateRegion": null,
                "zip": "NE71 3LL",
                "countryCode": "GB",
                "moveInDate": null,
                "validityRange": {
                    "startTime": "2024-05-29T13:29:50.118Z",
                    "endTime": null
                }
            }
        ],
        "documents": [],
        "relationships": [],
        "additionalContacts": [],
        "personGroupCodes": [],
        "identificationNumbers": [
            {
                "idNumberId": "ID-3390",
                "personId": "ID-29367",
                "idNumber": "testidddd",
                "idCountryCode": "GB",
                "validityRange": {
                    "startTime": "2024-05-29T13:29:50.225Z",
                    "endTime": null
                },
                "primary": true
            }
        ],
        "taxNumbers": [],
        "accessRestricted": false,
        "fullName": "Tuum Ashley"
    }
}

Result

A private person Ashley Tuum has been activated.

Create deposit product

Use case

Here we will review how to create a deposit product with the minimum set of data:

Use case data
API parameters with values

The description of the deposit product.

The deposit group code. Currently, the TIME_DEPOSIT is the only available value.

A unique code for product identification. It must be a unique value and can contain uppercase letters, numbers, and the special characters “-” (dash), “_” (underscore), and “.” (full-stop). Spaces are not allowed.

The code of the tenant where the deposit product is going to be opened.

The deposit product country is Estonia and the currency is euro.

A contract number prefix.

It must be a unique value and can contain uppercase letters, numbers, and the special characters “-” (dash), “_” (underscore), “/” (slash), and “.” (full-stop). Spaces are not allowed.

The deposit offer opened based on this product will be valid for 1 day. The number of days that the system will wait for the contracts of this product type to receive the deposit balance amount from the servicing account. If the expected deposit amount is not received within 2 days, the system cancels the deposit product.

  • The premature contract termination is without interest.

  • The automatic prolongation of the deposit contract is allowed.

Deposit product interest settings:

  • Interest calculation method 30/360 - considers that each month has 30 days and there are 360 days in a year.

  • Interest conditions are applied for a fixed period of time.

  • The amount that the customer can deposit is a range from 5000 to 10000 EUR. Note: The endValue is an exclusive parameter.

  • The default deposit interest rate is 0.25.

  • The minimum interest rate is 0.21 and the maximum is 0.75.

  • The deposit period is 3 months.

  • The deposit interest is paid out at the end of the deposit period.

The that was created as a first step.

This deposit product holder is a private person.

Sample API call

To create a deposit product, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v2/deposits/product

See more information about the create deposit product endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a deposit product.

{
  "description": "Premium deposit",
  "depositGroupCode": "TIME_DEPOSIT",
  "depositTypeCode": "PREMIUM",
  "tenantCode": "MB",
  "countryCode": "EE",
  "currencyCode": "EUR",
  "contractNumberPrefix": "PR-EE-",
  "offerValidDays": 1,
  "daysToWaitCredit": 2,
  "terminationType": "WITHOUT_INTEREST",
  "autoProlongationAllowed": true,
  "interestCalculationMethod": 
{ 
    "daysInMonth": "30", 
    "daysInYear": 360
  },
  "interestPeriodSelector": "FIXED",
  "interests": [
    {
      "amountRange": { 
        "startValue": 5000,
        "endValue": 100001
      },
      "interestRate": 0.25,
      "minInterestRate": 0.21,
      "maxInterestRate": 0.75,
      "period": 3,
      "periodTypeCode": "MONTH",
      "paymentFrequencyTypeCode": "END",
      "validityRange": {
        "startDate": "2027-01-09"
      }
    }
  ],
  "depositClassCode": "PREMIUM_CUSTOMER",
  "personTypeCode": "P"
}
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v2/deposits/product' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDItMjJUMTk6MTc6MDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE3MDg2Mjk0MjB9.Np7yiNhKpkY35dIPSBD8h1qMoe9zz4IRbsHYZnnoBlo' \
--data '{
  "description": "Premium deposit", 
  "depositGroupCode": "TIME_DEPOSIT", 
  "depositTypeCode": "PREMIUM", 
  "tenantCode": "MB", 
  "countryCode": "EE", 
  "currencyCode": "EUR", 
  "contractNumberPrefix": "PR-EE-", 
  "offerValidDays": 1, 
  "daysToWaitCredit": 2,  
  "terminationType": "WITHOUT_INTEREST",
  "autoProlongationAllowed": true, 
  "interestCalculationMethod": { 
    "daysInMonth": "30", 
    "daysInYear": 360
  },
  "interestPeriodSelector": "FIXED", 
  "interests": [
    {
      "amountRange": { 
        "startValue": 5000, 
        "endValue": 100001 
      },
      "interestRate": 0.25,
      "minInterestRate": 0.21,
      "maxInterestRate": 0.75,
      "periodRange": { 
        "startValue": 0,
        "endValue": 0
      },
      "period": 3, 
      "periodTypeCode": "MONTH", 
      "paymentFrequencyTypeCode": "END", 
      "validityRange": {
        "startDate": "2027-01-09", 
        "endDate": null 
      }
    }
  ],
  "depositClassCode": "PREMIUM_CUSTOMER",
  "personTypeCode": "P"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

Result

As an outcome, a new deposit product was created in a DRAFT status.

Create or update savings order

In this example, we will demonstrate how to update a savings order using the same savings account ID and savings ID referenced in the previous examples about creating a savings account and finding its savings ID. This API call can be used either to set up a savings order if one was not created during account creation, or to modify an existing one.

Use case

In this example, we will modify a savings order linked to the savings account ID-23941.

Use case data
API parameters with values

The savings order will be created for savings account ID-23941 using savings ID ID-1491.

The name the customer has chosen for their savings account.

The date when the savings order matures and all scheduled recurring deposits are completed.

The target amount to be saved in the savings account.

Defines the recurring deposit setup for the savings account.

It includes the deposit amount, frequency, and the specific day on which the deposit should occur. In this example, deposits are scheduled monthly on the 30th of each month.

When creating a savings order, be sure to set the savingDay in accordance with the rules for the selected paymentFrequencyCode, as outlined in the table below.

Sample API call

To create or update a savings order linked to the savings account, use the following endpoint:

https://account-api.sandbox.tuumplatform.com/api/v4/accounts/saving-accounts/{savingAccountId}/savings/{savingId}

Learn more about the updates saving endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

{
  "savingName": "Emergency savings",
  "savingEndDate": "2045-12-31",
  "savingAmount": 1000,
  "savingOrder": {
    "savingDay": 30,
    "amount": 10,
    "paymentFrequencyCode": "MONTHLY"
  }
}
curl -L -X PUT 'https://account-api.sandbox.tuumplatform.com/api/v4/accounts/saving-accounts/ID-23941/savings/ID-1491' \
-H 'x-tenant-code: MB' \
-H 'Accept-Language: en' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdGkgdGVzdCIsImVtcGxveWVlSWQiOiJJRC0xNDE3IiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTEwLTE0VDA5OjAwOjU3IiwiZXhwIjoxNzYwNDMyNDU3LCJyb2xlcyI6WyJBRE1JTiIsIlNZU1RFTSJdfQ.UFCVgKoZ0Gq5EfJNLNhKcK_tbz10SI_O1emSCv4fak0' \
-H 'Content-Type: application/json' \
-d '{
  "savingName": "Emergency savings",
  "savingEndDate": "2045-12-31",
  "savingAmount": 1000,
  "savingOrder": {
    "savingDay": 30,
    "amount": 10,
    "paymentFrequencyCode": "MONTHLY"
  }
}'

Sample response

Below you will find the response to the API request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "savingId": "ID-1491",
        "savingAccountId": "ID-23941",
        "currencyAccountId": "ID-23819",
        "savingName": "Emergency savings",
        "firstDebitDate": "2033-05-30",
        "lastDebitDate": null,
        "savingEndDate": "2045-12-31",
        "nextDebitDate": "2033-05-30",
        "currencyCode": "EUR",
        "interestRate": 3.10,
        "savingAmount": 1000,
        "initialAmount": 10,
        "orderAmount": 10,
        "savingDay": 30,
        "frequency": "MONTHLY",
        "manuallyEnded": false,
        "errorCode": null,
        "accountInterests": [
            {
                "accountInterestMethodId": "ID-000000015023",
                "accountTypeInterestMethodId": "ID-000000001290",
                "currencyCode": "EUR",
                "interestGroupCode": "DEPOSIT",
                "nextInterestCalculationDate": "2033-05-11",
                "balanceTypeCode": "END_OF_DAY",
                "calculationBaseTermCode": "SIMPLE",
                "rateTypeCode": "FIXED",
                "calcDaysMonth": "30",
                "calcDaysYear": "360",
                "paymentIntervalTypeCode": "MONTH",
                "minPayableInterestAmount": 0.01,
                "marginTypeCode": null,
                "conditions": [
                    {
                        "accountInterestConditionId": "ID-000000033574",
                        "amountRange": null,
                        "interestRate": 3.1,
                        "ratePeriodTypeCode": "PER_YEAR",
                        "interestTypeCode": "ACCO_INT",
                        "validityRange": {
                            "startDate": "2033-05-11",
                            "endDate": null
                        },
                        "source": null,
                        "rateBaseCode": null,
                        "baseRate": null,
                        "marginRate": null
                    }
                ]
            }
        ],
        "interestBalances": [],
        "accountNumbers": [
            {
                "accountNumberId": "ID-15148",
                "accountId": "ID-23941",
                "accountNumber": {
                    "value": "XX20XXXX99999000000000000127872",
                    "type": "IBAN"
                },
                "countryCode": "XX",
                "financialInstitutionId": {
                    "value": "ICECLOUDXXX",
                    "type": "BIC"
                },
                "accountNumberSubtype": null,
                "defaultCurrencyCode": "EUR",
                "statusCode": "ENABLED",
                "externalSyncEnabled": false,
                "validityRange": {
                    "endTime": null,
                    "startTime": "2025-10-14T07:31:32.92Z"
                }
            }
        ]
    }
}

Result

The savings order has been successfully processed.

  • If updating: The planned end date and saving day were modified successfully.

  • If creating: The savings order was created successfully.

Create internal account

Use case

Here we will review how to set up an bank technical account - internal account.

Use case data
API parameters with values

Internal account type

The name of the account holder is Trevor Harry Tuum

For the internal accounts, use the internal customer group

For the internal accounts, use the internal pricelist

Trevor's residency country is the Great Britain

The internal account currency is euro

Sample API call

To create an internal account, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/accounts

See more about the create account endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an internal account.

{
  "accountTypeCode": "INTERNAL",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "INTERNAL",
  "priceListTypeCode": "INTERNAL",
  "currencyCode": "EUR"
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3392/accounts' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMjZUMTM6NTc6MDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODc3ODc4MjB9.dLFGW9A1MvRHNAhjFr_yXBm0m24bHI0NlIARuiwbBqE' \
-d '{
  "accountTypeCode": "INTERNAL",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "INTERNAL",
  "priceListTypeCode": "INTERNAL",
  "currencyCode": "EUR"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1282",
        "personId": "ID-3392",
        "accountTypeCode": "INTERNAL",
        "activationDate": "2023-06-26",
        "accountName": null,
        "personName": "Trevor Harry Tuum",
        "statusCode": "ACTIVE",
        "iban": "XX54XXXX99999000000000000001257",
        "bic": "ICECLOUDXXX",
        "defaultCurrencyCode": "EUR",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "INTERNAL",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1209",
                "accountId": "ID-1282",
                "currencyCode": "EUR",
                "balanceAmount": 0,
                "reservedAmount": 0,
                "overdraftLimitAmount": 0,
                "defaultCurrencyCode": "EUR",
                "availableBalanceInDefaultCcy": 0,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}

Result

The outcome of the API call is the complete set of account data. Including the parameters generated by the Tuum system:

Parameter and value
Explanation

A unique identifier is assigned to the new account.

The new account is created and activated.

The IBAN assigned to the new account.

The BIC assigned to the new account.

Create account application

Use case

In this example, we will review how to create a currency account (account application) with an external service provider.

Use case data
API parameters with values

Creating a currency account.

The external provider is LHV.

The name of the account holder is Trevor Harry Tuum.

Trevor is assigned to the GROUP_A customer group.

The standard price list is assigned to the account.

The account currency is EUR.

The account interest rate is set to 10.

The account holder is a private person.

Sample API call

To create an account application, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v2/persons/{personId}/applications

See more information about the create account application endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account application.

{
  "accountTypeCode": "CURRENCY",
  "accountTypeSetupCode": "EXTERNAL_VIRTUAL",
  "serviceProviderCode": "LHV",
  "accountName": "My business account",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "currencyCode": "EUR",
  "accountInterestRate": 10,
  "personTypeCode": "P"
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/applications' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMDVUMTg6MjI6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODg1ODEzNDF9.LFWDXWOCWurR4ywAhL-idPSQIVexdUXHad6h7p4mXJ0' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "accountTypeSetupCode": "EXTERNAL_VIRTUAL",
  "serviceProviderCode": "LHV",
  "accountName": "My business account",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "currencyCode": "EUR",
  "accountInterestRate": 10,
  "personTypeCode": "P"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountApplicationId": "ID-1007",
        "personId": "ID-3392",
        "applicationStatusCode": "INSERTED",
        "accountTypeSetupCode": "EXTERNAL_VIRTUAL",
        "accountTypeCode": "CURRENCY",
        "accountClassCode": null,
        "serviceProviderCode": "LHV",
        "tenantCode": "MB",
        "applicationDate": "2023-07-05",
        "accountNumber": null,
        "statusNote": null
    }
}

Result

A new account application ID-1007 is created.

Update deposit product

Use case

In this use case, we will review how to update a deposit product. We will change the deposit product that was created in a previous step.

Note that you can completely modify the deposit product configuration when the deposit product is in the DRAFT status. Once the product is in the ACTIVE status, you can only update the interest conditions. When the product is in the INACTIVE status, you cannot modify any product fields.

In the table below, you will find a list of the settings that have been modified for the deposit product:

Use case data
API parameters with values

The product description is updated.

The deposit country is set to Germany.

The contract number prefix is modified.

The premature deposit contract termination is with interest.

The deposit contract period is 12 months.

The deposit is offered for legal entities.

The deposit product end is updated. Note: the date format is YYYY-MM-DD.

Sample API call

To update a deposit product, make the following API call.

deposit-api.sandbox.tuumplatform.com/ api/v2/deposits/product/{depositTypeCode}

See more information about the update deposit product endpoint in the Tuum developer portal.

Sample request

Below is an example request body for the API call to update a deposit product.

{
  "description": "Premium deposit Germany"
  "depositGroupCode": "TIME_DEPOSIT"
  "countryCode": "DE"
  "currencyCode": "EUR"
  "contractNumberPrefix": "PR-DE-"
  "offerValidDays": 1
  "daysToWaitCredit": 2
  "calculateTaxesEnabled": false,
  "terminationType": "WITH_TOTAL_INTEREST"
  "interestCalculationMethod": {
    "daysInMonth": "30", 
    "daysInYear": 360
  },
  "interestPeriodSelector": "FIXED",
  "interests": [
    {
      "amountRange": { 
        "startValue": 6000,
        "endValue": 100001
      },
      "interestRate": 0.25,
      "periodRange": { 
        "startValue": 0,
        "endValue": 0
      },
      "period": 12, 
      "periodTypeCode": "MONTH",
      "paymentFrequencyTypeCode": "END",
      "validityRange": {
        "startDate": "2027-02-08", 
        "endDate": "2031-02-08"
      }
    }
  ],
  "personTypeCode": "L"
}
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v2/deposits/product/PREMIUM' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMDNUMjA6NDQ6MDMiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTQ3NjkwNDN9.rdBXcIkNYRWcVC_iNUuYaVnaEIuN3my3L3d2hNlwSK8' \
--header 'Content-Type: application/json' \
--data '{
  "description": "Premium deposit Germany", 
  "depositGroupCode": "TIME_DEPOSIT", 
  "countryCode": "DE", 
  "currencyCode": "EUR", 
  "contractNumberPrefix": "PR-DE-", 
  "offerValidDays": 1, 
  "daysToWaitCredit": 2, 
  "calculateTaxesEnabled": false, 
  "terminationType": "WITH_TOTAL_INTEREST", 
  "interestCalculationMethod": { 
    "daysInMonth": "30", 
    "daysInYear": 360
  },
  "interestPeriodSelector": "FIXED", 
  "interests": [
    {
      "amountRange": { 
        "startValue": 6000, 
        "endValue": 100001 
      },
      "interestRate": 0.25,  
      "periodRange": { 
        "startValue": 0,
        "endValue": 0
      },
      "period": 12, 
      "periodTypeCode": "MONTH", 
      "paymentFrequencyTypeCode": "END", 
      "validityRange": {
        "startDate": "2027-02-08", 
        "endDate": null 
      }
    }
  ],
  "personTypeCode": "P"
}'

Sample response

Below, you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": null
}

Result

As a result, the following deposit product settings were updated:

  • description,

  • countryCode,

  • contractNumberPrefix,

  • terminationType,

  • period,

  • perconTypeCode,

  • validityRange - endDate.

The updated deposit product is in the DRAFT status.

Create account limit

Use case

In this example, we will review how to set up an account limit and apply it to the particular account.

Use case data
API parameters with values

The account limit type that was created in the . The account scope, monthly, per-currency limit.

The current account id to which the account limit is going to be applied.

The account limit amount is 10000 EUR.

Sample API call

To create a new account limit, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v2/accounts/limits

See more information about the create account limit endpoint in the Tuum developer portal.

Create account limit

POST https://account-api.sandbox.tuumplatform.com/api/v2/accounts/limits

See more information about this endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account limit.

{
  "limitTypeId": "ID-1002",
  "accountId": "ID-1279",
  "amount": {
    "amount": "10000",
    "currencyCode": "EUR"
  }
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v2/accounts/limits'
-H 'x-channel-code: SYSTEM'
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTlUMTU6MDU6MzYiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODk3NzkxMzZ9.ITizqprIzqJfEhgygd8ij1gxzN2Wj5yNiR5U6IxI_c4'
-H 'Content-Type: application/json'
-d '{ "limitTypeId": "ID-1002", "accountId": "ID-1279", "amount": { "amount": "10000", "currencyCode": "EUR" } }'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountLimitId": "ID-1445",
        "limitTypeId": "ID-1002",
        "accountId": "ID-1279",
        "ownerPersonId": null,
        "userPersonId": null,
        "amount": {
            "amount": 10000.00,
            "currencyCode": "EUR"
        },
        "validityRange": {
            "endTime": null,
            "startTime": "2023-07-19T14:05:43.241Z"
        },
        "editable": true
    }
}

Result

A new account limit ID-1445 was created on the current account ID-1279.

Requests without request ID

Duplicated POST without request ID and the same data

We will make another API call without the request ID, but the data from the first call remains the same.

The response shows that the new account with accountId: ID-1293 was created and activated.

Response

Duplicated POST without request ID but changed data

This time, we will make an additional API call without the request ID. However, we will change the currency from GBP to EUR.

The response shows that the new account with accountId: ID-1294 was created and activated.

Response

Summary for not using the request ID

If you make multiple POST calls to the same API endpoint without including the header parameter x-request-id, each subsequent call is treated as unique and will receive a separate response.

The same applies when you use the header parameter x-request-id with different unique values for each POST call.

Create private person

Use case

Here, you can learn how to create a record of a person (record of your customer) in Tuum. In this example, we will showcase the creation of a record of a private person with the following data.

Use case data
API parameters with values

The person record in the example below is created with a minimum data set. In the same way, you can create a person with a richer data set.

Sample API call

To create a record of a person, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons

Learn more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a private person.

When using the example request, please change the x-auth-token to the one you obtained with your authentication API call.

Sample response

Below you find an example response body to the API call above.

Response

Result

A new private person ID-3726 is created and activated. The new person record is available for further actions.

You will need the parameter value of personId (ID-3726 in the current example) from the response to perform further actions with that person record.

Make premature termination

Use case

In this example, we will review how to terminate an active contract prematurely (before the contract reaches its end date). We will use the that was previously created.

Use case data
API parameters with values

Sample API call

To terminate an active contract prematurely, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v2/contracts/{headerId}/versions/{versionId}/prepare-for-termination

See more information about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for changing deposit contract payout details.

Sample response

Below you will find an example response body to the API call above

Response

Result

As a result, the deposit contract is set to the TERMINATING status.

Once the Tuum system completes the internal verification process, the contract will automatically be set to the TERMINATED status. The payout of the principal, or principal with interest, will be made to the servicing or payout account.

Create deposit offer

Use case

In this example we will review the first step of the deposit contract origination flow that starts with creating a deposit offer.

Use case data
API parameters with values

Sample API call

POST /deposit-api.sandbox.tuumplatform.com/api/v2/persons/{personId}/offers

See more information about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a deposit offer.

Sample response

Below you find an example response body to the API call above.

Response

Result

As an outcome, a new deposit offer ID-1718024058 was created.

Update contract header

Use case

In this example, we will review how to modify the tax exemption status and tax residency country assigned to an active deposit contract. These values are stored on the contract header level. After updating the contract header, these parameters will apply to all versions of the deposit contract.

Use case data
API parameters

Sample API call

To update the contract header, make the following API call. deposit-api.sandbox.tuumplatform.com/ api/v2/contracts/{headerId}

See more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for changing deposit contract payout details.

Sample response

Below you find an example response body to the API call above.

Response

Result

As a result, the tax residency country was updated and the tax exemption was set to true. The updated settings were applied to all existing deposit contract versions.

Change contract prolongation status

Use case

In this example, we will change the contract prolongation status for an active contract. We will use the that was previously created.

Use case data
API parameters with values

Prolongation types

The prolongationCode parameter can have one of the following values:

  • PRINCIPAL - The deposit contract is extended to a new period with only the initial deposit principal amount. All interest accrued during the term will be paid out to the payout account defined for the deposit.

  • PRINCIPAL_WITH_INTEREST - The deposit contract is extended to a new period with both the initial deposit principal amount and the interest accrued during the previous term. The interest is capitalised, meaning it is added to the initial principal amount, resulting in a new principal amount for the next term period.

Sample API call

To change the deposit contract prolongation details, make the following API call.

deposit-api.sandbox.tuumplatform.com/api/v2/contracts/{headerId}/versions/{versionId}/prolongation-status

See more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for changing deposit contract payout details.

Sample response

Below you find an example response body to the API call above.

Response

Result

As a result, the deposit contract prolongation status was updated.

The contract header is ID-1696407222. See the find deposit contract page for more details.

...v2/contracts/ID-1696407222/...

The active contract version is ID-1696407267. See the find deposit contract page for more details.

...versions/ID-1696407267/payment-instructions

We will change prolongation status to principal with interest. With this setting when the deposit contract is automatically prolonged, the interest is moved to principal.

"prolongationCode": "PRINCIPAL"
{
  "prolongationCode": "PRINCIPAL"
}
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v2/contracts/ID-1696407222/versions/ID-1696407267/prolongation-status' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMDhUMTY6NDE6MDAiLCJleHAiOjE3Mjg0MDU2NjAsInJvbGVzIjpbIkFETUlOIl19.Dgxh4-g9be0P0mosxeihMtOol3XBkde3T84SYPHG3W4' \
--header 'Content-Type: application/json' \
--data '{
  "prolongationCode": "PRINCIPAL"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "headerId": "ID-1696407222",
        "personId": "ID-2660",
        "accountId": "ID-1012",
        "applicationId": null,
        "offerId": "ID-16964073051",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "contractNumber": "PR-EE-1000",
        "countryCode": "EE",
        "channelCode": "BACKOFFICE",
        "tenantCode": "MB",
        "depositClassCode": "PREMIUM_CUSTOMER",
        "headerActivationDate": "2026-04-04",
        "headerClosingDate": null,
        "activeVersion": {
            "versionId": "ID-1718024026",
            "headerId": "ID-1718024016",
            "versionNumber": 1,
            "statusCode": "ACTIVE",
            "preparationDate": "2026-04-04",
            "signingDate": null,
            "activationDate": "2026-04-04",
            "endDate": "2026-07-04",
            "closingDate": null,
            "period": 3,
            "periodTypeCode": "MONTH",
            "interestRate": 0.25,
            "interestPaymentFrequencyCode": "MONTH",
            "prolongCode": "PRINCIPAL",
            "countryCode": "EE",
            "cancelReasonCode": null,
            "lastCreditReceiveDate": "2026-04-06",
            "lastSigningDate": null,
            "changeTypeCode": "NEW_CONTRACT",
            "components": [
                {
                    "componentId": "ID-1718024140",
                    "versionId": "ID-1718024026",
                    "componentTypeCode": "PRI",
                    "initialMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": null,
                    "rateBaseCode": null,
                    "rate": null,
                    "accruedUntil": null,
                    "paymentDay": 4,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": null
                },
                {
                    "componentId": "ID-1718024141",
                    "versionId": "ID-1718024026",
                    "componentTypeCode": "INT",
                    "initialMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 0.28,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": {
                        "daysInMonth": "30",
                        "daysInYear": 360
                    },
                    "rateBaseCode": null,
                    "rate": 0.25,
                    "accruedUntil": "2026-04-12",
                    "paymentDay": 4,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": "2026-04-12"
                }
            ],
            "totalInterestMoney": {
                "amount": 3.13,
                "currencyCode": "EUR"
            },
            "totalInterestAccruedMoney": {
                "amount": 0.28,
                "currencyCode": "EUR"
            },
            "channelCode": "BACKOFFICE",
            "tenantCode": "MB",
            "terminationType": "WITHOUT_INTEREST",
            "nextPayoutDate": "2026-05-04",
            "payoutDetails": {
                "name": "Test Account",
                "accountNumber": {
                    "value": "EE111236525217358748",
                    "type": "IBAN"
                },
                "financialInstitutionId": null,
                "referenceNumber": null,
                "countryCode": null
            }
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false,
        "rateBaseCode": null
    }
}
deposit contract
change deposit contract prolongation status
"description": "Premium deposit"
"depositGroupCode": "TIME_DEPOSIT"
"depositTypeCode": "PREMIUM"
"tenantCode": "MB"
"countryCode": "EE",
"currencyCode": "EUR"
"contractNumberPrefix": "PR-EE-"
"offerValidDays": 1,
"daysToWaitCredit": 2
"terminationType": "WITHOUT_INTEREST",
"autoProlongationAllowed": true
 "interestCalculationMethod": 
{ 
    "daysInMonth": "30", 
    "daysInYear": 360
  },
  "interestPeriodSelector": "FIXED",
  "interests": [
    {
      "amountRange": { 
        "startValue": 5000,
        "endValue": 10001
      },
      "interestRate": 0.25,
      "minInterestRate": 0.21,
      "maxInterestRate": 0.75,
      "period": 3,
      "periodTypeCode": "MONTH",
      "paymentFrequencyTypeCode": "END",
      "validityRange": {
        "startDate": "2027-01-09",
      }
    }
  ],
 "depositClassCode": "PREMIUM_CUSTOMER"
"personTypeCode": "P"
deposit class code
"accountTypeCode": "INTERNAL"
"personName": "Trevor Harry Tuum"
"customerGroupCode": "INTERNAL"
"priceListTypeCode": "INTERNAL"
"residencyCountryCode": "GB"
"currencyCode": "EUR"
accountId": "ID-1282
"statusCode": "ACTIVE"
"iban": "XX54XXXX99999000000000000001257"
"bic": "ICECLOUDXXX"
"accountTypeCode": "CURRENCY"
 "accountTypeSetupCode": "EXTERNAL_VIRTUAL",
  "serviceProviderCode": "LHV",
"personName": "Trevor Harry Tuum"
"customerGroupCode": "GROUP_A"
"priceListTypeCode": "STANDARD"
"currencyCode": "EUR"
"accountInterestRate": 10
"personTypeCode": "P"
"description": "Premium deposit Germany"
 "countryCode": "DE"
"contractNumberPrefix": "PR-DE-"
"terminationType": "WITH_TOTAL_INTEREST"
 "period": 12
"personTypeCode": "L"
"endDate": "2031-02-08"
"limitTypeId": "ID-1002"n
"accountId": "ID-1279"
"amount": {
    "amount": "10000",
    "currencyCode": "EUR"
  }
previous call
{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "EUR"
}
curl 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3419/accounts' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDgtMDRUMTI6Mzk6MTgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTExNTI3NTh9.L6hz-vAyOWwTZ5z5e2aBpppxmwdhq7JqPVbOoC4n7Ak' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "EUR"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1294",
        "personId": "ID-3419",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-08-04",
        "accountName": null,
        "personName": "Eleanor Rigby",
        "statusCode": "ACTIVE",
        "iban": "XX61XXXX99999000000000000001325",
        "bic": "ICECLOUDXXX",
        "defaultCurrencyCode": "EUR",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1223",
                "accountId": "ID-1294",
                "currencyCode": "EUR",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "EUR",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}
curl 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3419/accounts' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDgtMDRUMTI6Mzk6MTgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTExNTI3NTh9.L6hz-vAyOWwTZ5z5e2aBpppxmwdhq7JqPVbOoC4n7Ak' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}'
{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1293",
        "personId": "ID-3419",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-08-04",
        "accountName": null,
        "personName": "Eleanor Rigby",
        "statusCode": "ACTIVE",
        "iban": "GB16XXXX04030000001024",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1222",
                "accountId": "ID-1293",
                "currencyCode": "GBP",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "GBP",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00001024",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1148",
                "accountId": "ID-1293",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}

Private person

"personTypeCode": "P"

The person's name is Trevor Tuum

"surname": "Tuum",
"givenName": "Trevor"

The person's United Kingdom identification number is QQ123456B

"identificationNumbers": [
        {
            "idNumber": "QQ123456B",
            "idCountryCode": "GB",
            "primary": true
        }
    ]

The person's registration address is United Kingdom 85 Park end St Broomhill NE65 0YW

"addresses": [
        {
            "addressTypeCode": "R",
            "countryCode": "GB",
            "cityCounty": "Broomhill",
            "street1": "85 Park End St",
            "zip": "NE65 0YW"
        }
    ]
curl --location 'https://person-api.dev.tuum.xyz/api/v2/persons' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjUtMDEtMTRUMTU6MDA6MzQiLCJleHAiOjE3MzY4NjY4MzQsInJvbGVzIjpbIkFETUlOIl19.Y80MTpnA-h5xQ-8W194W0h-I8SbhgOJoZApPbREBB-0' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data '{
    "personTypeCode": "P",
    "surname": "Tuum",
    "givenName": "Trevor",
    "identificationNumbers": [
        {
            "idNumber": "QQ123456B",
            "idCountryCode": "GB",
            "primary": true
        }
    ],
    "addresses": [
        {
            "addressTypeCode": "R",
            "countryCode": "GB",
            "cityCounty": "Broomhill",
            "street1": "85 Park End St",
            "zip": "NE65 0YW"
        }
    ]
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personId": "ID-3726",
        "statusCode": "ACTIVE",
        "source": null,
        "tenantCode": "MB",
        "forgotten": false,
        "legalForm": null,
        "creationDate": "2025-01-14",
        "personalInfo": {
            "personTypeCode": "P",
            "givenName": "Trevor",
            "middleName": null,
            "surname": "Tuum",
            "name": null,
            "email": null,
            "phoneNumber": null,
            "phoneCountryCode": null,
            "residencyCountryCode": null,
            "sex": null,
            "nationality": null,
            "dependantPersons": null,
            "legalForm": null
        },
        "additionalInfo": {
            "birthDate": null,
            "countryOfBirth": null,
            "placeOfBirth": null,
            "language": null,
            "educationCode": null,
            "maritalStatusCode": null,
            "dependantPersons": null,
            "taxResidencyCountry": null,
            "usResident": false,
            "pep": false,
            "customerTypeCode": null,
            "statusCodeReason": null,
            "deathDate": null,
            "liquidationDate": null,
            "inactivationDate": null,
            "tradingName": null,
            "registrationDate": null,
            "webAddress": null,
            "pepExplanation": null,
            "businessAreaCodes": [],
            "businessModelDescription": null,
            "intraOrgCode": null,
            "counterpartySectorCode": null
        },
        "work": {
            "activityCode": null,
            "businessAreaCodes": [],
            "employmentTimeCode": null,
            "fixedEmploymentLength": null
        },
        "home": null,
        "addresses": [
            {
                "addressId": "ID-4870",
                "personId": "ID-3726",
                "addressTypeCode": "R",
                "street1": "85 Park End St",
                "street2": null,
                "cityCounty": "Broomhill",
                "stateRegion": null,
                "zip": "NE65 0YW",
                "countryCode": "GB",
                "moveInDate": null,
                "validityRange": {
                    "endTime": null,
                    "startTime": "2025-01-14T14:21:58.145Z"
                }
            }
        ],
        "documents": [],
        "relationships": [],
        "additionalContacts": [],
        "personGroupCodes": [],
        "identificationNumbers": [
            {
                "idNumberId": "ID-3715",
                "personId": "ID-3726",
                "idNumber": "QQ123456B",
                "idCountryCode": "GB",
                "validityRange": {
                    "endTime": null,
                    "startTime": "2025-01-14T14:21:58.291Z"
                },
                "primary": true
            }
        ],
        "taxNumbers": [],
        "accessRestricted": false,
        "fullName": "Trevor Tuum"
    }
}
create person
{
    "personTypeCode": "P",
    "surname": "Tuum",
    "givenName": "Trevor",
    "identificationNumbers": [
        {
            "idNumber": "QQ123456B",
            "idCountryCode": "GB",
            "primary": true
        }
    ],
    "addresses": [
        {
            "addressTypeCode": "R",
            "countryCode": "GB",
            "cityCounty": "Broomhill",
            "street1": "85 Park End St",
            "zip": "NE65 0YW"
        }
    ]
}

The contract header is ID-1696407222. See the find deposit contract page for more details.

...contracts/ID-1696407222/...

The active contract version is ID-1696407267. See the find deposit contract page for more details.

.../versions/ID-1696407267/...

The deposit contract is terminated without any of the interest it has accrued during the term period.

"terminationType": "WITHOUT_INTEREST"
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "headerId": "ID-1696407222",
        "personId": "ID-2660",
        "accountId": "ID-1012",
        "applicationId": null,
        "offerId": "ID-1718024051",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "contractNumber": "PR-EE-1000",
        "countryCode": "EE",
        "channelCode": "BACKOFFICE",
        "tenantCode": "MB",
        "depositClassCode": "PREMIUM_CUSTOMER",
        "headerActivationDate": "2026-04-04",
        "headerClosingDate": null,
        "activeVersion": {
            "versionId": "ID-1696407267",
            "headerId": "ID-1696407222",
            "versionNumber": 1,
            "statusCode": "TERMINATING",
            "preparationDate": "2026-04-04",
            "signingDate": null,
            "activationDate": "2026-04-04",
            "endDate": "2026-07-04",
            "closingDate": null,
            "period": 3,
            "periodTypeCode": "MONTH",
            "interestRate": 0.25,
            "interestPaymentFrequencyCode": "MONTH",
            "prolongCode": "PRINCIPAL",
            "countryCode": "EE",
            "cancelReasonCode": null,
            "lastCreditReceiveDate": "2026-04-06",
            "lastSigningDate": null,
            "changeTypeCode": "NEW_CONTRACT",
            "components": [
                {
                    "componentId": "ID-1718024140",
                    "versionId": "ID-1718024026",
                    "componentTypeCode": "PRI",
                    "initialMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 4995.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": null,
                    "rateBaseCode": null,
                    "rate": null,
                    "accruedUntil": null,
                    "paymentDay": 4,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": null
                },
                {
                    "componentId": "ID-1718024141",
                    "versionId": "ID-1718024026",
                    "componentTypeCode": "INT",
                    "initialMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": {
                        "daysInMonth": "30",
                        "daysInYear": 360
                    },
                    "rateBaseCode": null,
                    "rate": 0.25,
                    "accruedUntil": "2026-06-04",
                    "paymentDay": 4,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": "2026-06-04"
                }
            ],
            "totalInterestMoney": {
                "amount": 3.13,
                "currencyCode": "EUR"
            },
            "totalInterestAccruedMoney": {
                "amount": 0.25,
                "currencyCode": "EUR"
            },
            "channelCode": "BACKOFFICE",
            "tenantCode": "MB",
            "terminationType": "WITHOUT_INTEREST",
            "nextPayoutDate": "2026-07-04",
            "payoutDetails": {
                "name": "Test Account",
                "accountNumber": {
                    "value": "EE111236525217358748",
                    "type": "IBAN"
                },
                "financialInstitutionId": null,
                "referenceNumber": null,
                "countryCode": null
            }
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false,
        "rateBaseCode": null
    }
}
deposit contract
prepare deposit contract for termination
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v1/contracts/ID-1696407222/versions/ID-1696407267/prepare-for-termination' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDMtMTVUMTg6MzM6MzYiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE3MTA1Mjc2MTZ9.v5803cMEIrcXdTAnbWPEzODtlb0_YKspKRosMtjNyRg' \
--header 'Content-Type: application/json' \
--data '{
  "terminationType": "WITHOUT_INTEREST",
  "comment": "Closing contract"
}'
{
  "terminationType": "WITHOUT_INTEREST",
  "comment": "Closing contract"
}

We will create a deposit offer for a test person whose account ID is ID-2660.

...persons/ID-2660/offers

The deposit offer is opened for a PREMIUM deposit product that was created earlier.

"depositTypeCode": "PREMIUM"

The account ID that is tied to the deposit. Note: see the create account article to learn more about the account creation.

"accountId": "ID-1012"

The deposit is offered with the 3 month duration. The interest will be payed at the end of the contract period. The deposit country is Estonia.

"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE"

The deposit amount is 5000 EUR.

"initialMoney": {
    "amount": 5000,
    "currencyCode": "EUR"

Upon maturity of the deposit contract, the deposit API transfers the payout to the designated payout account. If payout details are not provided, the payout is automatically directed to the servicing account.

"payoutDetails": {
    "name": "Test user",
    "accountNumber": {
      "value": "EE961221248796768756",
      "type": "IBAN"
    }
    }

The default deposit interest rate is set at 0.35.

Note: If the deposit product has a defined minimum and maximum interest rate range, you can set a custom interest rate within this range to override the default rate. If no interest range is defined for the deposit product, the default interest rate of 0.35 is applied.

"interestRate": 0.35
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v2/persons/ID-1015/offers' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMjlUMjA6MTI6MzEiLCJleHAiOjE3MzAyMzI3NTEsInJvbGVzIjpbIkFETUlOIl19.ViX6Uwnv1n_h2cBxprFUJRxlXJGce0_A1F5o-HA04oE' \
--header 'Content-Type: application/json' \
--data '{
    "depositTypeCode": "PREMIUM",
    "accountId": "ID-1012",
    "period": 3,
    "periodTypeCode": "MONTH",
    "interestPaymentFreqCode": "END",
    "initialMoney": {
        "amount": 5000,
        "currencyCode": "EUR"
    },
    "countryCode": "EE",
    "payoutDetails": {
    "name": "Test user",
    "accountNumber": {
      "value": "EE961221248796768756",
      "type": "IBAN"
    }
    },
    "taxResidencyCountryCode": "EE",
    "interestRate": 0.35
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "offerId": "ID-1718024058",
        "personId": "ID-2660",
        "applicationId": null,
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "terminationType": "WITHOUT_INTEREST",
        "statusCode": "PREPARING",
        "reasonCode": null,
        "accountId": "ID-1012",
        "interestRate": 0.35,
        "period": 3,
        "periodTypeCode": "MONTH",
        "endDate": null,
        "initialMoney": {
            "amount": 5000.00,
            "currencyCode": "EUR"
        },
        "interestPaymentFreqCode": "END",
        "prolongationCode": null,
        "countryCode": "EE",
        "maturityDate": "2027-04-21",
        "returnAmount": {
            "amount": 5004.38,
            "currencyCode": "EUR"
        },
        "postingDate": "2027-01-21",
        "lastValidDate": "2027-01-22",
        "channelCode": "SYSTEM",
        "tenantCode": "MB",
        "contractHeaderId": null,
        "contractNumber": null,
        "depositClassCode": "PREMIUM_CUSTOMER",
        "payoutDetails": {
            "name": "Test user",
            "accountNumber": {
                "value": "EE961221248796768756",
                "type": "IBAN"
            },
            "financialInstitutionId": null,
            "referenceNumber": null,
            "countryCode": null
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false,
        "marginRate": null
    }
}
create deposit offer
{
    "depositTypeCode": "PREMIUM",
    "accountId": "ID-1012",
    "period": 3,
    "periodTypeCode": "MONTH",
    "interestPaymentFreqCode": "END",
    "initialMoney": {
        "amount": 5000,
        "currencyCode": "EUR"
    },
    "countryCode": "EE",
    "payoutDetails": {
    "name": "Test user",
    "accountNumber": {
      "value": "EE961221248796768756",
      "type": "IBAN"
    }
    },
    "taxResidencyCountryCode": "EE",
    "interestRate": 0.35
}

The contract header is ID-1696407222. See the find deposit contract page for more details.

...v2/contracts/ID-1696407222

We will change the tax residency country from Estonia to Germany.

"taxResidencyCountryCode": "DE"

We will set the tax exemption to true.

"taxExempt": "true"
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "headerId": "ID-1696407222",
        "personId": "ID-2660",
        "accountId": "ID-1012",
        "applicationId": "ID-1696407202",
        "offerId": "ID-1718024054",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "contractNumber": "PR-EE-1001",
        "countryCode": "EE",
        "channelCode": "BACKOFFICE",
        "tenantCode": "MB",
        "depositClassCode": "PREMIUM_CUSTOMER",
        "headerActivationDate": "2026-07-08",
        "headerClosingDate": null,
        "activeVersion": {
            "versionId": "ID-1718024033",
            "headerId": "ID-1718024017",
            "versionNumber": 1,
            "statusCode": "ACTIVE",
            "preparationDate": "2026-07-08",
            "signingDate": null,
            "activationDate": "2026-07-08",
            "endDate": "2026-10-08",
            "closingDate": null,
            "period": 3,
            "periodTypeCode": "MONTH",
            "interestRate": 0.25,
            "interestPaymentFrequencyCode": "MONTH",
            "prolongCode": null,
            "countryCode": "EE",
            "cancelReasonCode": null,
            "lastCreditReceiveDate": "2026-07-10",
            "lastSigningDate": null,
            "changeTypeCode": "NEW_CONTRACT",
            "components": [
                {
                    "componentId": "ID-1718024154",
                    "versionId": "ID-1718024033",
                    "componentTypeCode": "PRI",
                    "initialMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": null,
                    "rateBaseCode": null,
                    "rate": null,
                    "accruedUntil": null,
                    "paymentDay": 8,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": null
                },
                {
                    "componentId": "ID-1718024155",
                    "versionId": "ID-1718024033",
                    "componentTypeCode": "INT",
                    "initialMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": {
                        "daysInMonth": "30",
                        "daysInYear": 360
                    },
                    "rateBaseCode": null,
                    "rate": 0.25,
                    "accruedUntil": null,
                    "paymentDay": 8,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": "2026-07-08"
                }
            ],
            "totalInterestMoney": {
                "amount": 3.13,
                "currencyCode": "EUR"
            },
            "totalInterestAccruedMoney": {
                "amount": 0.00,
                "currencyCode": "EUR"
            },
            "channelCode": "BACKOFFICE",
            "tenantCode": "MB",
            "terminationType": "WITHOUT_INTEREST",
            "nextPayoutDate": "2026-08-08",
            "payoutDetails": {
                "name": "Tech",
                "accountNumber": {
                    "value": "EE201225862567235311",
                    "type": "IBAN"
                },
                "financialInstitutionId": null,
                "referenceNumber": null,
                "countryCode": null
            }
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "DE",
        "taxExempt": true,
        "rateBaseCode": null
    }
}
update contract header
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v2/contracts/ID-1696407222' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMjFUMTQ6NDg6MTciLCJleHAiOjE3Mjk1MjIwOTcsInJvbGVzIjpbIkFETUlOIl19.pM0GzsEXo-IsdVy5X2l9FcORAul0_XaH_SEU_HNugjI' \
--header 'Content-Type: application/json' \
--data '{
  "taxResidencyCountryCode": "DE",
  "taxExempt": "true"
}'
{
  "taxResidencyCountryCode": "DE",
  "taxExempt": "true"
}

Account transactions report parameters

On this page, you will find a list of parameters included in the account transactions report. The report is available in both CSV and JSON formats, with a similar parameter structure. The key difference is that in the JSON format, the following parameters are represented as nested objects:

  • transactionAmount:

    • amount,

    • currencyCode

  • initialBalanceAmount:

    • amount,

    • currencyCode

  • source:

    • sourceName,

    • sourceRef

  • counterparty:

    • name,

    • accountNumber,

    • accountNumberSubtype,

    • accountNumberCountryCode,

    • financialInstitutionId

Parmeter name
Type
Description

transactionId

Number, Text

Transaction ID number.

Example: ID-275388

groupId

Number

Transaction group ID.

Example: 290379

postingDate

Date

Posting date is the current Tuum banking date when the account transaction was posted to the Account API.

Date format: YYYY-MM-DD.

Example: 2029-04-01

accountId

Number, Text

The account number from where the account transactions are extracted.

Example: ID-12333

transactionTypeCode

Text, Number

The transaction type code.

Example: ACC_ADM_FE

transactionSubtypeCode

Text

Transaction subtype.

directionCode

Text

Transaction direction.

Example: OUT

initialBalanceAmount

Number

Initial balance amount.

Example: 3989.97

transactionAmount

Number

Transaction amount.

Example: 12.4

currencyCode

Text

Transaction currency.

Example: EUR

counterpartyName

Text

Transaction counterparty name.

Example: Simon Parker

counterpartyAccountNumber

Number, Text

Counterparty account number.

Example: EE871275295834652820

counterpartyAccountNumberTypeCode

Text

Counterparty account number type.

Example: IBAN

counterpartyAccountNumberSubtype

Text

Counterparty account number subtype.

counterpartyAccountNumberCountryCode

Text

Counterparty account number country code.

Example: EE

counterpartyFinancialInstitutionId

Number, Text

Counterparty financial institution ID.

Example: PARXEE22XXX

counterpartyFinancialInstitutionIdTypeCode

Text

Counterparty financial institution type.

Example: BIC

details

Text, Number

Transaction details.

Example: Account maintenance fee

metaInfo

Text, Number

Transaction meta info.

Example: {"paymentResidencyCountryCode":"LV","intrabankPaymentSource":null,"paymentMetaInfo":"[{"typeCode":"SELECTED_SCHEME","value":"SEPA_REGULAR"}]"}

merchantInfo

Text, Number

Merchant information.

endToEndId

Number

End-to-end ID.

Example: 2222223

transactionDTime

Date, Time

Transaction date and time.

Format: YYYY-MM-DDThh:mm:ss.sssZ

Example: 2025-02-28T11:23:58.16Z

paymentServiceProviderCode

Text

Payment service provider code.

Example: SEPA

labels

Text

Transaction labels.

Example: SEPA_REGULAR

referenceNumber

Number, Text

Transaction reference number.

contractSourceName

Text

Contract source name.

Example: LOAN.CONTRACT_HEADER

contractSourceRef

Number, Text

Contract source reference.

Example: ID-1718026338

contractRef

Number, Text

Contract reference.

valueDate

Date

Value date is the date on which operation actually carries out or is supposed to carry out in the account. Must be the same or earlier than the posting date.

Date format: YYYY-MM-DD.

Example: 2029-04-01

isReversed

Text

Defines if the transaction is reversed.

Example: false

reversedTransactionId

Number, Text

ID number of the reversed transaction.

filingCode

Number

Technical code assigned to the transaction record.

Example: 2029040100275388

reportDateType

Text

Account transaction report date type.

Example: POSTING_DATE

domainCode

Text

Domain code.

Example: PMNT

familyCode

Text

Transaction family code.

Example: RCDT

subfamilyCode

Text

Transaction subfamily code.

Example: FEES

sourceName

Text, Number

Transaction source name.

Example: ACCOUNT.ACCOUNT_PERIODIC_FEE

sourceRef

Text, Number

Transaction source reference.

Example: ID-78253

transactionGroupCode

Text

Transaction group code.

Example: FEE

virtualAccountId

Number, Text

Virtual account ID.

uniqueIdentifier

Number, Text

Transaction unique identifier.

Example: 1f78c038-96a6-4882-925e-ce8cd2668220

...accounts/saving-accounts/ID-4302/savings/ID-1491
"savingName": "Emergency savings"
"savingEndDate": "2045-12-31"
"savingAmount": "1000"
"savingOrder": {
    "savingDay": 30,
    "amount": "10",
    "paymentFrequencyCode": "MONTHLY"
  }

Create legal person

Use case

Here you can learn how to create a legal person - record of your customer's business organisation. In this example, we will use the following data:

Use case data
API parameters with values

Legal person

The company name is New company Ltd

The company registration address: Carnaby street 10, London, Great Britain, 13347

The company registration number is 111111

The private person is created with a minimal set of data. Find more information

Sample API call

To create a legal person, make the following API call.

https://person-api.sandbox.tuumplatform.com/api/v2/persons

Learn more about the create person endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating a legal person.

{
  "personTypeCode": "L",
  "name": "New company Ltd",
  "addresses": [
    {
      "addressTypeCode": "R",
      "street1": "Carnaby 10",
      "cityCounty": "London",
      "zip": "13347",
      "countryCode": "GB"
    }
  ],
  "identificationNumber": {
    "idNumber": "111111",
    "idCountryCode": "GB"
    }
 }
curl 'https://person-api.sandbox.tuumplatform.com/api/v2/persons' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTNUMjA6MDM6MDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODY2ODY1ODB9.bF0nEpm7Z1LgW08F9Fri-q1zAyDH5PsFwqhJCygdODQ' \
-H 'Content-Type: application/json' \
-d '{
  "personTypeCode": "L",
  "name": "New company Ltd",
  "addresses": [
    {
      "addressTypeCode": "R",
      "street1": "Carnaby 10",
      "cityCounty": "London",
      "zip": "13347",
      "countryCode": "GB"
    }
  ],
  "identificationNumber": {
    "idNumber": "111111",
    "idCountryCode": "GB"
    }
 }'

Sample response

Below you will find an example response to the API call from above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personId": "ID-3397",
        "statusCode": "ACTIVE",
        "source": null,
        "tenantCode": "MB",
        "forgotten": false,
        "creationDate": "2023-06-13",
        "personalInfo": {
            "personTypeCode": "L",
            "givenName": null,
            "middleName": null,
            "surname": null,
            "name": "New company Ltd",
            "email": null,
            "phoneNumber": null,
            "phoneCountryCode": null,
            "residencyCountryCode": null,
            "sex": null,
            "nationality": null,
            "dependantPersons": null,
            "legalForm": null,
            "identificationNumber": {
                "idNumberId": "ID-1773",
                "personId": "ID-3397",
                "idNumber": "111111",
                "idCountryCode": "GB",
                "vatNumber": null,
                "taxNumber": null,
                "validityRange": {
                    "startTime": "2023-06-13T19:06:34.159654Z",
                    "endTime": null
                }
            }
        },
        "additionalInfo": {
            "birthDate": null,
            "countryOfBirth": null,
            "placeOfBirth": null,
            "language": null,
            "educationCode": null,
            "maritalStatusCode": null,
            "dependantPersons": null,
            "taxResidencyCountry": null,
            "usResident": false,
            "pep": false,
            "customerTypeCode": null,
            "statusCodeReason": null,
            "deathDate": null,
            "liquidationDate": null,
            "inactivationDate": null,
            "tradingName": null,
            "registrationDate": null,
            "webAddress": null,
            "pepExplanation": null,
            "businessModelDescription": null,
            "intraOrgCode": null,
            "counterpartySectorCode": null
        },
        "work": null,
        "home": null,
        "addresses": [
            {
                "addressId": "ID-3057",
                "personId": "ID-3397",
                "addressTypeCode": "R",
                "street1": "Carnaby 10",
                "street2": null,
                "cityCounty": "London",
                "stateRegion": null,
                "zip": "13347",
                "countryCode": "GB",
                "moveInDate": null,
                "validityRange": {
                    "startTime": "2023-06-13T19:06:34.057318Z",
                    "endTime": null
                }
            }
        ],
        "documents": [],
        "relationships": [],
        "additionalContacts": [],
        "personGroupCodes": [],
        "identificationNumbers": [
            {
                "idNumberId": "ID-1773",
                "personId": "ID-3397",
                "idNumber": "111111",
                "idCountryCode": "GB",
                "validityRange": {
                    "startTime": "2023-06-13T19:06:34.159654Z",
                    "endTime": null
                },
                "primary": true
            }
        ],
        "taxNumbers": [],
        "fullName": "New company Ltd"
    }
}

Result

A new legal person ID-3397 is created and activated. The legal person record is now available for the further actions.

Create virtual account

Use case

Here we will review how to set up a virtual account when Tuum is the service provider:

Use case data
API parameters with values

Virtual account type.

The master account is a currency account with the ID-1279.

The name of the account holder is Trevor Harry Tuum.

Trevor is assigned to the GROUP_A customer group.

The standard price list is assigned to the account.

Trevor's residency country is the Great Britain.

The virtual account currency is GBP.

The account is opened with standard setup scheme. And account numbers are generated and assigned by Tuum.

Tuum is the service provider.

Virtual account setup requires reference to the master account id.

Sample API call

To create a virtual account, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/account

See more about the create account endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account.

{
  "accountTypeCode": "VIRTUAL",
  "masterAccountId": "ID-1279",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "currencyCode": "GBP",
  "accountTypeSetupCode": "STANDARD",
  "serviceProviderCode": "TUUM"
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3392/accounts' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMjZUMTk6MDU6MDgiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODc4MDYzMDh9.iySF4SAjJzd6j5-KGeiZ-JYP3fIAnLZUkUjyhiTTsbM' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "VIRTUAL",
  "masterAccountId": "ID-1279",
  "personName": "Trevor Harry Tuum",
  "residencyCountryCode": "GB",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "currencyCode": "GBP",
  "accountTypeSetupCode": "STANDARD",
  "serviceProviderCode": "TUUM"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1283",
        "personId": "ID-3392",
        "accountTypeCode": "VIRTUAL",
        "activationDate": "2023-06-26",
        "accountName": null,
        "personName": "Trevor Harry Tuum",
        "statusCode": "ACTIVE",
        "iban": "GB05XXXX04030100000462",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [],
        "masterAccountId": "ID-1279",
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00000462",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040301",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1144",
                "accountId": "ID-1283",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}

Result

The outcome of the API call is the complete set of account data. Including the parameters generated by the Tuum system:

Parameter and value
Explanation

A unique identifier is assigned to the new account.

The new account is created and activated.

The IBAN assigned to the new account.

The BIC assigned to the new account.

Create currency account

Use case

In this example we will review how to open a currency account with the minimal set of date.

Use case data
API parameters with values

Currency account type

The name of the account holder is Trevor Harry Tuum

Trevor is assigned to the GROUP_A customer group.

The standard price list is assigned to the account

Trevor's residency country is the Great Britain

The account currency code is GBP

Sample API call

To create an account for a person, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/accounts

See more about the create account endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account.

{
  "accountTypeCode": "CURRENCY",
  "personName": "Trevor Harry Tuum",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3392/accounts' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTlUMTg6NDI6MjIiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODcyMDAxNDJ9.ug4KhUwVSEuRx0VcbBUMc2Emf_RJw-nde3aHdKFbHkY' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "personName": "Trevor Harry Tuum",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1279",
        "personId": "ID-3392",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-06-19",
        "accountName": null,
        "personName": "Trevor Harry Tuum",
        "statusCode": "ACTIVE",
        "iban": "GB72XXXX04030000000986",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1206",
                "accountId": "ID-1279",
                "currencyCode": "GBP",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "GBP",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00000986",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1143",
                "accountId": "ID-1279",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}

Result

The outcome of the API call is the complete set of account data. Including the parameters generated by the Tuum system:

Parameter and value
Explanation

A unique identifier is assigned to the new account.

The new account is created and activated.

The IBAN assigned to the new account.

The BIC assigned to the new account.

Close person representation

Use case

In the Tuum environment, to remove the representative from a legal or another private person, you can close the representation rights. Once the representation is closed, the representative loses their rights.

Use case data
API parameters with values

Removing the representation rights with the personRelationshipId ID-1003 from the parentPerson (legal person with the personId ID-3394).

.../persons/ID-3394/relations/closing/ID-1003

To remove the representation rights, you can use the personId of the parent (legal person) or representative (dependant private person).

Sample API call

To close the person representation, make the following call.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/{personId}/relations/closing/{personRelationshipId}

Learn more about the close person representation endpoint in the Tuum developer portal.

Sample request

Below is an example request of the API call to close the person representation rights.

No request body.

curl -L -X POST 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/relations/closing/ID-1002' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTlUMTY6MjA6MDIiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODcxOTE2MDJ9.VDHNExXmgRmLvyx_ChTO2iOrwl7WaLRaTNe_T_A47rk' \
-d ''

Sample response

Below you will find an example response to the API call from above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personRelationshipId": "ID-1003",
        "parentPersonId": "ID-3394",
        "personId": "ID-3392",
        "relationTypeCode": "REPRESENTATIVE",
        "statusCode": "CLOSING",
        "role": null,
        "percentageOfShares": null,
        "percentageOfSignature": null,
        "beneficiary": true,
        "representingRange": {
            "startDate": "2023-06-06",
            "endDate": "2023-06-13"
        },
        "additionalData": null,
        "validityRange": {
            "startTime": "2023-06-14T21:32:09.684826Z",
            "endTime": "2023-06-14T21:38:29.637157Z"
        },
        "parentIdNumber": null,
        "personIdNumber": null,
        "parent": {
            "personId": "ID-3394",
            "personTypeCode": "L",
            "statusCode": "ACTIVE",
            "statusCodeReason": null,
            "name": "New company Ltd",
            "givenName": null,
            "middleName": null,
            "surname": null,
            "birthDate": null,
            "creationDate": "2023-06-13",
            "deathDate": null,
            "liquidationDate": null,
            "inactivationDate": null,
            "registrationDate": null,
            "sex": null,
            "email": null,
            "customerTypeCode": null,
            "nationality": null,
            "taxResidencyCountry": null,
            "placeOfBirth": null,
            "countryOfBirth": null,
            "phoneCountryCode": null,
            "phoneNumber": null,
            "idNumber": "120045",
            "idCountryCode": "GB",
            "residencyCountryCode": null,
            "language": null,
            "educationCode": null,
            "activityCode": null,
            "housingTypeCode": null,
            "buildingTypeCode": null,
            "moveInDate": null,
            "maritalStatusCode": null,
            "dependantPersons": null,
            "employmentTimeCode": null,
            "fixedEmploymentLength": null,
            "businessAreaCode": null,
            "intraOrgCode": null,
            "tradingName": null,
            "webAddress": null,
            "pepExplanation": null,
            "legalForm": null,
            "businessModelDescription": null,
            "counterpartySectorCode": null,
            "forgotten": null,
            "usResident": false,
            "pep": false,
            "source": null,
            "tenantCode": "MB",
            "fullName": "New company Ltd"
        },
        "person": {
            "personId": "ID-3392",
            "personTypeCode": "P",
            "statusCode": "ACTIVE",
            "statusCodeReason": null,
            "name": null,
            "givenName": "Trevor",
            "middleName": "Harry",
            "surname": "Tuum",
            "birthDate": null,
            "creationDate": "2023-06-01",
            "deathDate": null,
            "liquidationDate": null,
            "inactivationDate": null,
            "registrationDate": null,
            "sex": null,
            "email": null,
            "customerTypeCode": null,
            "nationality": null,
            "taxResidencyCountry": null,
            "placeOfBirth": "Alabama",
            "countryOfBirth": null,
            "phoneCountryCode": null,
            "phoneNumber": null,
            "idNumber": "DQ654327C",
            "idCountryCode": "GB",
            "residencyCountryCode": null,
            "language": null,
            "educationCode": null,
            "activityCode": null,
            "housingTypeCode": null,
            "buildingTypeCode": null,
            "moveInDate": null,
            "maritalStatusCode": null,
            "dependantPersons": null,
            "employmentTimeCode": null,
            "fixedEmploymentLength": null,
            "businessAreaCode": null,
            "intraOrgCode": null,
            "tradingName": null,
            "webAddress": null,
            "pepExplanation": null,
            "legalForm": null,
            "businessModelDescription": null,
            "counterpartySectorCode": null,
            "forgotten": null,
            "usResident": false,
            "pep": false,
            "source": null,
            "tenantCode": "MB",
            "fullName": "Trevor Tuum"
        }
    }
}

Result

The person representation is set to the CLOSING status.

Initially, the representation is set to the CLOSING status. The Tuum system automatically updates the representation to the CLOSED status.

Change payout details

Use case

In this example, we will review how to change the payout details for an active deposit contract. We will use the deposit contract that was previously created.

Use case data
API parameters

The contract header is ID-1696407222. See the for more details.

api/v1/contracts/ID-1696407222...

The active contract version is ID-1696407267. See the for more details.

...versions/ID-1696407267/payout-details

The new payout details. Note: the payoutDetails parameter is not mandatory. This parameter can be only defined for an active deposit contract. See more information about the payoutDetails parameter .

payoutDetails Parameter

The payoutDetails parameter is optional and can only be defined for an active deposit contract.

Supported Account Types

Payout details support the following account number types:

  • IBAN,

  • BBAN.

Click on the tabs below to see the formatting for each account number types.

"payoutDetails": {
    "name": "Test Account",
    "accountNumber": {
      "value": "EE111236525217358748",
      "type": "IBAN"

Parameter validations:

  1. If accountNumber.type is IBAN, financialInstitutionId is not required.

  2. If accountNumber.type is IBAN and financialInstitutionId is provided, then countryCode is required.

"payoutDetails": {  
          "name": "Malloy Harbor", 
          "accountNumber": {   
            "type": "BBAN", 
            "value": "3159584114"    
          },
          "financialInstitutionId": { 
            "type": "BANK_CODE",
            "value": "5051"
          },
          "countryCode": "DK", 
          "referenceNumber": null 
        }

Parameter validations:

  1. If financialInstitutionId is provided, type can be one of the following values:

    • BIC,

    • SORT_CODE,

    • BANK_CODE,

    • ABA_CODE.

  2. If accountNumber.type is BBAN and financialInstitutionId is ABA_CODE, countryCode can be one of the following:

    • US (United States of America),

    • PR (Puerto Rico),

    • AS (American Samoa),

    • GU (Guam),

    • VI (Virgin Islands).

  3. If accountNumber.type is BBAN and financialInstitutionId is SORT_CODE, countryCode is GB (Great Britain)

Default Behavior

If payout details are not specified for a contract version, the payout will automatically be directed to the servicing account. It is not necessary to define the servicing account as the payout account in this case.

Modifying Payout Details

Payout details can be modified or removed. To remove payout details from an active contract version, include the following in the request:

"payoutDetails":  null

Sample API call

To change the deposit contract payout details, make the following API call.

{
  "payoutDetails": {
    "name": "Test Account",
    "accountNumber": {
      "value": "EE111236525217358748",
      "type": "IBAN"
    
    }
    }
}
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v1/contracts/ID-1696407222/versions/ID-1696407267/payout-details' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMDdUMTU6MDM6MTAiLCJleHAiOjE3MjgzMTMzOTAsInJvbGVzIjpbIkFETUlOIl19.KloWEzZXTCs6u0HeijjZyqn8Wy_bzhs8hdVsfSlFvS4' \
--header 'Content-Type: application/json' \
--data '{
  "payoutDetails": {
    "name": "Test Account",
    "accountNumber": {
      "value": "EE111236525217358748",
      "type": "IBAN"
    
    }
    }
}'

Sample response

Below you find an example response body to the API call above.

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "headerId": "ID-1696407222",
        "personId": "ID-2660",
        "accountId": "ID-1012",
        "applicationId": null,
        "offerId": "ID-16964073051",
        "depositGroupCode": "TIME_DEPOSIT",
        "depositTypeCode": "PREMIUM",
        "contractNumber": "PR-EE-1000",
        "countryCode": "EE",
        "channelCode": "BACKOFFICE",
        "tenantCode": "MB",
        "depositClassCode": "PREMIUM_CUSTOMER",
        "headerActivationDate": "2026-04-04",
        "headerClosingDate": null,
        "activeVersion": {
            "versionId": "ID-1718024026",
            "headerId": "ID-1718024016",
            "versionNumber": 1,
            "statusCode": "ACTIVE",
            "preparationDate": "2026-04-04",
            "signingDate": null,
            "activationDate": "2026-04-04",
            "endDate": "2026-07-04",
            "closingDate": null,
            "period": 3,
            "periodTypeCode": "MONTH",
            "interestRate": 0.25,
            "interestPaymentFrequencyCode": "MONTH",
            "prolongCode": null,
            "countryCode": "EE",
            "cancelReasonCode": null,
            "lastCreditReceiveDate": "2026-04-06",
            "lastSigningDate": null,
            "changeTypeCode": "NEW_CONTRACT",
            "components": [
                {
                    "componentId": "ID-1718024140",
                    "versionId": "ID-1718024026",
                    "componentTypeCode": "PRI",
                    "initialMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 5000.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": null,
                    "rateBaseCode": null,
                    "rate": null,
                    "accruedUntil": null,
                    "paymentDay": 4,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": null
                },
                {
                    "componentId": "ID-1718024141",
                    "versionId": "ID-1718024026",
                    "componentTypeCode": "INT",
                    "initialMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "balanceMoney": {
                        "amount": 0.00,
                        "currencyCode": "EUR"
                    },
                    "calculationMethod": {
                        "daysInMonth": "30",
                        "daysInYear": 360
                    },
                    "rateBaseCode": "FIX",
                    "rate": 0.25,
                    "accruedUntil": null,
                    "paymentDay": 4,
                    "paymentInterval": 1,
                    "baseInvalidFromDate": "2026-04-04"
                }
            ],
            "totalInterestMoney": {
                "amount": 3.13,
                "currencyCode": "EUR"
            },
            "totalInterestAccruedMoney": {
                "amount": 0.00,
                "currencyCode": "EUR"
            },
            "channelCode": "BACKOFFICE",
            "tenantCode": "MB",
            "terminationType": "WITHOUT_INTEREST",
            "nextPayoutDate": "2026-05-04",
            "payoutDetails": {
                "name": "Test Account",
                "accountNumber": {
                    "value": "EE111236525217358748",
                    "type": "IBAN"
                },
                "financialInstitutionId": null,
                "referenceNumber": null,
                "countryCode": null
            }
        },
        "personTypeCode": "P",
        "taxResidencyCountryCode": "EE",
        "taxExempt": false
    }
}

Result

As a result, the deposit contract payout details were updated.

About header parameters

There are two types of header parameters:

  • Mandatory. The mandatory ones ensure that only authorised API calls will receive a positive response.

  • Optional. The optional ones allow you to avoid duplicate calls if they are present in the request header.

You can find more information about each of the header parameter types by choosing the options:

Create savings account

The main purpose of a savings account is to help customers set aside money for specific goals while earning a higher interest rate. You can only open a savings account together with a corresponding currency account and an initial deposit. Below are the steps to create a savings account.

Use case

In this example, we will create a savings account linked to the currency account ID-23819.

Use case data
API parameters with values

When creating a savings order, be sure to set the savingDay in accordance with the rules for the selected paymentFrequencyCode, as outlined in the table below.

Sample API call

To create a savings account linked to the currency account, use the following endpoint:

https://account-api.sandbox.tuumplatform.com/api/v3/accounts/{accountId}/savings

Learn more about the endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

If the user chooses to open a savings account without setting up a savings order, the following optional parameters can be skipped in the API request:

  • savingOrder

  • savingDay

  • amount

  • paymentFrequencyCode

Sample response

Below you will find the response to the API request:

Response

Result

The savings account has been successfully created and is now linked to the specified currency account. The initial amount has been transferred, and the savings account is ready for use. If a savings order was provided, it has also been successfully added and linked to the new savings account.

By making multiple API calls with different parameters, you can link several savings accounts to a single servicing account. This setup provides flexibility for managing various savings goals.

Troubleshooting

Here are some tips to help you address the most common errors.

Error message
Possible resolution

Set account access rights

Use case

In this example, we will review how to create a currency account for a legal person and add access rights for a private person.

Use case data
API parameters with values

There are three levels of account access rights: ALL, VIEW_RIGHTS, CHANGE_RIGHTS:

  • ALL - the customer can view and edit account details; initiate currency transfers, payments, etc.

  • VIEW_RIGHTS - the customer can view account details but not edit them; the customer cannot initiate any transactions on accounts.

  • CHANGE_RIGHTS - the customer can view and edit account details and initiate transactions and payments but not confirm them.

Sample API call

To create an account and set access rights, make the following call.

https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/accounts

See more about the endpoint in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating an account and setting access rights.

Sample response

Below you find an example response body to the API call above.

Response

Result

A new current account ID-1286 was created. The private person ID-3397 was granted all rights to the created account.

"payoutDetails": {
    "name": "Test Account",
    "accountNumber": {
      "value": "EE111236525217358748",
      "type": "IBAN"
find deposit contract
find deposit contract
below
Mandatory parameters
Optional parameters
"personTypeCode": "L"
"name": "New company Ltd"
"addresses":
[
    {
      "addressTypeCode": "R",
      "street1": "Carnaby 10",
      "cityCounty": "London",
      "zip": "13347",
      "countryCode": "GB"
    }
  ]
"identificationNumber": {
"idNumber": "111111",
 "idCountryCode": "GB"
}
"accountTypeCode": "VIRTUAL"
"masterAccountId": "ID-1279"
"personName": "Trevor Harry Tuum"
"customerGroupCode": "GROUP_A"
"priceListTypeCode": "STANDARD"
"residencyCountryCode": "GB"
"currencyCode": "GBP"
"accountTypeSetupCode": "STANDARD"
"serviceProviderCode": "TUUM"
"accountId": "ID-1283"
"statusCode": "ACTIVE"
"iban": "GB05XXXX04030100000462"
"bic": "LHVBGB2LXXX"
"accountTypeCode": "CURRENCY"
"personName": "Trevor Harry Tuum"
"customerGroupCode": "GROUP_A"
"priceListTypeCode": "STANDARD"
"residencyCountryCode": "GB"
"currencyCode": "GBP"
"accountId": "ID-1279"
"statusCode": "ACTIVE"
"iban": "GB72XXXX04030000000986"
"bic": "LHVBGB2LXXX"

The legal account ID-3397.

...persons/ID-3397/accounts

The private person ID-3392 is granted all rights to the bank account of the legal person.

"representatives": [
    {
      "personId": "ID-3392",
      "accountRightCode": "ALL",
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3397/accounts' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMDZUMTQ6NDE6NTAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODg2NTQ1MTB9.qDVHzIowyGFM-XRG9xEktcwaA6YNf6WhPNp6yw4aTzE' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "personName": "Trevor Harry Tuum",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP",
  "representatives": [
    {
      "personId": "ID-3392",
      "accountRightCode": "ALL",
      "limits": [
        {
          "amount": {
            "amount": "1000",
            "currencyCode": "GBP"
          },
          "accountLimitTypeCode": "DAILY"
        },
        {
          "amount": {
            "amount": "10000",
            "currencyCode": "GBP"
          },
          "accountLimitTypeCode": "MONTHLY"
        }
      ]
    }
  ]
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1286",
        "personId": "ID-3397",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-07-06",
        "accountName": null,
        "personName": "Trevor Harry Tuum",
        "statusCode": "ACTIVE",
        "iban": "GB12XXXX04030000000999",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1213",
                "accountId": "ID-1286",
                "currencyCode": "GBP",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "GBP",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00000999",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1145",
                "accountId": "ID-1286",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}o
create account and set user rights
{
  "accountTypeCode": "CURRENCY",
  "personName": "Trevor Harry Tuum",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP",
  "representatives": [
    {
      "personId": "ID-3392",
      "accountRightCode": "ALL",
      "limits": [
        {
          "amount": {
            "amount": "1000",
            "currencyCode": "GBP"
          },
          "accountLimitTypeCode": "DAILY"
        },
        {
          "amount": {
            "amount": "10000",
            "currencyCode": "GBP"
          },
          "accountLimitTypeCode": "MONTHLY"
        }
      ]
    }
  ]
}
paymentFrequencyCode
savingDay

DAILY

No value allowed (null)

WEEKLY

Day of the week (1=Monday to 7=Sunday)

MONTHLY

Day of the month (1 to 31)

The savings account will be created for the currency account ID-23819.

...accounts/ID-23819/savings

The name the customer has chosen for their new savings account.

"savingName": "Emergency savings"

The intended end date for the savings account, if the customer has specified one.

Note: This is an optional parameter.

"savingEndDate": "2040-05-18"

The currency in which the savings account will be held.

"currencyCode": "EUR"

The interest rate applied to the savings account.

Note: This must be a number within the range defined by the interest method configured for the account type of the savings account.

"interestRate": 3.1

The target amount to be saved in the savings account.

"savingAmount": "1000"

The deposit amount that will be transferred to the savings account at the time of its creation.

Note: This is a mandatory parameter, and its value must be greater than zero. The specified amount must be available on the linked currency account at the time of the request, as it will be automatically transferred when the savings account is created.

"initialAmount": "10"

Defines the recurring deposit setup for the savings account.

It includes the deposit amount, frequency, and the specific day on which the deposit should occur. In this example, deposits are scheduled monthly on the 1st of each month.

Note: This is an optional parameter.

  "savingOrder": {
    "savingDay": 1,
    "amount": "50",
    "paymentFrequencyCode": "MONTHLY"
  }
{
  "savingName": "Emergency savings",
  "savingEndDate": "2040-05-18",
  "currencyCode": "EUR",
  "interestRate": 3.1,
  "savingAmount": "1000",
  "initialAmount": "10",
  "savingOrder": {
    "savingDay": 1,
    "amount": "50",
    "paymentFrequencyCode": "MONTHLY"
  }
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v3/accounts/ID-23819/savings' \
-H 'x-tenant-code: MB' \
-H 'Accept-Language: en' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdGkgdGVzdCIsImVtcGxveWVlSWQiOiJJRC0xNDE3IiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTEwLTE0VDA4OjE2OjU2IiwiZXhwIjoxNzYwNDI5ODE2LCJyb2xlcyI6WyJBRE1JTiIsIlNZU1RFTSJdfQ.u--2o-oNtxOL4Ag_DrX8QV-LYNQzAdU-2RRTYlbKeHk' \
-H 'Content-Type: application/json' \
-d '{
  "savingName": "Emergency savings",
  "savingEndDate": "2040-05-18",
  "currencyCode": "EUR",
  "interestRate": 3.1,
  "savingAmount": "1000",
  "initialAmount": "10",
  "savingOrder": {
    "savingDay": 1,
    "amount": "50",
    "paymentFrequencyCode": "MONTHLY"
  }
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "savingId": "ID-1491",
        "savingAccountId": "ID-23941",
        "currencyAccountId": "ID-23819",
        "savingName": "Emergency savings",
        "firstDebitDate": "2033-06-01",
        "lastDebitDate": null,
        "savingEndDate": "2040-05-18",
        "nextDebitDate": "2033-06-01",
        "currencyCode": "EUR",
        "interestRate": 3.10,
        "savingAmount": 1000,
        "initialAmount": 10,
        "orderAmount": 50,
        "savingDay": 1,
        "frequency": "MONTHLY",
        "manuallyEnded": false,
        "errorCode": null,
        "accountInterests": [
            {
                "accountInterestMethodId": "ID-000000015023",
                "accountTypeInterestMethodId": "ID-000000001290",
                "currencyCode": "EUR",
                "interestGroupCode": "DEPOSIT",
                "nextInterestCalculationDate": "2033-05-11",
                "balanceTypeCode": "END_OF_DAY",
                "calculationBaseTermCode": "SIMPLE",
                "rateTypeCode": "FIXED",
                "calcDaysMonth": "30",
                "calcDaysYear": "360",
                "paymentIntervalTypeCode": "MONTH",
                "minPayableInterestAmount": 0.01,
                "marginTypeCode": null,
                "conditions": [
                    {
                        "accountInterestConditionId": "ID-000000033574",
                        "amountRange": null,
                        "interestRate": 3.1,
                        "ratePeriodTypeCode": "PER_YEAR",
                        "interestTypeCode": "ACCO_INT",
                        "validityRange": {
                            "startDate": "2033-05-11",
                            "endDate": null
                        },
                        "source": null,
                        "rateBaseCode": null,
                        "baseRate": null,
                        "marginRate": null
                    }
                ]
            }
        ],
        "interestBalances": [],
        "accountNumbers": [
            {
                "accountNumberId": "ID-15148",
                "accountId": "ID-23941",
                "accountNumber": {
                    "value": "XX20XXXX99999000000000000127872",
                    "type": "IBAN"
                },
                "countryCode": "XX",
                "financialInstitutionId": {
                    "value": "ICECLOUDXXX",
                    "type": "BIC"
                },
                "accountNumberSubtype": null,
                "defaultCurrencyCode": "EUR",
                "statusCode": "ENABLED",
                "externalSyncEnabled": false,
                "validityRange": {
                    "endTime": null,
                    "startTime": "2025-10-14T07:31:32.92Z"
                }
            }
        ]
    }
}

The source account was not found.

Ensure that the accountId referring to the servicing account is accurate and that the account remains active.

The initial amount is not a positive number.

Ensure the initialAmount is at least 0.01 or another valid positive number.

The given interest rate is outside the allowed range.

Ensure the interestRate is within the range set by the account type’s interest method.

The interest method was not found.

Ensure the interest method assignment code for the savings account matches the currency account configuration.

create saving for account
paymentFrequencyCode
savingDay

DAILY

No value allowed (null)

WEEKLY

Day of the week (1=Monday to 7=Sunday)

MONTHLY

Day of the month (1 to 31)

Create domestic US payment

Use case

In this scenario, we will create a domestic US payment - ACC2LOCAL payment type.

Use case data
API parameters with values

Our party details gives the information about the sender of the payment. In this example, the payment is initialised from the Tuum bank account with 190021824474 BBAN.

The payer's account country is the USA. Note: the payer's bank account financial institution id is the ABA Routing number.

Counterparty details.

The payer's account country is the USA. Note: the payer's bank account financial institution id is the ABA Routing number.

Payment amount and currency.

Payment details.

The payment also includes payment steering data, such as usageLimitCode. Note: the usageLimitCode is an optional parameter.

Sample API call

To initialise the payment, use the following endpoint: https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise

Learn more about the initialise payment endpoint endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountNumber": {
                "value": "190021824474",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "US",
            "financialInstitutionId": "021000018"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Robert Receiver",
            "accountNumber": {
                "value": "231123456789",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "US",
            "financialInstitutionId": "021000322"
        }
    ],
    "money": {
        "amount": 17,
        "currencyCode": "USD"
    },
    "details": "Test payment with both parties with BBAN for domestic US payment",
    "usageLimitCode": "test"
}
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDVUMTM6NDM6MTAiLCJleHAiOjE3MzM0MDYxOTAsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.03a1hgsWy3yZxxKXl-TpIatf4XAllaA0dquZH4U8a0E' \
--header 'Content-Type: application/json' \
--data '{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountNumber": {
                "value": "190021824474",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "US",
            "financialInstitutionId": "021000018"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Robert Receiver",
            "accountNumber": {
                "value": "231123456789",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "US",
            "financialInstitutionId": "021000322"
        }
    ],
    "money": {
        "amount": 17,
        "currencyCode": "USD"
    },
    "details": "Test payment with both parties with BBAN for domestic US payment",
    "usageLimitCode": "test"
}'

Sample response

Below you will find the response to the sample request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "paymentId": "PAYM-21726",
        "accountId": "ID-17598",
        "directionCode": "OUT",
        "statusCode": "INSERTED",
        "errorCode": null,
        "money": {
            "amount": 17.00,
            "currencyCode": "USD"
        },
        "details": "Test payment with both parties with BBAN for domestic US payment",
        "referenceNumber": null,
        "source": null,
        "contractSource": null,
        "endToEndId": null,
        "valueDate": "2029-11-01",
        "postingDate": "2029-11-01",
        "insertedDateTime": "2024-11-28T16:09:32.4368Z",
        "paymentServiceProviderCode": "BC",
        "paymentTypeCode": "ACC2LOCAL",
        "preferredPaymentScheme": null,
        "selectedPaymentScheme": null,
        "chargeBearer": null,
        "settlementStatusCode": null,
        "settlementErrorCode": null,
        "settlementDate": null,
        "settlementPaymentScheme": null,
        "returnStatusCode": null,
        "returnReason": null,
        "returnComment": null,
        "returnSettlementDate": null,
        "cancellationRequestStatusCode": null,
        "cancelRefuseReason": null,
        "cancelReason": null,
        "amlDeclineReason": null,
        "amlMonitoringEnabled": null,
        "lastStatusRequestDate": null,
        "residencyCountryCode": "FI",
        "counterpartyOriginalIban": null,
        "fxPaymentFlag": false,
        "fxPayment": null,
        "paymentParties": [
            {
                "paymentPartyId": "PAYM-57267",
                "typeCode": "COUNTERPARTY",
                "name": "Robert Receiver",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "231123456789",
                    "type": "BBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "US",
                "financialInstitutionId": {
                    "value": "021000322",
                    "type": "ABA_CODE"
                },
                "address": null,
                "roleCode": "BENEFICIARY",
                "partyIdentification": null
            },
            {
                "paymentPartyId": "PAYM-57268",
                "typeCode": "OUR_PARTY",
                "name": "Test User",
                "personTypeCode": "P",
                "givenName": "Test",
                "surname": "User",
                "accountNumber": {
                    "value": "DK9189000021824474",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "DK",
                "financialInstitutionId": {
                    "value": "SXPYDKKK",
                    "type": "BIC"
                },
                "address": {
                    "street1": "",
                    "street2": null,
                    "cityCounty": "Tallinn",
                    "stateRegion": null,
                    "zip": null,
                    "countryCode": "EE",
                    "addressLine": "Maakri, Tallinn, EE",
                    "addressTypeCode": null
                },
                "roleCode": "PAYER",
                "partyIdentification": {
                    "identificationTypeCode": "NATIONAL_IDENTIFICATION_NUMBER",
                    "identificationValue": "EE1234567"
                }
            }
        ],
        "fees": [],
        "paymentSchemeElements": [],
        "fileImportLineNumber": null,
        "purposeCode": null,
        "labels": [
            "COUNTERPARTY_US"
        ]
    }
}

Result

The draft payment has been created with a paymentId: PAYM-21726 and the statusCode: INSERTED.

Possible next steps

After creating a draft payment, you have the following options:

  1. Change the draft payment - modify the draft payment.

  2. Cancel the draft payment - discard the draft payment if it is no longer required.

  3. Confirm the draft payment - complete payment to initiate further payment processing.

Create SEPA payment

Use case

In this scenario, we will create an outgoing SEPA payment - ACC2SEPA payment type.

Use case data
API parameters with values

Our party details gives the information about the sender of the payment. In this example, the payment is initialised from the Tuum account ID-4184.

Counterparty details.

Payment amount and currency.

Payment details.

The payment also includes payment steering data, such as valueDate and ourFee. Note: the valueDate and ourFee parameters are optional.

Sample API call

To initialise the payment, use the following endpoint:

https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise

Learn more about the initialise payment endpoint endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountId": "ID-4184"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Robert Receiver",
            "accountNumber": {
                "value": "EE871275295834652820",
                "type": "IBAN"
            }
        }
    ],
    "money": {
        "amount": 25,
        "currencyCode": "EUR"
    },
    "details": "Test payment with our party accountId",
    "valueDate" : "2024-12-04",
    "ourFee": {
         "amount": 1.22,
         "currencyCode": "EUR"
  }
}
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDRUMTQ6MjY6MTkiLCJleHAiOjE3MzMzMjIzNzksInJvbGVzIjpbIkFETUlOIl19.X1C4fpzVoXZnbicLPFW7izPPRLKGs-wGw6xoETGAypE' \
--header 'Content-Type: application/json' \
--data '{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountId": "ID-4184"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Robert Receiver",
            "accountNumber": {
                "value": "EE871275295834652820",
                "type": "IBAN"
            }
        }
    ],
    "money": {
        "amount": 25,
        "currencyCode": "EUR"
    },
    "details": "Test payment with our party accountId",
    "valueDate" : "2024-12-04",
    "ourFee": {
         "amount": 1.22,
         "currencyCode": "EUR"
  }
}'

Sample response

Below you will find the response to the sample request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "paymentId": "PAYM-32706",
        "accountId": "ID-4184",
        "directionCode": "OUT",
        "statusCode": "INSERTED",
        "errorCode": null,
        "money": {
            "amount": 25.00,
            "currencyCode": "EUR"
        },
        "details": "Test payment with our party accountId",
        "referenceNumber": null,
        "source": null,
        "contractSource": null,
        "endToEndId": null,
        "valueDate": "2024-12-04",
        "postingDate": "2024-12-04",
        "insertedDateTime": "2024-12-04T13:28:52.498788Z",
        "paymentServiceProviderCode": "SEPA",
        "paymentTypeCode": "ACC2SEPA",
        "preferredPaymentScheme": null,
        "selectedPaymentScheme": "SEPA_INSTANT",
        "chargeBearer": null,
        "settlementStatusCode": null,
        "settlementErrorCode": null,
        "settlementDate": null,
        "settlementPaymentScheme": null,
        "returnStatusCode": null,
        "returnReason": null,
        "returnComment": null,
        "returnSettlementDate": null,
        "cancellationRequestStatusCode": null,
        "cancelRefuseReason": null,
        "cancelReason": null,
        "amlDeclineReason": null,
        "amlMonitoringEnabled": null,
        "lastStatusRequestDate": null,
        "residencyCountryCode": "GB",
        "counterpartyOriginalIban": null,
        "fxPaymentFlag": false,
        "fxPayment": null,
        "paymentParties": [
            {
                "paymentPartyId": "PAYM-67504",
                "typeCode": "COUNTERPARTY",
                "name": "Robert Receiver",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "EE871275295834652820",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "EE",
                "financialInstitutionId": {
                    "value": "PARXEE22XXX",
                    "type": "BIC"
                },
                "address": null,
                "roleCode": "BENEFICIARY",
                "partyIdentification": null
            },
            {
                "paymentPartyId": "PAYM-67505",
                "typeCode": "OUR_PARTY",
                "name": "Tuum Thomas",
                "personTypeCode": "P",
                "givenName": "Tuum",
                "surname": "Thomas",
                "accountNumber": {
                    "value": "XX20XXXX99999000000000000021075",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "XX",
                "financialInstitutionId": {
                    "value": "ICECLOUDXXX",
                    "type": "BIC"
                },
                "address": {
                    "street1": "24 Botley Road",
                    "street2": null,
                    "cityCounty": "Middleton Hall",
                    "stateRegion": null,
                    "zip": "NE71 3LL",
                    "countryCode": "GB",
                    "addressLine": "24 Botley Road, Middleton Hall, GB, NE71 3LL",
                    "addressTypeCode": null
                },
                "roleCode": "PAYER",
                "partyIdentification": {
                    "identificationTypeCode": "NATIONAL_IDENTIFICATION_NUMBER",
                    "identificationValue": "DD654321C"
                }
            }
        ],
        "fees": [
            {
                "feeTypeCode": "ACC2SEPA_FEE",
                "feeMoney": {
                    "amount": 1.22,
                    "currencyCode": "EUR"
                },
                "deferredFee": false
            }
        ],
        "paymentSchemeElements": [],
        "fileImportLineNumber": null,
        "purposeCode": null,
        "labels": [
            "COUNTERPARTY_EE",
            "SEPA_INSTANT"
        ]
    }
}

Result

The draft payment has been created with a paymentId: PAYM-32706 and the statusCode: INSERTED.

Possible next steps

After creating a draft payment, you have the following options:

  1. Change the draft payment - modify the draft payment.

  2. Cancel the draft payment - discard the draft payment if it is no longer required.

  3. Confirm the draft payment - complete payment to initiate further payment processing.

Requests with same request ID

Initial POST request

We will create a new account for a person by making the following API call.

Create account

POST https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3419/accounts

See more about the in the Tuum developer portal.

Below is an example request body of the API call for creating an account.

As a result, a new account with accountId: ID-1292 was created and activated.

Response

Duplicated POST request

We will make the API call again without changing the request ID and using the same request data.

The response we received is identical to the initial call, confirming the creation of the account with the ID-1292. No new account was created.

Response

Duplicated POST request with changed data

We will repeat the API call using the same request ID but with updated request data. We will change the currency from GBP to USD.

Below is an example request body for creating an account with the updated currency.

As a result, no new account is created. However, the account currency on the existing account ID-1292is updated to USD as requested.

Response

Summary for using the same request ID

If you make multiple POST calls to the same API endpoint using the same value for the x-request-id header parameter, all subsequent calls will receive the same response as the initial call. This principle also holds even if you use different data in the request body of a repeated request.

About cookbooks

Getting started

Hello, and welcome to the Tuum API cookbooks. Here you can get detailed instructions on how to use Tuum API endpoints to achieve your desired outcome. It is a complementary page to the .

We have organised API cookbooks by grouping them per business domain. So, for example, you can find detailed instructions about authentication-related use cases in the authentication group, account-related ones in the account group and payment-related in the payment group. Just proceed to any cookbook to get the left-hand menu with all cookbooks displayed to find the one of your interest.

If you are unsure which group to find the topic of interest, please use the search function on the top right corner of the page.

Shortcuts to cookbooks

Here you can find the shortcuts to the API recipes:

Authentication
Header parameters
Employee
Person
Accounts
Reports
Deposits
Payments
Loans
Cards
Interest base rates
Interest rate caps
Webhooks
Lookups
Custom Fields
Holidays

Create person representation

Use case

In this example, we will show how to set up person representation. We will set a private person Trevor Tuum as a representative of the legal person, New company Ltd.

Use case data
API parameters with values

To create the representation rights, you can use the personId of the parent (legal person) or representative (dependant private person).

Use case data
API parameters with values

It is possible to set up representation rights for one or multiple persons to represent a legal or another private person.

Sample API call

To set the representation rights, call the following endpoint.

https://person-api.sandbox.tuumplatform.com/api/v1/persons/{personId}/relations

Learn more about the endpoint details in the Tuum developer portal.

Sample request

Below is an example request body of the API call for creating person representation.

Sample response

Below you will find an example response to the API call from above.

Response

Result

A new person relationship is created:

Parameter and value
Explanation

Create SWIFT payment

Use case

In this scenario, we will initialise an outgoing SWIFT (cross border) payment to a counterparty account with an IBAN and some sample data - ACC2SWIFT payment type.

Use case data
API parameters with values

Sample API call

To initialise the payment, use the following endpoint:

https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise

Learn more about the endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

Sample response

Below you will find the response to the sample request:

Response

Result

The draft payment has been created with a paymentId: PAYM-21846 and the statusCode: INSERTED.

Possible next steps

After creating a draft payment, you have the following options:

  1. - modify the draft payment.

  2. - discard the draft payment if it is no longer required.

  3. - complete payment to initiate further payment processing.

Tuum developer portal
About authentication
Authenticate employee
Create customer credentials
Authenticate customer
Refresh JSON Web Token
Invalidate customer credentials
Export-import roles
Export selected roles
Import selected roles
Import all roles
About header parameters
Mandatory parameters
Optional parameters
Requests with same request ID
Requests without request ID
Create employee
Find employee
Find employee by username
Create private person
Create legal person
Activate person
Find person
Find person details
Find person addresses
Create person document
Update personal info
Update person address
Create customer group
Create additional contact
Assign person to customer group
Create person representation
Close person representation
Create person financial data
Inactivate person
Reactivate person
Forget person
Remove person restoration key
Create currency account
Savings accounts
Create savings account
Find savings ID for savings account
Create savings order
Create internal account
Create virtual account
Create account application
Set account access rights
Create account limit code
Create account limit type
Create account limit
Create account class code
Create account type class rule
Find person accounts
Search account transactions
About reports
Account transactions report
Request to generate account transactions report
Account transactions report parameters
Check account transactions report generation status
Download requested account transactions report
QMR - Quarterly Mastercard report
Request to generate QMR manually
Check QMR generation status
Export requested QMR as PDF
Deposit product management
Create deposit class code
Create deposit product
Update deposit product
Activate deposit product
Find deposit product
Inactivate deposit product
Deposit flow
Create deposit application
Find deposit application
Find deposit offer
Accept deposit offer
Create deposit offer
Edit deposit offer
Decline deposit offer
Find deposit contract
Deposit contract management
Change payout details
Change contract prolongation status
Update contract header
Adjust deposit contract interest
Make premature termination
Create outgoing payment
Create SEPA payment
Create SWIFT payment
Create domestic UK payment
Create domestic US payment
Change payment
Cancel payment
Confirm payment
Find AML information of a payment
Find the settled SEPA transaction
Create payment template
Initialise FX quote request
Get FX quote response
Initiate FX order
Create loan application
Accept loan application
Find loan application offers
Create loan offer for a person
Accept loan offer
Find person contracts
Accept loan contract
Disburse loan contract
Create contract fee booking
Default loan contract
Create price list
Create price for the price list
Card counting and summing groups
Create counting group
Create summing group
Find counting values for card
Find summing values for account
Add BIN
Create upper limit group
Create upper usage group
Create debit card product
Activate card product
Create debit card application with internal account
Accept card application
Create debit card application
Create physical debit card application with Tuum core account
Create supplementary debit card application
Find card application by ID
Create credit product
Create credit card offer
Accept credit card offer
Card designs
Search card designs
Create card design
Change card design description
Delete card design
Find card history
Find card status history
Find card settings history
Find card limits history
Find card price list history
Find card usage group history
Find card limit group history
Search card network transactions
Export card network transactions as CSV
Replace the servicing account for card credit contracts
Replace virtual card
Replace physical card
Change card usage group
Change card settings
Card service codes
Enable card authorisation type
Disable card authorisation type
Change card limit group
Change card limits
Fee quotation
Test future price list
Calculate fee for specific account
Add interest base rate type - periodic
Add interest base rate type - instant
Add interest rate cap type
About webhooks
Find available webhooks
Enable or disable notification for webhook
Enable with notification type and channel code
Enable with notification ID
Disable with notification type and channel code
Disable with notification ID
Search subscribed webhooks
Subscribe webhook
Update webhook subscription
Unsubscribe webhook
Webhooks with payloads
Person
Account
Deposit
Payments
AML
Loan
Card
Debt
Finance
Reports
Processes
About lookups
Find existing lookup groups
Find lookup values
Find entities
Find lookup type codes
Find lookup types
Find translation of lookup type
Create lookup values
Create lookup type and codes
Create lookup code for existing type
Create lookup translation
Manage lookup values
Mark lookup code as default
Remove default lookup code
Delete lookup code
About custom fields
Create custom fields
Create field set
Create fields
Create fields with copied values
Find custom fields
Find field sets
Find fields
Search custom field sources
Get custom field value
Update custom fields
Update field set
Update field
Update custom field value
Manage custom fields
Insert custom field values
Copy custom field values
Deactivate field
Delete custom field value
Create holiday
Search existing holidays
Search holiday by ID
Delete holiday

The personId of the New company Ltd is ID-3394.

...persons/ID-3394/relations

The identification number of the private person Trevor Tuum is DQ654327C.

"idNumber": "DQ654327C"

The private person is registered in the Great Britain.

"idCountryCode": "GB"

The private person is the representative of the New company Ltd.

 "relationTypeCode": "REPRESENTATIVE"

The representation is in active status.

"statusCode": "ACTIVE"

The private person is the beneficiary owner of the company. Note: If the private person is not a benificiary owner of the company, set to false.

"beneficiary": true

The representation validity period. The date format: YYYY-MM-DD.

"representingRange": {
        "startDate": "2023-06-06",
        "endDate": "2023-06-13"
      }
{
  "relationships": [
    {
      "idNumber": "DQ654327C",
      "idCountryCode": "GB",
      "relationTypeCode": "REPRESENTATIVE",
      "statusCode": "ACTIVE",
      "beneficiary": true,
      "representingRange": {
        "startDate": "2023-06-06",
        "endDate": "2023-06-13"
      }
    }
  ]
}
curl 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3394/relations' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTNUMjM6MDc6NDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODY2OTc2NjB9.Tt708jxWsjUQPurWItoY9QVqa2tb5PbnFBV-8voVRxY' \
-H 'Content-Type: application/json' \
-d '{
  "relationships": [
    {
      "idNumber": "DQ654327C",
      "idCountryCode": "GB",
      "relationTypeCode": "REPRESENTATIVE",
      "statusCode": "ACTIVE",
      "beneficiary": true,
      "representingRange": {
        "startDate": "2023-06-06",
        "endDate": "2023-06-13"
      }
    }
  ]
}'
```
{
    "errors": null,
    "validationErrors": null,
    "data": [
        {
            "personRelationshipId": "ID-1003",
            "parentPersonId": "ID-3394",
            "personId": "ID-3392",
            "relationTypeCode": "REPRESENTATIVE",
            "statusCode": "ACTIVE",
            "role": null,
            "percentageOfShares": null,
            "percentageOfSignature": null,
            "beneficiary": true,
            "representingRange": {
                "startDate": "2023-06-06",
                "endDate": "2023-06-13"
            },
            "additionalData": null,
            "validityRange": {
                "startTime": "2023-06-14T21:32:09.684826Z",
                "endTime": null
            },
            "parentIdNumber": null,
            "personIdNumber": null,
            "parent": {
                "personId": "ID-3394",
                "personTypeCode": "L",
                "statusCode": "ACTIVE",
                "statusCodeReason": null,
                "name": "New company Ltd",
                "givenName": null,
                "middleName": null,
                "surname": null,
                "birthDate": null,
                "creationDate": "2023-06-13",
                "deathDate": null,
                "liquidationDate": null,
                "inactivationDate": null,
                "registrationDate": null,
                "sex": null,
                "email": null,
                "customerTypeCode": null,
                "nationality": null,
                "taxResidencyCountry": null,
                "placeOfBirth": null,
                "countryOfBirth": null,
                "phoneCountryCode": null,
                "phoneNumber": null,
                "idNumber": "120045",
                "idCountryCode": "GB",
                "residencyCountryCode": null,
                "language": null,
                "educationCode": null,
                "activityCode": null,
                "housingTypeCode": null,
                "buildingTypeCode": null,
                "moveInDate": null,
                "maritalStatusCode": null,
                "dependantPersons": null,
                "employmentTimeCode": null,
                "fixedEmploymentLength": null,
                "businessAreaCode": null,
                "intraOrgCode": null,
                "tradingName": null,
                "webAddress": null,
                "pepExplanation": null,
                "legalForm": null,
                "businessModelDescription": null,
                "counterpartySectorCode": null,
                "forgotten": null,
                "usResident": false,
                "pep": false,
                "source": null,
                "tenantCode": "MB",
                "fullName": "New company Ltd"
            },
            "person": {
                "personId": "ID-3392",
                "personTypeCode": "P",
                "statusCode": "ACTIVE",
                "statusCodeReason": null,
                "name": null,
                "givenName": "Trevor",
                "middleName": "Harry",
                "surname": "Tuum",
                "birthDate": null,
                "creationDate": "2023-06-01",
                "deathDate": null,
                "liquidationDate": null,
                "inactivationDate": null,
                "registrationDate": null,
                "sex": null,
                "email": null,
                "customerTypeCode": null,
                "nationality": null,
                "taxResidencyCountry": null,
                "placeOfBirth": "Alabama",
                "countryOfBirth": null,
                "phoneCountryCode": null,
                "phoneNumber": null,
                "idNumber": "DQ654327C",
                "idCountryCode": "GB",
                "residencyCountryCode": null,
                "language": null,
                "educationCode": null,
                "activityCode": null,
                "housingTypeCode": null,
                "buildingTypeCode": null,
                "moveInDate": null,
                "maritalStatusCode": null,
                "dependantPersons": null,
                "employmentTimeCode": null,
                "fixedEmploymentLength": null,
                "businessAreaCode": null,
                "intraOrgCode": null,
                "tradingName": null,
                "webAddress": null,
                "pepExplanation": null,
                "legalForm": null,
                "businessModelDescription": null,
                "counterpartySectorCode": null,
                "forgotten": null,
                "usResident": false,
                "pep": false,
                "source": null,
                "tenantCode": "MB",
                "fullName": "Trevor Tuum"
            }
        }
    ]
}
```
"personRelationshipId": "ID-1003"

The code ID-1003 is a unique identifier of the person relationship between a legal and a private person.

"parentPersonId": "ID-3394",
"personId": "ID-3392",
"relationTypeCode": "REPRESENTATIVE"

A legal person (New company Ltd) was set as a parent person. And a private person (Trevor Tuum) was added as a company representative.

create person representation
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1292",
        "personId": "ID-3419",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-08-04",
        "accountName": null,
        "personName": "Eleanor Rigby",
        "statusCode": "ACTIVE",
        "iban": "GB76XXXX04030000001011",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1221",
                "accountId": "ID-1292",
                "currencyCode": "GBP",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "GBP",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00001011",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1147",
                "accountId": "ID-1292",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}
{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "USD"
}
curl 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3419/accounts' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDgtMDRUMTE6MjM6MjUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTExNDgyMDV9.1lnY03GWnnGdki0uJlkNNSMydwiWv_jsdII10PKPUkA' \
-H 'x-request-id: eb1d4135-bca1-4612-aa83-29637830fe37' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "USD"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1292",
        "personId": "ID-3419",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-08-04",
        "accountName": null,
        "personName": "Eleanor Rigby",
        "statusCode": "ACTIVE",
        "iban": "GB76XXXX04030000001011",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1221",
                "accountId": "ID-1292",
                "currencyCode": "GBP",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "GBP",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00001011",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1147",
                "accountId": "ID-1292",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}
endpoint
curl 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3419/accounts' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDgtMDRUMTE6MjM6MjUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTExNDgyMDV9.1lnY03GWnnGdki0uJlkNNSMydwiWv_jsdII10PKPUkA' \
-H 'x-request-id: eb1d4135-bca1-4612-aa83-29637830fe37' \
-H 'Content-Type: application/json' \
-d '{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}'
{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "accountId": "ID-1292",
        "personId": "ID-3419",
        "accountTypeCode": "CURRENCY",
        "activationDate": "2023-08-04",
        "accountName": null,
        "personName": "Eleanor Rigby",
        "statusCode": "ACTIVE",
        "iban": "GB76XXXX04030000001011",
        "bic": "LHVBGB2LXXX",
        "defaultCurrencyCode": "GBP",
        "tenantCode": "MB",
        "residencyCode": "GB",
        "customerGroupCode": "GROUP_A",
        "personTypeCode": null,
        "intraOrgCode": null,
        "accountTypeSetupCode": "STANDARD",
        "serviceProviderCode": "TUUM",
        "interestMethodAssignmentCode": null,
        "accountClassCode": null,
        "balances": [
            {
                "balanceId": "ID-1221",
                "accountId": "ID-1292",
                "currencyCode": "GBP",
                "balanceAmount": 0.00,
                "reservedAmount": 0.00,
                "overdraftLimitAmount": 0.00,
                "defaultCurrencyCode": "GBP",
                "availableBalanceInDefaultCcy": 0.00,
                "negativeBalanceStartDate": null,
                "availableBalanceAmount": 0.00
            }
        ],
        "masterAccountId": null,
        "accountNumbers": [
            {
                "accountNumber": {
                    "value": "00001011",
                    "type": "BBAN"
                },
                "countryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "defaultCurrencyCode": "GBP",
                "accountNumberId": "ID-1147",
                "accountId": "ID-1292",
                "financialInstitutionIdTypeCode": null,
                "statusCode": "ENABLED"
            }
        ],
        "taxResidencyCountryCode": "GB",
        "jurisdictionCountryCode": "GB"
    }
}
{
  "typeCode": "OUR_PARTY",
  "accountNumber": {
       "value": "190021824474",
       "type":
            }
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000018"
"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
     "value": "231123456789",
     "type": "BBAN"
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000322"
 "money": {
        "amount": 17,
        "currencyCode": "USD"
    }
"details": "Test payment with both parties with BBAN for domestic US payment"
 "usageLimitCode": "test"
"typeCode": "OUR_PARTY",
"accountId": "ID-4184"
{
  "typeCode": "COUNTERPARTY",
  "name": "Robert Receiver",
  "accountNumber": {
         "value": "EE871275295834652820",
         "type": "IBAN"
           }
"money": {
    "amount": "25",
    "currencyCode": "EUR"  }
"details": "Test payment with our party accountId"
 "valueDate" : "2024-12-04",
    "ourFee": {
         "amount": 1.22,
         "currencyCode": "EUR"

Our party details gives the information about the sender of the payment. In this example, the payment is initialised from the Tuum account ID-1887.

 "typeCode": "OUR_PARTY",
 "accountId": "ID-1887"

Counterparty details.

 "typeCode": "COUNTERPARTY",
 "name": "Ben Eficiary",
 "accountNumber": {
     "value": "EE871275295834652820",
     "type": "IBAN"

Payment amount.

"money": {
    "amount": "10",
    "currencyCode": "DKK"  }

Payment details.

"details": "Lunch payment"

The payment also includes additional transferable data, such as chargeBearer and endToEndId. Note: the chargeBearer and endToEndId parameters are optional.

"endToEndId": "20240103-E000003",
"chargeBearer": "DEBT"
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDZUMTM6Mjc6MzUiLCJleHAiOjE3MzM0OTE2NTUsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.r4Efnh8m_waGXaTRBQDLhLDb2M6no_SRJpZCGPoO6K8' \
--header 'Content-Type: application/json' \
--data '{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountId": "ID-21508"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Ben Eficiary",
            "accountNumber": {
                "value": "EE871275295834652820",
                "type": "IBAN"
            },
            "financialInstitutionId": "PARXEE22XXX",
            "address": {
                "street1": "First street 123",
                "street2": "Second street 321",
                "cityCounty": "Some city",
                "zip": "06777",
                "countryCode": "EE"
            }
        }
    ],
    "money": {
        "amount": 1,
        "currencyCode": "DKK"
    },
    "details": "Test payment",
    "endToEndId": "20240103-E000003",
    "chargeBearer": "DEBT"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "paymentId": "PAYM-21846",
        "accountId": "ID-21508",
        "directionCode": "OUT",
        "statusCode": "INSERTED",
        "errorCode": null,
        "money": {
            "amount": 1.00,
            "currencyCode": "DKK"
        },
        "details": "Test payment",
        "referenceNumber": null,
        "source": null,
        "contractSource": null,
        "endToEndId": "20240103-E000003",
        "valueDate": "2029-12-02",
        "postingDate": "2029-12-02",
        "insertedDateTime": "2024-12-06T12:41:45.629822Z",
        "paymentServiceProviderCode": "SWIFT",
        "paymentTypeCode": "ACC2SWIFT",
        "preferredPaymentScheme": null,
        "selectedPaymentScheme": null,
        "chargeBearer": "DEBT",
        "settlementStatusCode": null,
        "settlementErrorCode": null,
        "settlementDate": null,
        "settlementPaymentScheme": null,
        "returnStatusCode": null,
        "returnReason": null,
        "returnComment": null,
        "returnSettlementDate": null,
        "cancellationRequestStatusCode": null,
        "cancelRefuseReason": null,
        "cancelReason": null,
        "amlDeclineReason": null,
        "amlMonitoringEnabled": null,
        "lastStatusRequestDate": null,
        "residencyCountryCode": "EE",
        "counterpartyOriginalIban": null,
        "fxPaymentFlag": false,
        "fxPayment": null,
        "paymentParties": [
            {
                "paymentPartyId": "PAYM-57584",
                "typeCode": "COUNTERPARTY",
                "name": "Ben Eficiary",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "EE871275295834652820",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "EE",
                "financialInstitutionId": {
                    "value": "PARXEE22XXX",
                    "type": "BIC"
                },
                "address": {
                    "street1": "First street 123",
                    "street2": "Second street 321",
                    "cityCounty": "Some city",
                    "stateRegion": null,
                    "zip": "06777",
                    "countryCode": "EE",
                    "addressLine": "First street 123, Second street 321, Some city, EE, 06777",
                    "addressTypeCode": null
                },
                "roleCode": "BENEFICIARY",
                "partyIdentification": null
            },
            {
                "paymentPartyId": "PAYM-57585",
                "typeCode": "OUR_PARTY",
                "name": "Test Payer",
                "personTypeCode": "P",
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "XX46XXXX99999000000000000111011",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "XX",
                "financialInstitutionId": {
                    "value": "ICECLOUDXXX",
                    "type": "BIC"
                },
                "address": {
                    "street1": "Tartu mnt 32-25",
                    "street2": null,
                    "cityCounty": "Harjumaa",
                    "stateRegion": "Tallinn",
                    "zip": "10115",
                    "countryCode": "EE",
                    "addressLine": "Tartu mnt 32-25, Harjumaa, EE, 10115",
                    "addressTypeCode": null
                },
                "roleCode": "PAYER",
                "partyIdentification": {
                    "identificationTypeCode": "NATIONAL_IDENTIFICATION_NUMBER",
                    "identificationValue": "314-494-5904"
                }
            }
        ],
        "fees": [],
        "paymentSchemeElements": [],
        "fileImportLineNumber": null,
        "purposeCode": null,
        "labels": [
            "COUNTERPARTY_EE"
        ]
    }
}
initialise payment
Change the draft payment
Cancel the draft payment
Confirm the draft payment
{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountId": "ID-21508"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Ben Eficiary",
            "accountNumber": {
                "value": "EE871275295834652820",
                "type": "IBAN"
            },
            "financialInstitutionId": "PARXEE22XXX",
            "address": {
                "street1": "First street 123",
                "street2": "Second street 321",
                "cityCounty": "Some city",
                "zip": "06777",
                "countryCode": "EE"
            }
        }
    ],
    "money": {
        "amount": 1,
        "currencyCode": "DKK"
    },
    "details": "Test payment",
    "endToEndId": "20240103-E000003",
    "chargeBearer": "DEBT"
}

Create domestic UK payment

Use case

In this scenario, we will create a domestic UK payment from Tuum BC (Banking Circle) UK account to another UK account. In this case, the payment will be created with the ACC2LOCAL payment type.

Use case data
API parameters with values

Our party details give the information about the sender of the payment. In this example, the payment is initialised from the Tuum bank account with 21824474 BBAN.

The payer's account country is the UK. Note: the payer's bank account financial institution id is the bank's sort code.

Counterparty details.

The payment receiver account country is the UK. Note: the payment receiver financial institution id is the bank's sort code.

Payment amount and currency.

Payment details.

The payment also includes non-transferrable data, such as contractSource. Note: the contractSource parameter is optional.

Sample API call

To initialise the payment, use the following endpoint: https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise

Learn more about the initialise payment endpoint endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountNumber": {
                "value": "21824474",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "608382"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Robert Receiver",
            "accountNumber": {
                "value": "00001781",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "040300"
        }
    ],
    "money": {
        "amount": 15,
        "currencyCode": "GBP"
    },
    "details": "Test payment with both parties with BBAN for domestic UK payment",
    "contractSource": {
    "sourceName": "Test System",
    "sourceRef": "1234",
    "contractNumber": "test"
  }
}
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDVUMTM6MTA6MDciLCJleHAiOjE3MzM0MDQyMDcsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.T2c1I6mazgGm2gT6p3lqaXxb2qj9OTPiluP5XnJr0zU' \
--header 'Content-Type: application/json' \
--data '{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountNumber": {
                "value": "21824474",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "608382"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Robert Receiver",
            "accountNumber": {
                "value": "00001781",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "040300"
        }
    ],
    "money": {
        "amount": 15,
        "currencyCode": "GBP"
    },
    "details": "Test payment with both parties with BBAN for domestic UK payment",
    "contractSource": {
    "sourceName": "Test System",
    "sourceRef": "1234",
    "contractNumber": "test"
  }
}'

Sample response

Below you will find the response to the sample request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "paymentId": "PAYM-21826",
        "accountId": "ID-17598",
        "directionCode": "OUT",
        "statusCode": "INSERTED",
        "errorCode": null,
        "money": {
            "amount": 15.00,
            "currencyCode": "GBP"
        },
        "details": "Test payment with both parties with BBAN for domestic UK payment",
        "referenceNumber": null,
        "source": null,
        "contractSource": {
            "sourceName": "Test System",
            "sourceRef": "1234",
            "contractNumber": "test"
        },
        "endToEndId": null,
        "valueDate": "2029-11-27",
        "postingDate": "2029-11-27",
        "insertedDateTime": "2024-12-05T12:21:07.149343Z",
        "paymentServiceProviderCode": "BC",
        "paymentTypeCode": "ACC2LOCAL",
        "preferredPaymentScheme": null,
        "selectedPaymentScheme": null,
        "chargeBearer": null,
        "settlementStatusCode": null,
        "settlementErrorCode": null,
        "settlementDate": null,
        "settlementPaymentScheme": null,
        "returnStatusCode": null,
        "returnReason": null,
        "returnComment": null,
        "returnSettlementDate": null,
        "cancellationRequestStatusCode": null,
        "cancelRefuseReason": null,
        "cancelReason": null,
        "amlDeclineReason": null,
        "amlMonitoringEnabled": null,
        "lastStatusRequestDate": null,
        "residencyCountryCode": "FI",
        "counterpartyOriginalIban": null,
        "fxPaymentFlag": false,
        "fxPayment": null,
        "paymentParties": [
            {
                "paymentPartyId": "PAYM-57538",
                "typeCode": "COUNTERPARTY",
                "name": "Robert Receiver",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "00001781",
                    "type": "BBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "GB",
                "financialInstitutionId": {
                    "value": "040300",
                    "type": "SORT_CODE"
                },
                "address": null,
                "roleCode": "BENEFICIARY",
                "partyIdentification": null
            },
            {
                "paymentPartyId": "PAYM-57539",
                "typeCode": "OUR_PARTY",
                "name": "Daria Core",
                "personTypeCode": "P",
                "givenName": "Daria",
                "surname": "Core",
                "accountNumber": {
                    "value": "DK9189000021824474",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "DK",
                "financialInstitutionId": {
                    "value": "SXPYDKKK",
                    "type": "BIC"
                },
                "address": {
                    "street1": "Maakri",
                    "street2": null,
                    "cityCounty": "Tallinn",
                    "stateRegion": null,
                    "zip": null,
                    "countryCode": "EE",
                    "addressLine": "Maakri, Tallinn, EE",
                    "addressTypeCode": null
                },
                "roleCode": "PAYER",
                "partyIdentification": {
                    "identificationTypeCode": "NATIONAL_IDENTIFICATION_NUMBER",
                    "identificationValue": "EE1234567"
                }
            }
        ],
        "fees": [],
        "paymentSchemeElements": [],
        "fileImportLineNumber": null,
        "purposeCode": null,
        "labels": [
            "COUNTERPARTY_GB"
        ]
    }
}

Result

The draft payment has been created with a paymentId: PAYM-21826 and the statusCode: INSERTED.

Possible next steps

After creating a draft payment, you have the following options:

  1. Change the draft payment - modify the draft payment.

  2. Cancel the draft payment - discard the draft payment if it is no longer required.

  3. Confirm the draft payment - complete payment to initiate further payment processing.

Find person accounts

Use case

In this example we will review how to find existing accounts by personId.

Use case data
API parameters with values

Sample API call

To find person accounts, make the following API call.

https://account-api.sandbox.tuumplatform.com/api/v5/persons/{personId}/accounts

See more information about the endpoint in the Tuum developer portal.

Find person account

GET https://account-api.sandbox.tuumplatform.com/api/v5/persons/{personId}/accounts

See more information about this in the Tuum developer portal.

Sample request

Below is the example request of the call for finding person accounts.

Sample request

Below you find an example response body to the API call above.

Response

Result

The person account information is fetched.

Searching for accounts that belong to the person ID-3392.

...persons/ID-3392/accounts...

Requesting to display the search results on the first page; the page size is 5.

...?pageNumber=1&pageSize=5

{
    "errors": null,
    "validationErrors": null,
    "data": {
        "values": [
            {
                "accountId": "ID-1283",
                "personId": "ID-3392",
                "accountTypeCode": "VIRTUAL",
                "activationDate": "2023-06-26",
                "accountName": null,
                "personName": "Trevor Harry Tuum",
                "statusCode": "ACTIVE",
                "iban": "GB05XXXX04030100000462",
                "bic": "LHVBGB2LXXX",
                "defaultCurrencyCode": "GBP",
                "tenantCode": "MB",
                "residencyCode": "GB",
                "customerGroupCode": "GROUP_B",
                "personTypeCode": null,
                "intraOrgCode": null,
                "accountTypeSetupCode": "STANDARD",
                "serviceProviderCode": "TUUM",
                "interestMethodAssignmentCode": null,
                "accountClassCode": null,
                "balances": [],
                "masterAccountId": "ID-1279",
                "accountNumbers": [
                    {
                        "accountNumber": {
                            "value": "00000462",
                            "type": "BBAN"
                        },
                        "countryCode": "GB",
                        "financialInstitutionId": {
                            "value": "040301",
                            "type": "SORT_CODE"
                        },
                        "defaultCurrencyCode": "GBP",
                        "accountNumberId": "ID-1144",
                        "accountId": "ID-1283",
                        "financialInstitutionIdTypeCode": null,
                        "statusCode": "ENABLED"
                    }
                ],
                "taxResidencyCountryCode": "GB",
                "jurisdictionCountryCode": "GB"
            },
            {
                "accountId": "ID-1282",
                "personId": "ID-3392",
                "accountTypeCode": "INTERNAL",
                "activationDate": "2023-06-26",
                "accountName": null,
                "personName": "Trevor Harry Tuum",
                "statusCode": "ACTIVE",
                "iban": "XX54XXXX99999000000000000001257",
                "bic": "ICECLOUDXXX",
                "defaultCurrencyCode": "EUR",
                "tenantCode": "MB",
                "residencyCode": "GB",
                "customerGroupCode": "INTERNAL",
                "personTypeCode": null,
                "intraOrgCode": null,
                "accountTypeSetupCode": "STANDARD",
                "serviceProviderCode": "TUUM",
                "interestMethodAssignmentCode": null,
                "accountClassCode": null,
                "balances": [
                    {
                        "balanceId": "ID-1209",
                        "accountId": "ID-1282",
                        "currencyCode": "EUR",
                        "balanceAmount": 0.00,
                        "reservedAmount": 0.00,
                        "overdraftLimitAmount": 0.00,
                        "defaultCurrencyCode": "EUR",
                        "availableBalanceInDefaultCcy": 0.00,
                        "negativeBalanceStartDate": null,
                        "availableBalanceAmount": 0.00
                    }
                ],
                "masterAccountId": null,
                "accountNumbers": [],
                "taxResidencyCountryCode": "GB",
                "jurisdictionCountryCode": "GB"
            },
            {
                "accountId": "ID-1281",
                "personId": "ID-3392",
                "accountTypeCode": "INTERNAL",
                "activationDate": "2023-06-26",
                "accountName": "Internal BO",
                "personName": "Trevor",
                "statusCode": "ACTIVE",
                "iban": "XX17XXXX99999000000000000001244",
                "bic": "ICECLOUDXXX",
                "defaultCurrencyCode": "EUR",
                "tenantCode": "MB",
                "residencyCode": "GB",
                "customerGroupCode": "INTERNAL",
                "personTypeCode": "P",
                "intraOrgCode": null,
                "accountTypeSetupCode": "STANDARD",
                "serviceProviderCode": "TUUM",
                "interestMethodAssignmentCode": null,
                "accountClassCode": null,
                "balances": [
                    {
                        "balanceId": "ID-1208",
                        "accountId": "ID-1281",
                        "currencyCode": "EUR",
                        "balanceAmount": 0.00,
                        "reservedAmount": 0.00,
                        "overdraftLimitAmount": 0.00,
                        "defaultCurrencyCode": "EUR",
                        "availableBalanceInDefaultCcy": 0.00,
                        "negativeBalanceStartDate": null,
                        "availableBalanceAmount": 0.00
                    }
                ],
                "masterAccountId": null,
                "accountNumbers": [],
                "taxResidencyCountryCode": "GB",
                "jurisdictionCountryCode": "GB"
            },
            {
                "accountId": "ID-1279",
                "personId": "ID-3392",
                "accountTypeCode": "CURRENCY",
                "activationDate": "2023-06-19",
                "accountName": null,
                "personName": "Trevor Harry Tuum",
                "statusCode": "ACTIVE",
                "iban": "GB72XXXX04030000000986",
                "bic": "LHVBGB2LXXX",
                "defaultCurrencyCode": "GBP",
                "tenantCode": "MB",
                "residencyCode": "GB",
                "customerGroupCode": "GROUP_A",
                "personTypeCode": null,
                "intraOrgCode": null,
                "accountTypeSetupCode": "STANDARD",
                "serviceProviderCode": "TUUM",
                "interestMethodAssignmentCode": null,
                "accountClassCode": null,
                "balances": [
                    {
                        "balanceId": "ID-1212",
                        "accountId": "ID-1279",
                        "currencyCode": "EUR",
                        "balanceAmount": -5.00,
                        "reservedAmount": 0.00,
                        "overdraftLimitAmount": 0.00,
                        "defaultCurrencyCode": "GBP",
                        "availableBalanceInDefaultCcy": -4.24,
                        "negativeBalanceStartDate": "2023-07-01",
                        "availableBalanceAmount": -5.00
                    },
                    {
                        "balanceId": "ID-1206",
                        "accountId": "ID-1279",
                        "currencyCode": "GBP",
                        "balanceAmount": 0.00,
                        "reservedAmount": 0.00,
                        "overdraftLimitAmount": 0.00,
                        "defaultCurrencyCode": "GBP",
                        "availableBalanceInDefaultCcy": 0.00,
                        "negativeBalanceStartDate": null,
                        "availableBalanceAmount": 0.00
                    }
                ],
                "masterAccountId": null,
                "accountNumbers": [
                    {
                        "accountNumber": {
                            "value": "00000986",
                            "type": "BBAN"
                        },
                        "countryCode": "GB",
                        "financialInstitutionId": {
                            "value": "040300",
                            "type": "SORT_CODE"
                        },
                        "defaultCurrencyCode": "GBP",
                        "accountNumberId": "ID-1143",
                        "accountId": "ID-1279",
                        "financialInstitutionIdTypeCode": null,
                        "statusCode": "ENABLED"
                    }
                ],
                "taxResidencyCountryCode": "GB",
                "jurisdictionCountryCode": "GB"
            }
        ],
        "pageNumber": 1,
        "pageSize": 5,
        "endReached": true,
        "sort": null,
        "total": 4
    }
}
find person accounts
endpoint
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v5/persons/ID-3392/accounts?pageNumber=1&pageSize=5' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTBUMTQ6NTk6MDUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkwMDExNDV9.CDrDuZ-2fAgeA_7KEdHNbjYup1tD8Vgs_kwkkDZ7NOw' \
-d ''
https://account-api.{{env}}.{{domain}}/api/v5/persons/ID-3392/accounts?pageNumber=1&pageSize=5

Here, you can find one of the examples of how to create a draft payment using the initialise payment API endpoint.

Here, you can find one of the examples of how to create a draft payment using the initialise payment API endpoint.

Here, you can find one of the examples of how to create a draft payment using the initialise payment API endpoint.

 "typeCode": "OUR_PARTY",
 "accountNumber": {
      "value": "21824474",
      "type": "BBAN"
            }
"accountNumberCountryCode": "GB",
"financialInstitutionId": "608382"
"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
     "value": "00001781",
      "type": "BBAN"
            }
"accountNumberCountryCode": "GB",
"financialInstitutionId": "040300"
"money": {
        "amount": 15,
        "currencyCode": "GBP"
    }
 "details": "Test payment with both parties with BBAN for domestic UK payment"
"contractSource": {
    "sourceName": "Test System",
    "sourceRef": "1234",
    "contractNumber": "test"
  }

Here, you can find one of the examples of how to create a draft payment using the initialise payment API endpoint.

Export requested QMR as PDF

Here, you will learn how to export the requested QMR as a PDF file in Tuum.

Use case

In this use case, we will demonstrate how to download a QMR.

Use case data
API parameters with values

The fileId parameter corresponds to the sourceRef used when .

...reports/files/ID-4359

Sample API call

To export the requested report as a PDF file, use the following endpoint: storage-api.sandbox.tuumplatform.com/api/v1/reports/files/{fileId}

Learn more about the find reports file by file ID endpoint in the Tuum developer portal.

Sample request

The sample request body is as follows:

No body request.

curl -L 'https://storage-api.sandbox.tuumplatform.com/api/v1/reports/files/ID-4359' \
-H 'x-tenant-code: MB' \
-H 'Accept-Language: en' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidGVzdGkgdGVzdCIsImVtcGxveWVlSWQiOiJJRC0xNDE3IiwidGVuYW50Q29kZSI6Ik1CIiwiZXhwaXJ5RFRpbWUiOiIyMDI1LTEwLTIyVDA5OjQ3OjQ2IiwiZXhwIjoxNzYxMTI2NDY2LCJyb2xlcyI6WyJBRE1JTiIsIlNZU1RFTSJdfQ.IMr4SfkQJcqPVEnmfjXcXfdvQAhOrfVFepOaiWa9Lm8'

Sample response

Below you will find the response to the API request:

Response
%PDF-1.4
%����
1 0 obj
<<
/Creator (Apache FOP Version 2.11)
/Producer (Apache FOP Version 2.11)
/CreationDate (D:20251022080154Z)
>>
endobj
2 0 obj
<<
  /N 3
  /Length 3 0 R
  /Filter /FlateDecode
>>
stream
x��gPTY��{�
�M���I��$�$9�
t7��*���""IDp��!�(*�T�idP��QDEei�1�5?��jk�l��}u�w�}u��W��!&�S`}��<_g;FpH(�`	�#X)I�~N�`5��o�~@��}�z�9RL��c3.��N4o�{�����e�V9��Ia��U�a'��Yg�&�{�2��:�*���3����j�}�W�Xb��O8r�)�f����_�Wa%�V�/-��m�����rx�6��l�?��JY}�����>����Z��	�^�Wn[9�� J�ʩ����޿r�'�*@�+���-�\��Ѐ��@�C`
,�
pn�����@H<���ݠ�RpT�:��A8��p\��=0
&L�W`��a D�� H҆!&d9B�/�C�J��C{�"����f�'�<t�	
C��Ih��#`"L��`5Xf¶�;�o���d8·�Õp|���Q���A@��a��B�"�<�ND!�рhC� �|�<�#��"H���d!��;���j�)d'�y9�\@~E�P�(m�9���Fe�
P�&T�j5�z�F��hu�)���C砋�G�����a�z��Ha�1�/L&S��œ�\Œ`�1����
�r�y�
l�;���.�Dq�8s����•�q=���i�2^����������6�5��[��D0#�b	���3��I�G"��E�'�ӈ��'�����oI$�ɆJJ%�'5�����>�PEtE\E�"�"5"�"#"��8�*ٖ���M� �#�%ϋ�D�D�E#Dw�ֈ�]���y�%�������`(jG
��O9N�J��"��T{*����H�F���i�4WZ���#m�� N7���(Χ#�jtWz��~�>F�$!'a+���'�&1"�$)#i#ɑ,�l���$Őr���: �%�T)�%�#�!}T����M�B�%S(sV�,,�%�+�#{\vPvQN^�Y.I�J�ܼ<]�F>N�\�W~N��`��P�pI�%C�a�H`T2����.�i���C��J�JJyJ�JO���L�(�r�>�O��*�*�Uq�L��ê�Kj�jAj{պ�f�%�]ճ�[՟h�4�5�54h�5���G4�i�Z�Z1Z5Zw�am�X�#���P���q�5��!�����L��u=t�t�t_�������o���ߨ?a@1p3�3�1��PːeXc�`=i��������iq��=4�{�5�3�bbj�3i3�3U1
7�5gҘ��b�
3���Y�����&��g���б��h��ݠ����qÔ��e�e�%ߊanůo�ha�`��Fنm�d3c�ig{�����Ϯ�n���~��e���C�Ð#�1���񙓒S�S�ӂ��s��e�����qW9W�k�낛���~w���{��s-�G�'���y���FՍ܍]^�����Sou�d�_|�>�>5>/|
|���Q���������/��H�$�6.9����w���
�ń�6�.nr�th�t�qXA��f�͙�on�ޒ���V�ֈ���Q�A�-�#�""#]#k#X��ìWlv9{�c�)��DYF�E�F[F�������������}�W��2~%!(�=��x�K��s���o��6���T��O6O>���s�5�@)�S�Si���4����&ӭ�k�?df����ffie�˚�v�>���a��mWܾ{����;���;�r�s�s�w9�:��;~��<����w{�������ʟ������^��^��u�#���~h��}U���o�U}.f������V�G�*1)9Z�.喎�>p�L�,�l����rFya��C[ݬ0��;�?�v�_�Q�]�RUZ��:�z�Ʈ��V�v_������6G�����>�=��޹��A���8�x�����'�'�����������=��l���"�R�
���Ν;}�G���t�����Eg���3/
�i��پs�sm?��\�A�(�:�:�b���!�������X�t������j.�_,������\ʾ�x9�����+S}[�&�_}���?t��ڍ�Nׯ�\�ay��M��o1ou�6��9h<�q��Nǐ�P�]ӻ�����o���r�����n�n{86��~8�(�ћ�鏗'v=A=)|*���쳆_5m��/N:L>�{>1Śz�[�o���_�^T�(�4��^�s���r���WI���~���������cp!xa�
��ʟ�o�ޞ|g��o�{������K��>����8�)���r�g���/�_z��}����"t�]@�B����. t�]@�B�����]`�?�j ������q��jԢ ��r2S��mֶ�,^ltL�:FZ
���p�k�5&
endstream
endobj
3 0 obj
2472
endobj
4 0 obj
[/ICCBased 2 0 R]
endobj
5 0 obj
<<
  /Type /Metadata
  /Subtype /XML
  /Length 6 0 R
>>
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?><x:xmpmeta xmlns:x="adobe:ns:meta/">
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:about="">
            <dc:format>application/pdf</dc:format>
            <dc:language>x-unknown</dc:language>
            <dc:date>2025-10-22T08:01:54Z</dc:date>
        </rdf:Description>
        <rdf:Description xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
            <pdf:Producer>Apache FOP Version 2.11</pdf:Producer>
            <pdf:PDFVersion>1.4</pdf:PDFVersion>
        </rdf:Description>
        <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
            <xmp:CreatorTool>Apache FOP Version 2.11</xmp:CreatorTool>
            <xmp:MetadataDate>2025-10-22T08:01:54Z</xmp:MetadataDate>
            <xmp:CreateDate>2025-10-22T08:01:54Z</xmp:CreateDate>
        </rdf:Description>
    </rdf:RDF>
</x:xmpmeta><?xpacket end="r"?>

endstream
endobj
6 0 obj
1004
endobj
7 0 obj
<< /S /D >>
endobj
8 0 obj
<< /Length 9 0 R /Filter /FlateDecode >>
stream
x���w�D���+�q�x�f&�$�m[W���Z�A}`K��\�z��!�vvfځ1��۞���{?½�qDI,~�rQ�4*���܍>��SŠ(I9�x�Kֽ)?�G1�J��67�߈Ż���Q�4�yAƭ���x��1�,�h��$M���YT��YNƌ���X���FY�����#��(-�Dܑ��h�yT$9�4OII�(fO�<���'�x���K�&,�%+˄rq㧟p1��~-�QGy���b};��w����7��q�F)�]\�^}�����1�c��H"�ߑ__��RFID���_���+q��x{\�m�~o^�N�������h^G�r�w���LL�}x*_��ޛw�_��v��%U��j�9a"x�8���Wh,��{����I)����.�K���{_�?'T��Y���}M"��=�p,WƑ��ݚ;y���B@£<�˒+������Z���x����J��M�N�˵ێ|�[��V�����9Z��iv���YT��@灟|V�x�x�q+��'w��r3�]ڽ>����ǣ@ć�x�fųCt��a�v\珸��O��4�=�_G�r���V�i�&����������Q;�eT�Ԃ���$�Y3Śx�iY>�����Tek���l=�
�>aK�)�~^Q��$� �(�+SӮ��}jz��;eJE��'�!񈢤2d�B	S\K�מrLǭ>h��7�I���r�:��j%qǽ��T�im�'yI<2�L��pH�Q�O�W��E���F����f6�T���Ba������d����Z�Y:�XK�~^-��*�'�):{����3%yx�ƒ8��������bx��ݙ�/Vw�f;�!�/�?��L*��@���~�U!���������8mAy�=߂Xۂ��jM.ě��yE�[-�W�ͶZ�������l��֓�<��y�p����r�$3@�$%NA{R����I�����I_/���&�[�y���C)��>��D�B�Y��!3B�!%PA����g�!����QmAˉl�,�/��l�$�[q]kE졪yD���An�,�)y
[�z��E�\�բ�}��̧Y}�R#3(l1��֨Anjd&j��)l5J�n
5����\��B�~��h�|FĂՋ�^��"���ޒ�(��yDk��s5�\?X�`��$*lO�А
O�f��|�/�S�]W��$-�:�4d�%�c �8Zm=���	��-0�)�
[�r�^C��	猓����yD��>DA ��C43A0!%Oa���of�	����i} Q�<b8��q%��\�L\I�SЮ�b�bÕ�����С�y�p�Y�A �ɇ,�)y
ۇ��C�\s��}�P�<b8E��"�ܴ�L�H�S�Z���Z��5�ٷ���c �S�5A �M��A��<��F���F�\c=���}�z�ԋ�^�F�-PD����Ըƒ@r�$3A�$%Oa[GO6,��kl����>�Ru�i��
��@�q��z`0��[`%RB�h��u��-pC1��ἵot� ��Cf�`BJ��6�$F�5LH�k��[�J�1étWA �͕,�+)y
ە(:��J�\s�}�P�<b8լ�!��|�L|H�S�>���>��5�ط`E�c �S�-A �M��A��<��E)���E�\s΁}�P�<b8��Q#����L�H�S�j��w
5�����ؗ��[$�"���}Q�<b85��$��,�L,I�SؖT�'���56��Á���+��30���㌵��>`L'ط�J��*l%*�z
%�&�3�[��b�1�yk��An'�����<mB)E�5LH�k��[�J�1étWA �͕,�+)y
ە:��J�\s�}�P�<b8լ�!��|�L|H�S�>���>��5�ط`E�c �S�-A �M��A��<��E���"}�9���(l1��֨Anjd&j��)l5��w
5������O#V/�z�������q1��XAn�d&���)lK*ѓ
K���q؋�\N63��|��~����V?�f*��@�q��zb0�L�[`'RB�e1z��D݄sƉ}�P�<�����V�@2��OY R�
1�]C�����Ⱦ�(u��R��(
� ���,�+)y
ەR�bÕ����#�С�y�p�Y�C ���� �����}(C6|H�k�5�o����@��5Z�@���	�)y
[�rt\C����#����y�p
[�F ���� �����ը@�5�H�klG�弾֗��rL�4�o����@�����Ar��6#/R��]��''��u5�s��g)�=q\�93������^n�xh��0%a�
C4L�hME{g���WO�3v�N�Ƿ���7 9���@J�*l%J�
%�'����u�XT�'[��<�4���cM�w�� ���cA�H�S�R��	R��5��zI#��p��n�+qi{�^�K��j:7ِ9�2����w[5`L'�j�`GJ�¶#�>h�Q7���-pC1����ot� ��Df�`BJ��6���0!}�����@��y�p*]�J ���� �����])��{m�J
��PJ�����D1�o����v�A�G:��s��ڂJ��G��x(�נ6.���4��j�!��uؒ�t����X�xV���)��]5%y�E��5�������#
endstream
endobj
9 0 obj
2788
endobj
10 0 obj
<<
  /Resources 11 0 R
  /Type /Page
  /MediaBox [0 0 595.275 841.889]
  /CropBox [0 0 595.275 841.889]
  /BleedBox [0 0 595.275 841.889]
  /TrimBox [0 0 595.275 841.889]
  /Parent 12 0 R
  /Contents 8 0 R
>>
endobj
13 0 obj
<< /Length 14 0 R /Filter /FlateDecode >>
stream
x��Qs�F���+�2���\�N�I�i��M/�^`��j%�H�������|l�b����$G�x���ӄ3W�L�I�q'#6[N>��s&BGz���Q�h����O�}�o����#����}\'p� d��e�Ő;��%�^8\
WzR��pBD��T�|�|�������^��+�&�p�0����-&S��PJ��c��+|%� �o�O��a�F̓�ᑈ"ɕ���.&���'i��N�����o&��kp�k���[����co'�\N^}�3�����S�����/�/~}�WIW��_�d�ŷ�"{�~?�����}���a�������:JG�K�b�4�]���Y����Я�r���"e�����Ո����-�-ˋ�#STI��t}��ɟ�%���!��ݮ/�����Ń���h<��rU������>�'o]�b���}}+�]��B����o5��%*�T�V��߱6�.���U���q��?N�{{�f�:���*���yv;O�/ɍ�^ù�BDNp��-��v��+s��UzQ��B4�|�����B-�Z{V
�6
A%��B�=��5�sƑ�a ��t��a�1a���g�$/w���������/�����/�(\u+�E�T�o�n�6�*Nm!�����]�=��0��ap;y���H'���R���e��u�V)F�h����Ҳ�0�@�(=���R�dP%ɡJP����v�ʴ"���;�}��DYL�b����5QxD�Y,İ⮴&`�:�&
F�&#T��&/�5��{����	��Z���\����[&i�.V��n��O*6d��B��e�.�q��g����I;Q �Dԇ�B�N*�%(���Q+��P$(R�K�a�W�d��g�]:�͜k�)Q�C�Y,İ>��z��Q�(���P�ڌ�f3jkF�nF�m�f����[����J�o�M��/��5{�^͒�&�>�N*z1��+�	�܉���ը�)Bg7ܩ�;ɚ;m[�g�qzc>�]��<��B+�J?F��?�`?2B5j?����ւ�b��H8��V�U�{G਋/�Q8�*��*	4qC�z%�B!b�b!�s�.�#pԅ.Q8�.��.yh�.u:R�(F
�(&��x�侑H@"�,bX�W�8G]��#����q����o��cG����_�/Y���{�D.�����l�L%#Z����%�c��C�Y,İ>�W���Q��(���T�ێ"�vÎ�ݸ$,�{1�ܫ�	��.�����Hը�)���'������� ��l�X�ae[�H�u�H$��HF���HM�p�>� ���X�aE\�J�u�J��JF�ƭJ]�P��� Q���X�a�\�K�u�K��KF�ƭK>z��K� �����Nd1��}���D�Y,İ�2'p��0'
G0'#U�6�}�0���Ն����&�\-��vD��f�����1���lL�%#Z㶥]ް%�c��C�Y,İ�T���Qǒ(���T�ڎ���n�ѳC��%r�b!��{�?�#pԅ?�8�?��?q4}ßzC����b!��m�#�#pԅ#Q8�#��#ItzÑ�C�D "�b!�q�*�#pԅ*Q8�*��*�h�*�=��BĜ�B+�*]G�]�p]2R5n]R��.u:��W�!�9���b���� �ijX�a%^eN�uaN�`NF��mN!��aN��:�k�}=����l�^�������H�!�,��]O�7 D���P������<h���S���T�8z��8]|󿲝8cW��<M�q�V٧�x�%���C�Yg�����a?"`?F>�i?�C2:�>G�5ԇ�U��	{�or�S����b!�v"�nC"nc�ncp�i�Mk��L�����z���]-V�������b!zW"XCu(D@u�|�����M�C{3L��	,ᰟ��,.Ob���x�&���n��Ǣ��"����X���D�ְ
�#gk?��(�(�~Zۏ���h�Y��8{��P@D�Y,D��"@k������ϡ�h]���v�ٺ���Ԧe�H8����y@�`
��1�q��s��'B�2��B�2�3$��B��6 D���P���������Ѵ��޴L��f�}��M�!�1�q��s�i�hZ��>u��N]}�g����Eo2�J���t��n�N�?���]�@�`
�2�q�:$�됇.f�PkRN1��F $1���X�޵D���
�#g�=��	/��o�!q�$�X���D��p
p#p��hT���o�`�`�X��UD��P
P#g�:'�y"�-�tZ��
�g���Po4���]q@�`
š�1�q��#�*�rѯ�i�8a�A����C�Y,D��"@DSxHD@x�|���8}�Z�a<OߚC�If���
���6"�6F>�6��h;��Xo�!a�`�X��UD��P
P#g�:�[s��&d�N��VQyު�AvH`"�,�w �5\�B\���ٺ?�Bڔ�B&�#V��[�vX��P(�.���u�^'Y<_�nT&�H�X�^�Z�.�mF��$ �HH}X-�J�(0A��h�S�(��U/�KV�FiHV�N�/�+;՚u5϶�	;mZ���\?9V^�8G-8�̊���H�8ͪա��E36ݪ*��M�������j�[���ڮR��#;�h�{�n�uV?�w�	M$���v�)�s��.e@�=���{��V�����Kjko�T�o���GU�
��bw����
��ã �)����W!f
endstream
endobj
14 0 obj
2844
endobj
15 0 obj
<<
  /Resources 11 0 R
  /Type /Page
  /MediaBox [0 0 595.275 841.889]
  /CropBox [0 0 595.275 841.889]
  /BleedBox [0 0 595.275 841.889]
  /TrimBox [0 0 595.275 841.889]
  /Parent 12 0 R
  /Contents 13 0 R
>>
endobj
16 0 obj
<< /Length 17 0 R /Filter /FlateDecode >>
stream
x��[O�0���)��|�<n�����]�S/P*�}�ٹ4I����E��4��c����R;/E�m��2�bc,���,�"f0
I��e�,�$�%"��<,��3��ee�DS��Aqi�~�P��Њ1��1�p��7E	�Fi��F1��y�	�2Ǒ4�!RQ�S��+��(��†k���R�	���}��+M�1�"���Y˩r��+E���h�{��d6��=Dw����O.��+�	t}�E��JD	A�?��cF4fq�>Fwg���K�{�}>G���Eg�ER���{Ի�.z��b��3oe)5��ij�2N�$�F�(�5�Vդ��P�C��|���G��I�䒅�Ob�׳d����v��є_�-Kӓ��&����JUJ6�uťۧT�־�5SmRr}*�Iڱ��_���"��.�-����~ƶ�����r��D	O)gݾ==�|֟�����Dq��[M�0-:�nrn$!�&�d��k���j�z]��f�hG��j
�G�چ#��GV�#������T@�#„�h8��s���mEB:�&-sG";jү��S%/�\WYP�EHY��Z�ք@זsJF�G�͒DK���M�XCH+�I���Qsq�z��x>����…W|�:t�qž\]F�Q*��k�@����$R�D�$H�m%���"L���l���T|�:t�qŶ\"F�Q)#�H�P��D$H�m%���j��i4Do��h8WI!�Ax����r�F-���@%�Bu�*IqPI��F�tZ�k�ҫc�u6�
�;uQq�:tġ4�QF�QF�؍�($PF�X��2j�7�c��P[T ��}�D1�>y�<o
b��8���^��
0��0��8�p������U�����n�G[���B���֡#5�m�90�Z�9.#PG�P��:�&v�<��ڷ� �u��n��o�p����@&�Ru�2���n�I�Z�D��q��m�&�8jgSI �j�:m�$`~w�PZ��b�y���~>�������erA�B\;��B�C���<���?�
A���^��Q9VnE_�y'�"��\�������HL��4�����ؚ
endstream
endobj
17 0 obj
1117
endobj
18 0 obj
<<
  /Resources 11 0 R
  /Type /Page
  /MediaBox [0 0 595.275 841.889]
  /CropBox [0 0 595.275 841.889]
  /BleedBox [0 0 595.275 841.889]
  /TrimBox [0 0 595.275 841.889]
  /Parent 12 0 R
  /Contents 16 0 R
>>
endobj
19 0 obj
<<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Times-Bold
  /Encoding /WinAnsiEncoding
>>
endobj
20 0 obj
<<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Times-Roman
  /Encoding /WinAnsiEncoding
>>
endobj
12 0 obj
<< /Type /Pages
/Count 3
/Kids [10 0 R 15 0 R 18 0 R ] >>
endobj
21 0 obj
<<
  /Type /Catalog
  /Pages 12 0 R
  /Lang (x-unknown)
  /Metadata 5 0 R
  /PageLabels 22 0 R
>>
endobj
11 0 obj
<<
  /Font << /F7 19 0 R /F5 20 0 R >>
  /ProcSet [/PDF /ImageB /ImageC /Text]
  /ColorSpace << /DefaultRGB 4 0 R >>
>>
endobj
22 0 obj
<< /Nums [0 7 0 R] >>
endobj
xref
0 23
0000000000 65535 f 
0000000015 00000 n 
0000000141 00000 n 
0000002698 00000 n 
0000002718 00000 n 
0000002751 00000 n 
0000003844 00000 n 
0000003864 00000 n 
0000003891 00000 n 
0000006753 00000 n 
0000006773 00000 n 
0000012008 00000 n 
0000011820 00000 n 
0000006998 00000 n 
0000009918 00000 n 
0000009939 00000 n 
0000010165 00000 n 
0000011358 00000 n 
0000011379 00000 n 
0000011605 00000 n 
0000011712 00000 n 
0000011894 00000 n 
0000012144 00000 n 
trailer
<<
  /Root 21 0 R
  /Info 1 0 R
  /ID [<73B0A27EF403BFFD8616203D63F89511> <73B0A27EF403BFFD8616203D63F89511>]
  /Size 23
>>
startxref
12182
%%EOF

The response may appear as raw code. To view it as a PDF, save the response as a PDF file or use a download tool, then open it with a PDF viewer.

Result

As a result, the requested QMR was downloaded.

checking the report generation status