Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 200 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...

Loading...

ACCOUNTS

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Reports

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...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

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.

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.

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.

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

Learn more about the endpoint in the Tuum developer portal.

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 .

create customer credentials
header parameters

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.

Sample request

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

https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh
curl -X POST 'https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTA6MDM6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1Mzg2MDF9.vOLapdiXflbGV4c2pJnziQzgJzP1MYPPBcdk4wIZdoM' \
-d ''

This POST request does not have a body.

Sample response

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

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTA6MDM6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1Mzg2MDF9.vOLapdiXflbGV4c2pJnziQzgJzP1MYPPBcdk4wIZdoM"
    }
}

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.

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

Learn more about the endpoint in the Tuum developer portal.

refresh JSON token

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

Use case data
API parameters with values

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

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.

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.

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

The roles and privileges combination was obtained from the endpoint.

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

Learn more about the in the Tuum developer portal.

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 example
endpoint
Export selected roles

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 role codes we're exporting roles and privileges for are: ACCOUNTANT and TEST_LT.

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.

Sample request

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

{
  "roleCodes": [
    "ACCOUNTANT",
    "TEST_LT"
  ]
}
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"
  ]
}'

Sample response

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

Response
{
    "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
            }
        ]
    }
}

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.

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.

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.

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.

Result

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

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

Learn more about the in the Tuum developer portal.

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

Use case data
API parameters with values

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

Learn more about the in the Tuum developer portal.

"roleCodes": [
    "ACCOUNTANT",
    "TEST_LT"
  ]
endpoint

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.

All roles and privileges from the 
response of the export done before.
example of exporting selected roles
endpoint

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:

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.

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.

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.

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

Learn more about the endpoint in the Tuum developer portal.

Response
{
"username": "employee_username",
"password": "employee_password"
}
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"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDMtMDhUMDg6NDg6NDkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2NzgyNjUzMjl9.G7rqNTJbeyMdMy1ZGwu1G7JRSvwAg084IiBYhOEz4I8"
    }
}
Mandatory parameters
Optional parameters
authenticate employee

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.

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.

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.

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

Learn more about the endpoint in the Tuum developer portal.

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

authenticate customer
Create customer credentials

About authentication

Tuum has two different API endpoints for authentication:

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:

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.

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.

Invalidate customer credentials

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

Sample request

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

{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}
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"
}'

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

Sample response

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

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

Result

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

Optional parameters

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

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:

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:

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.

About cookbooks

Getting started

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:

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

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

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.

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.

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.

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.

Mandatory parameters

To perform an authorised API call, you must use two header parameters.

  1. x-auth-token,

  2. x-channel-code.

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

x-channel-code

Use one of the following values for the x-channel-code HTTP header parameter:

  • SYSTEM- to perform API calls with the x-auth-token of the digital identity of your employee.

  • SELFSERVICE- to perform API calls with the x-auth-token of the digital identity of the authenticated customer.

Example cURL with employee token

Example cURL with customer token

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.

,

.

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

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.

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 how to assign privileges.

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

Learn more about the in the Tuum developer portal.

Learn more about the in the Tuum developer portal.

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 .

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

Use case data
API parameters with values
POST call / Request ID
Same request ID
No or unique request ID

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 .

Authentication
Header parameters
Employee

See more about the in the Tuum developer portal.

Response
Response
JSON Web Token (JWT)
of employees
of customers
Export roles endpoint
Partial import endpoint
Complete import endpoint
here
endpoint
endpoint
header parameters

Person's Tuum id is ID-3419.

.../persons/ID-3419/accounts

The name of the account holder is Eleanor Rigby.

"personName": "Eleanor Rigby"

Eleanor is a resident of Great Britain.

"residencyCountryCode": "GB"

The standard price list is assigned to the account.

"priceListTypeCode": "STANDARD"

Eleanor is assigned to the GROUP_A customer group.

"customerGroupCode": "GROUP_A"

Currency account type.

"accountTypeCode": "CURRENCY"

The account currency code is GBP.

"currencyCode": "GBP"
Requests with same request ID
Requests without 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

{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}
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"
}'
{
    "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"
    }
}
{
    "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"
    }
}
{
  "accountTypeCode": "CURRENCY",
  "personName": "Eleanor Rigby",
  "customerGroupCode": "GROUP_A",
  "priceListTypeCode": "STANDARD",
  "residencyCountryCode": "GB",
  "currencyCode": "GBP"
}
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"
}'
{
    "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"
    }
}
{
  "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"
    }
}
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDMtMDhUMDg6NDg6NDkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2NzgyNjUzMjl9.G7rqNTJbeyMdMy1ZGwu1G7JRSvwAg084IiBYhOEz4I8'
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDMtMDhUMDg6NDg6NDkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2NzgyNjUzMjl9.G7rqNTJbeyMdMy1ZGwu1G7JRSvwAg084IiBYhOEz4I8' \
-H 'x-channel-code: SYSTEM' 
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWF0b21payIsInBlcnNvbklkIjoiSUQtMTAzOCIsInRlbmFudENvZGUiOiJNQiIsImV4cGlyeURUaW1lIjoiMjAyMy0wNy0yOFQxMjoyMDoyMSIsImV4cCI6MTY5MDU0NjgyMX0.wpNOfTan73vnqQNZo5cI99B2NWuVZ6wurW9JiO7z0x0' \
-H 'x-channel-code: SELFSERVICE'
Export-import roles
Authenticate employee
Create customer credentials
Authenticate customer
Refresh JSON Web Token
Invalidate customer credentials
RFC 4122
Tuum developer portal
About authentication
Authenticate employee
Create customer credentials
Authenticate customer
Refresh JSON Web Token
Invalidate customer credentials
Export-import roles and privileges
About header parameters
Mandatory parameters
Optional parameters
Create employee
Find employee
Find employee by username
Create private person
Create legal person
Activate person
Find person
Create person document
Update personal info
Update person address
Create customer group
Assign person to customer group
Create person representation
Close person representation
Inactivate person
Reactivate person
Forget person
Remove person restoration key
Create currency account
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
Reports
Request to generate account transactions report
Account transactions report parameters
Check report generation status
Download requested report
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
Add BIN
Create upper limit group
Create upper usage group
Create card design
Create debit card product
Activate card product
Create debit card application
Create credit product
Create credit card offer
Accept credit card offer
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
endpoint

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

We will create a record for a Test Employee.

Test Employee is a Customer Support representative.

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

The name of the tenant where new employee is created.

Sample API call

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

Sample request

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

{
  "username": "test.employee@bank.com",
  "email": "test.employee@bank.com",
  "firstName": "Test",
  "lastName": "Employee",
  "roles": [
    "CUSTOMER_SERVICE"
  ],
  "password": "Vys%k6;)#,bab",
  "tenantCode": "BANK"
}
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": "test.employee@bank.com",
  "email": "test.employee@bank.com",
  "firstName": "Test",
  "lastName": "Employee",
  "roles": [
    "CUSTOMER_SERVICE"
  ],
  "password": "Vys%k6;)#,bab",
  "tenantCode": "BANK"
}'

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": "test.employee@bank.com",
        "email": "test.employee@bank.com",
        "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
    }
}

Result

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

Activate person

Use case

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

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.

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.

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

We will search for the employee with the test.employee@bank.com username.

...api/v1/employees/username?username=test.employee@bank.com

Sample API call

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

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/username?username=test.employee%40bank.com' \
--header 'x-channel-code: BACKOFFICE' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjUtMDEtMDZUMjI6MzA6MjIiLCJleHAiOjE3MzYyMDI2MjIsInJvbGVzIjpbIkFETUlOIl19.N67SgRQZXpJHFCh-Ea6oAyQjlq86kl8vUkEyokn6bDw' \
--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": "test.employee@bank.com",
        "email": "test.employee@bank.com",
        "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.

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

Private person

The person's name is Trevor Tuum

The person's United Kingdom identification number is QQ123456B

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

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.

Sample request

Below is an example request body of the API call for creating a private 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"
        }
    ]
}
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"
        }
    ]
}'

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": {
        "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"
    }
}

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.

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:

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.

Sample request

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

Sample response

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

Response

Result

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

Find employee by ID

Use case

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

Sample API call

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

Sample request

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

Sample response

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

Result

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

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

Learn more about the endpoint in the Tuum developer portal.

The ability to use the 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.

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

Learn more about the endpoint in the Tuum developer portal.

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

Learn more about the endpoint in the Tuum developer portal.

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

Learn more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

Learn more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

Learn more about the endpoint in the Tuum developer portal.

No request body.

Response
"username": "test.employee@bank.com",
"email": "test.employee@bank.com",
"firstName": "Test",
"lastName": "Employee"
"roles": [
    "CUSTOMER_SERVICE"
  ]
"password": "Vys%k6;)#,bab"
"tenantCode": "BANK"
"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"
        }
    ]
create employee
activate person
activate person
find employee
create person

Legal person

"personTypeCode": "L"

The company name is New company Ltd

"name": "New company Ltd"

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

"addresses":
[
    {
      "addressTypeCode": "R",
      "street1": "Carnaby 10",
      "cityCounty": "London",
      "zip": "13347",
      "countryCode": "GB"
    }
  ]

The company registration number is 111111

"identificationNumber": {
"idNumber": "111111",
 "idCountryCode": "GB"
}
{
  "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"
    }
 }'
{
    "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"
    }
}
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 ''
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "employeeId": "ID-1183",
        "firstName": "Test",
        "lastName": "Employee",
        "username": "test.employee@bank.com",
        "email": "test.employee@bank.com",
        "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
    }
}
create person
find employee

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

Update person address

Use case

Here we will review how to update the person address.

Use case data
API parameters with values

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

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

New address reference.

Sample API call

To update person address, make the following call.

Sample request

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

{
  "street1": "Brick Lane 4",
  "cityCounty": "London",
  "zip": "13789",
  "countryCode": "GB"
}
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"
}'

Sample response

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

Response
{
    "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"
        }
    }
}

Result

The person address information is updated.

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

Private person with Tuum personId: ID-3392

.../persons/ID-3392

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.

Sample request

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

No request body.

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'

Sample response

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

Response
{
    "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"
    }
}

Result

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

Find person

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

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

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

Private person with Tuum personId: ID-3392.

.../persons/ID-3392/addresses

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.

Sample request

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

No request body.

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 ''

Sample response

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

Response
{
    "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"
            }
        }
    ]
}

Result

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

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

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

...persons/ID-3392/documents

Adding the person's passport details.

Sample API call

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

Sample request

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

{
  "issuingCountry": "GB",
  "number": "0124R5M1P5",
  "documentTypeCode": "PASSPORT",
  "expiryDate": "2025-01-03"
}
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"
}'

Sample response

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

Response
{
    "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
        }
    }
}

Result

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

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.

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.

Sample request

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

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

The middleName of the private person is updated.

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:

Sample API call

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

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.

We will search an employee ID-1183 whose .

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

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.

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

Learn more about the endpoint in the Tuum developer portal.

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.

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

Learn more about the endpoint in the Tuum developer portal.

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

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

See more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

Learn more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

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

"street1": "Brick Lane 4"
{
  "issuingCountry": "GB",
  "number": "0124R5M1P5",
  "documentTypeCode": "PASSPORT",
  "expiryDate": "2025-01-03"
}
employee profile was previously created
new person is created
find person addresses
update person address
find person
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 address
Tuum developer portal
create person document

Updating private person with Tuum personId: ID-3392.

...persons/ID-3392/personal

Adding the middleName: Harry.

"middleName": "Harry"
{
    "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"
    }
}'
{
    "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
            }
        }
    }
}

The group name is business.

"personGroupCode": "BUSINESS"

This is a group for the premium customers.

"description": "Premium customers"
{
  "personGroupCode": "BUSINESS",
  "description": "Premium customers"
}
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"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": null
}
Find person details
Find person addresses
update personal info
create customer group

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

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

...persons/ID-3394/relations

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

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

The private person is registered in the Great Britain.

The private person is the representative of the New company Ltd.

The representation is in active status.

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.

The representation validity period. The date format: YYYY-MM-DD.

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.

Sample request

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

{
  "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"
      }
    }
  ]
}'
```

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": "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"
            }
        }
    ]
}
```

Result

A new person relationship is created:

Parameter and value
Explanation

The code ID-1003 is a unique identifier of the person relationship between a legal and a private person.

A legal person (New company Ltd) was set as a parent person. And a private person (Trevor Tuum) was added as a company representative.

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.

Sample API cal

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

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.

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.

Sample API call

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

Sample request

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

Sample response

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

Response

Result

A new fraud department contact is added to the person.

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.

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.

Sample request

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

Sample response

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

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.

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

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

Use case data
API parameters with values

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

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

Use case data
API parameters with values

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

See more information about endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

Learn more about the endpoint in the Tuum developer portal.

No request body.

Response
"idNumber": "DQ654327C"
"idCountryCode": "GB"
 "relationTypeCode": "REPRESENTATIVE"
"statusCode": "ACTIVE"
"beneficiary": true
"representingRange": {
        "startDate": "2023-06-06",
        "endDate": "2023-06-13"
      }
"personRelationshipId": "ID-1003"
"parentPersonId": "ID-3394",
"personId": "ID-3392",
"relationTypeCode": "REPRESENTATIVE"
create person representation

A private person with personId: ID-3392

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

A customer group for business customers

"personGroupCode": "BUSINESS"
{
  "personGroupCode": "BUSINESS"
}
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"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "personGroupId": "ID-1489",
        "personId": "ID-3392",
        "personGroupCode": "BUSINESS",
        "validityRange": {
            "endTime": null,
            "startTime": "2023-06-21T20:48:57.250757Z"
        }
    }
}

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.

"contactTypeCode": "FRAUD_CONTACT"

The description of the contact type.

"description": "Contacts for fraud department"

The email of the contact.

"email": "psmidt@smidt.de"

The phone number of the contact.

"phoneNumber": "0901820"

The country code of the phone number.

"phoneCountryCode": "+49"
{
 "contactTypeCode": "FRAUD_CONTACT",
  "description": "Contacts for fraud department",
  "email": "psmidt@smidt.de",
  "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": "psmidt@smidt.de",
  "phoneNumber": "0901820",
  "phoneCountryCode": "+49"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "additionalContactId": "ID-1009",
        "personId": "ID-3394",
        "contactTypeCode": "FRAUD_CONTACT",
        "description": "Contacts for fraud department",
        "email": "psmidt@smidt.de",
        "phoneCountryCode": "+49",
        "phoneNumber": "0901820",
        "preferredMethodOfContact": false,
        "validityRange": {
            "endTime": null,
            "startTime": "2024-05-21T06:46:42.928Z"
        }
    }
}

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

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 ''
{
    "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"
        }
    }
}
assign person to group
creating person additional contacts
close person representation

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

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

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

The financial data type code is assets.

The financial data value type code is currency.

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

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

The financial value for the current period is 10000000.

Sample API call

To create financial data, call the following endpoint.

Sample request

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

{
  "financialDataTypeCode": "ASSETS",
  "financialDataValueTypeCode": "CURRENCY",
  "currentPeriodValue": 10000000,
  "currencyCode": "EUR",
  "period": 12
}
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
}'

Sample response

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

Response
{
    "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
        }
    }
}

Result

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

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.

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.

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.

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

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

Use case data
API parameters with values

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

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

Learn more about the endpoint in the Tuum developer portal.

"financialDataTypeCode": "ASSETS"
"financialDataValueTypeCode": "CURRENCY"
"currencyCode": "EUR"
"period": 12
"currentPeriodValue": 10000000
create person financial data

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

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.

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

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.

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

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

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

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

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

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

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

.../persons/ID-3204/reactivate/start
"processReason": "OTHER"
"processDate": "2023-06-15"
.../persons/ID-3204/reactivate/start
"processReason": "OTHER"
"processDate": "2023-06-15"
reactivate
'Activate person
reactivate
'Activate person'

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.

Sample request

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

{
  "processReason": "CUSTOMER_REQUESTED",
  "processDate": "2023-06-15"
}
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"
}'

Sample response

The forget person generates the following response.

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

Result

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

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

Learn more about the endpoint in the Tuum developer portal.

forget person

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

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

Sample API call

To remove the restoration key, make the following call.

Sample request

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

No request body.

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"
}'

Sample response

The remove restoration key endpoint generates the following response.

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

Result

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

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

See more about the endpoint in the Tuum developer portal.

remove person restoration key

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.

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.

Create virtual account

Use case

Here we will review how to set up a virtual account when 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.

Sample request

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

Sample response

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

Response

Result

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

Create internal account

Use case

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

Sample API call

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

Sample request

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

Sample response

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

Response

Result

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

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

See more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

Parameter and value
Explanation
Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

Parameter and value
Explanation
"accountTypeCode": "CURRENCY"
"personName": "Trevor Harry Tuum"
"customerGroupCode": "GROUP_A"
"priceListTypeCode": "STANDARD"
"residencyCountryCode": "GB"
"currencyCode": "GBP"
"accountId": "ID-1279"
"statusCode": "ACTIVE"
"iban": "GB72XXXX04030000000986"
"bic": "LHVBGB2LXXX"
create account

Virtual account type.

"accountTypeCode": "VIRTUAL"

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

"masterAccountId": "ID-1279"

The name of the account holder is Trevor Harry Tuum.

"personName": "Trevor Harry Tuum"

Trevor is assigned to the GROUP_A customer group.

"customerGroupCode": "GROUP_A"

The standard price list is assigned to the account.

"priceListTypeCode": "STANDARD"

Trevor's residency country is the Great Britain.

"residencyCountryCode": "GB"

The virtual account currency is GBP.

"currencyCode": "GBP"

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

"accountTypeSetupCode": "STANDARD"

Tuum is the service provider.

"serviceProviderCode": "TUUM"
{
  "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"
}'
{
    "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"
    }
}
"accountId": "ID-1283"

A unique identifier is assigned to the new account.

"statusCode": "ACTIVE"

The new account is created and activated.

"iban": "GB05XXXX04030100000462"

The IBAN assigned to the new account.

"bic": "LHVBGB2LXXX"

The BIC assigned to the new account.

Internal account type

"accountTypeCode": "INTERNAL"

The name of the account holder is Trevor Harry Tuum

"personName": "Trevor Harry Tuum"

For the internal accounts, use the internal customer group

"customerGroupCode": "INTERNAL"

For the internal accounts, use the internal pricelist

"priceListTypeCode": "INTERNAL"

Trevor's residency country is the Great Britain

"residencyCountryCode": "GB"

The internal account currency is euro

"currencyCode": "EUR"
{
  "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"
}'
{
    "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"
    }
}
accountId": "ID-1282

A unique identifier is assigned to the new account.

"statusCode": "ACTIVE"

The new account is created and activated.

"iban": "XX54XXXX99999000000000000001257"

The IBAN assigned to the new account.

"bic": "ICECLOUDXXX"

The BIC assigned to the new account.

create account
create 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.

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.

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.

Sample API call

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

Create account limit

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

Sample request

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

Sample response

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

Response

Result

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

Create account limit type

Use case

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

Sample API call

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

See more about the create

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

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

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

Use case data
API parameters with values

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

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

See more about this endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

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

in the Tuum developer portal.

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.

"accountTypeCode": "CURRENCY"
 "accountTypeSetupCode": "EXTERNAL_VIRTUAL",
  "serviceProviderCode": "LHV",
"personName": "Trevor Harry Tuum"
"customerGroupCode": "GROUP_A"
"priceListTypeCode": "STANDARD"
"currencyCode": "EUR"
"accountInterestRate": 10
"personTypeCode": "P"
create account application
{
  "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" } }'
{
    "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
    }
}
{
  "scopeTypeCode": "ACCOUNT",
  "periodTypeCode": "MONTHLY",
  "calcTypeCode": "PER_CURRENCY",
  "limitCode": "NEW_ACCOUNT_LIMIT"
}
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"
}'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "limitTypeId": "ID-1002",
        "scopeTypeCode": "ACCOUNT",
        "periodTypeCode": "MONTHLY",
        "calcTypeCode": "PER_CURRENCY",
        "limitCode": "NEW_ACCOUNT_LIMIT"
    }
}
create account limit
information
limit type parameters
ndpoint
further API call
"limitTypeId": "ID-1002"n

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

"accountId": "ID-1279"

The account limit amount is 10000 EUR.

"amount": {
    "amount": "10000",
    "currencyCode": "EUR"
  }

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"
"limitCode": "NEW_ACCOUNT_LIMIT"

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

The technical name of the account limit code.

The description of the new account limit code.

The account limit code is enabled.

Sample API call

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

Create account limit code

Sample request

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

{
  "code": "NEW_ACCOUNT_LIMIT",
  "name": "New account limit",
  "enabled": true
}
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"
}'

Sample response

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

Response
 {
    "errors": null,
    "validationErrors": null,
    "data": {
        "code": "NEW_ACCOUNT_LIMIT",
        "name": "New account limit",
        "description": null,
        "enabled": true
    }
}

Result

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

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 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.

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.

Create account class code

Use case

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

Use case data
API parameters

Create a new account class code.

Sample API call

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

Create account class code

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

Sample request

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

{
  "description": "New account class code",
  "accountClassCode": "NEW"
}
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"
}'

Sample response

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

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "description": "New account class code",
        "accountClassCode": "NEW"
    }
}

Result

A new account class code is created.

Reports

Reports flow

If you need to generate and download the report, follow these steps:

  1. Request to generate a report.

  2. Check the report generation status.

  3. Download the requested report.

For more detailed information about the report's workflow, see the example of account transactions report below.

Account transactions report

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

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

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.

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.

Sample request

Below is an example request body of the API call for creating an account and setting access 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"
        }
      ]
    }
  ]
}
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"
        }
      ]
    }
  ]
}'

Sample response

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

Response
{
    "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

Result

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

Find person accounts

Use case

In this example we will review how to find existing accounts by personId.

Sample API call

To find person accounts, make the following API call.

Find person account

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

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.

Search account transactions

Use case

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

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.

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.

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

The that was generated in the previous call.

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

See more information about this in the Tuum developer portal.

The was generated in the previous API call.

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

See more about the endpoint in the Tuum developer portal.

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

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

See more information about this in the Tuum developer portal.

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

See more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

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

See more information about this in the Tuum developer portal.

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

"code": "NEW_ACCOUNT_LIMIT"
"name": "New account limit"
"enabled": true
"accountTypeCode": "INTERNAL"
"accountClassCode": "NEW"
"validityRange": {
    "startDate": "2023-07-31"
  }
{
"description": "New account class code",
"accountClassCode": "NEW"
    }
"representatives": [
    {
      "personId": "ID-3392",
      "accountRightCode": "ALL",
previous call
limit code
endpoint
create account type class rule
create account class code
endpoint
create account and set user rights

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

https://account-api.{{env}}.{{domain}}/api/v5/persons/ID-3392/accounts?pageNumber=1&pageSize=5
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 ''
{
    "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
    }
}

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
    }
}
Request to generate account transactions report
Check report generation status
Download requested report
account class code
find person accounts
endpoint
search account transactions

Download requested report

Use case

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

Use case data
API parameters with values

...generations/files/ID-2864

Sample API call

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 dowloaded.

Check report generation status

Use case

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

Sample API call

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

Sample request

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

Sample response

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

Result

Request to generate account transactions report

Use case

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

Sample API call

To request account transaction report, make the following call.

Sample request

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

Sample response

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

Response

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, an account transaction report was requested.

Sample account transaction export file

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

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

See more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

No request body.

Response

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.

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

Below, you will find a sample of transaction export file. This way the file is structured after being .

get the report file
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"
}'
{
    "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 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.

"exportFileType": "JSON"

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.

"dateFrom": "2029-04-01",
"dateTo": "2029-05-31",
"dateType": "POSTING_DATE"
{
  "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"
}'
{
    "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
    }
}

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 groupId. 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-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

checking the report generation status
find report status
download
export account transactions
downloaded

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

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

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

Sample API call

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

Sample request

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

{
  "description": "Class code for premium customers",
  "depositClassCode": "PREMIUM_CUSTOMER"
}
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"
}'

Sample response

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

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "description": "Class code for premium customers",
        "depositClassCode": "PREMIUM_CUSTOMER"
    }
}

Result

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

Update deposit product

Use case

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.

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.

Activate deposit product

Use case

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.

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 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.

This deposit product holder is a private person.

Sample API call

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

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.

Find deposit product

Use case

Sample API call

Sample response

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

Result

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

Find deposit application

Use case

Sample API call

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

Sample response

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

Result

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

Create deposit application

Use case

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

Sample API call

Sample request

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

Sample response

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

Response

Result

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

Deposit product management

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

Below you will find the following chapters:

The generationId number of the report file that was .

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

See more about the endpoint in the Tuum developer portal.

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

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

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

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

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

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

The that was created as a first step.

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

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

In this example, we will find the .

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

Response

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

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

Response
Use case data
API parameters with values

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

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

{
 "description": "Class code for premium customers",
 "depositClassCode": "PREMIUM_CUSTOMER"
 }
"description": "Premium deposit Germany"
 "countryCode": "DE"
"contractNumberPrefix": "PR-DE-"
"terminationType": "WITH_TOTAL_INTEREST"
 "period": 12
"personTypeCode": "L"
"endDate": "2031-02-08"
"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"
previously requested
create deposit class code
previous step
update deposit product
previous step
activate deposit product
create deposit product

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

...deposits/product/PREMIUM

{
    "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"
    }
}
{
    "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
    }
}
{
  "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"
}'
{
    "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
    }
}
     
Create deposit class code
Create deposit product
Update deposit product
Activate deposit product
Find deposit product
Inactivate deposit product
deposit class code
newly created deposit product
find deposit product
created deposit application
find deposit application
create deposit application

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

This API call requires mandatory query parameters pageSize and pageNumber.

...?pageSize=1&pageNumber=1

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.

"initialMoney": {
    "amount": 5000,
    "currencyCode": "EUR"
  }
"depositTypeCode": "PREMIUM"
"accountId": "ID-5334"

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.

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

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.

"taxResidencyCountryCode": "EE",
  "taxExempt": "false"

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:

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:

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

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

...product/PREMIUM/deactivate

Sample API call

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

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 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.

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

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

...persons/ID-2660/offers

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.

The deposit amount is 5000 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.

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.

Sample API call

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

Sample request

Below is an example request body of the API call for creating a 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
}
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
}'

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": "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
    }
}

Result

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

Decline deposit offer

Use case

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

Use case data
API parameters with values

We will decline a deposit offer ID-1718023944.

...offers/ID-1718023944/decline

Sample API call

Sample request

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

{
  "reasonCode": "DOCUMENT_MISSING"
}
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"
}'

Sample response

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

Response
{
    "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
    }
}

Result

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

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

...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.

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.

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:

Change payout details

Use case

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:

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

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:

Sample API call

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

Sample response

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

Response

Result

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

Edit deposit offer

Use case

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

Sample API call

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

Sample request

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

Sample response

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

Response

Result

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

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

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.

,

.

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

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

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

- 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.

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

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

The deposit offer is opened for a PREMIUMthat was created earlier.

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

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

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

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

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

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

See more about the endpoint in the Tuum developer portal.

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

Use case data
API parameters

,

.

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.

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)

Use case data
API parameters with values

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

See more about the endpoint in the Tuum developer portal.

"depositTypeCode": "PREMIUM"
"accountId": "ID-1012"
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE"
"initialMoney": {
    "amount": 5000,
    "currencyCode": "EUR"
"payoutDetails": {
    "name": "Test user",
    "accountNumber": {
      "value": "EE961221248796768756",
      "type": "IBAN"
    }
    }
"interestRate": 0.35
deposit application
deposit product
create account
Create deposit application
Accept deposit offer
decline deposit offer
Create deposit offer
Accept deposit offer
decline deposit offer
deactivate deposit product
create deposit offer
decline deposit offer
find offer
Deposit flow - from application
Deposit flow - from offer
Change payout details
Change contract prolongation status
Update contract header
Adjust deposit contract interest
Make premature termination
"payoutDetails": {
    "name": "Test Account",
    "accountNumber": {
      "value": "EE111236525217358748",
      "type": "IBAN"
"payoutDetails": {  
          "name": "Malloy Harbor", 
          "accountNumber": {   
            "type": "BBAN", 
            "value": "3159584114"    
          },
          "financialInstitutionId": { 
            "type": "BANK_CODE",
            "value": "5051"
          },
          "countryCode": "DK", 
          "referenceNumber": null 
        }
"payoutDetails":  null
{
  "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"
    
    }
    }
}'
{
    "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
    }
}

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.

"initialMoney": {
    "amount": 6000,
    "currencyCode": "EUR"
  }
{
  "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
}'
{
    "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
    }
}
Create deposit application
Find deposit application
Create deposit offer
Find deposit offer
Accept deposit offer
Edit deposit offer
Decline deposit offer
Find deposit contract
deposit product
create account
deposit application
deposit contract
edit deposit offer
IBAN
BBAN

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

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

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

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

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.

Counterparty details.

Payment amount.

Payment details.

The payment also includes additional transferable data, such as chargeBearer and endToEndId. Note: the chargeBearer and endToEndId parameters are optional.

Sample API call

To initialise the payment, use the following endpoint:

Sample request

The sample request body is as follows:

{
    "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"
}
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"
}'

Sample response

Below you will find the response to the sample request:

Response
{
    "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"
        ]
    }
}

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:

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:

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:

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.

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.

Adjust deposit contract interest

Use case

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

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.

Find deposit contract

Use case

Use case data
API parameters with values

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

This API call requires mandatory query parameters pageSize and pageNumber.

...?pageSize=1&pageNumber=1

Sample API call

Sample response

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

Response
{
    "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
    }
}

Result

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

Make premature termination

Use case

Use case data
API parameters with values

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

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

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

Sample API call

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

Sample request

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

{
  "terminationType": "WITHOUT_INTEREST",
  "comment": "Closing contract"
}
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"
}'

Sample response

Below you will 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-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
    }
}

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.

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

...v2/contracts/ID-1696407222

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

We will set the tax exemption to true.

Sample API call

Sample request

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

{
  "taxResidencyCountryCode": "DE",
  "taxExempt": "true"
}
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"
}'

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": "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
    }
}

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.

Confirm payment

After initialising the payment, we need to confirm it to complete the payment.

Use case

Here, we will confirm a payment draft using the payment ID parameter.

Sample API call

To confirm the payment, use the following endpoint:

Sample request

The sample request body is as follows:

Sample response

Below you will find the response to the sample request:

Response

Result

The payment is confirmed with the statusCode WAITING_FOR_AML. You can check the AML-related information using the AML API. You can also manually approve or decline a payment detected by the AML monitoring system.

Cancel payment

Use case

In this example, we will review how to cancel a payment draft.

Sample API call

To cancel the payment, use the following endpoint:

Sample request

The sample request body is as follows:

Sample response

Below you will find the response to the sample request:

Result

The payment with the paymentId: PAYM-21736 has been set to the CANCELLED status.

Create domestic US payment

Use case

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

Sample API call

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-21726 and the statusCode: INSERTED.

Possible next steps

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

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

The active contract version is ID-1696407267. See the for more 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 .

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

Learn more about the endpoint in the Tuum developer portal.

- modify the draft payment.

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

- complete payment to initiate further payment processing.

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

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

- modify the draft payment.

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

- complete payment to initiate further payment processing.

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

See more about the endpoint in the Tuum developer portal.

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

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 endpoint in the Tuum developer portal.

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

We will find an existing deposit contract that was with the ID-2660.

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

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

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.

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

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

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.

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

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.

Use case data
API parameters with values

https://payment-api.sandbox.tuumplatform.com/api/v3/payments/PAYM-47356/confirm

Learn more about the endpoint in the Tuum developer portal.

Use case data
API parameters with values

https://payment-api.sandbox.tuumplatform.com/api/v3/payments/{paymentId}/cancel

Learn more about the endpoint in the Tuum developer portal.

Response
Use case data
API parameters with values

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

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

- modify the draft payment.

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

- complete payment to initiate further payment processing.

 "typeCode": "OUR_PARTY",
 "accountId": "ID-1887"
 "typeCode": "COUNTERPARTY",
 "name": "Ben Eficiary",
 "accountNumber": {
     "value": "EE871275295834652820",
     "type": "IBAN"
"money": {
    "amount": "10",
    "currencyCode": "DKK"  }
"details": "Lunch payment"
"endToEndId": "20240103-E000003",
"chargeBearer": "DEBT"
"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"
"eventTypeCode": "INTEREST_INCREASE",
"componentTypeCode": "INT",
"money": {
    "amount": 0.25,
    "currencyCode": "EUR"
  }
"terminationType": "WITHOUT_INTEREST"
"taxResidencyCountryCode": "DE"
"taxExempt": "true"
find deposit contract
find deposit contract
initialise payment
Change the draft payment
Cancel the draft payment
Confirm the draft payment
initialise payment
Change the draft payment
Cancel the draft payment
Confirm the draft payment
accept deposit offer
deposit contract
create contract adjustment
accepting the related deposit offer
find deposit contract
deposit contract
prepare deposit contract for termination
update contract header
below

The payment ID is taken from the response to the payment initialisation request.

".../PAYM-47356/confirm"

An optional comment.

{ "comment": "Confirm payment" }
{
"comment": "Confirm payment"
}
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/PAYM-47356/confirm' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDItMDhUMTY6MTU6NTkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE3MDc0MDg5NTl9.9ra--2cschOt3BvgdMrq_yrKgVhZrPCiX6ea0IXkX08' \
--header 'Content-Type: application/json' \
--data '"comment": "Confirm payment"'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "paymentId": "PAYM-47356",
        "accountId": "ID-1002",
        "directionCode": "OUT",
        "statusCode": "WAITING_FOR_AML",
        "errorCode": null,
        "money": {
            "amount": 10.00,
            "currencyCode": "EUR"
        },
        "details": "Lunch payment",
        "referenceNumber": null,
        "source": null,
        "contractSource": null,
        "endToEndId": null,
        "valueDate": "2026-09-06",
        "postingDate": "2026-09-06",
        "insertedDateTime": "2024-02-08T14:36:47.339803Z",
        "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,
        "amlMonitoringEnabled": true,
        "lastStatusRequestDate": null,
        "residencyCountryCode": "FI",
        "counterpartyOriginalIban": null,
        "fxPaymentFlag": false,
        "fxPayment": null,
        "paymentParties": [
            {
                "paymentPartyId": "PAYM-115887",
                "typeCode": "OUR_PARTY",
                "name": "Damara Kai",
                "personTypeCode": "P",
                "givenName": "Damara",
                "surname": "Kai",
                "accountNumber": {
                    "value": "XX10XXXX99999000000000000000012",
                    "type": "IBAN"
                },
                "accountNumberCountryCode": "XX",
                "financialInstitutionId": {
                    "value": "ICECLOUDXXX",
                    "type": "BIC"
                },
                "address": {
                    "street1": "Fennstrasse 4",
                    "street2": "string",
                    "cityCounty": "Berlin",
                    "stateRegion": "Berlin",
                    "zip": "13347",
                    "countryCode": "DE",
                    "addressLine": "Fennstrasse 4, string, Berlin, DE, 13347"
                },
                "nationalIdentificationNumber": null,
                "roleCode": "PAYER"
            },
            {
                "paymentPartyId": "PAYM-115888",
                "typeCode": "COUNTERPARTY",
                "name": "Ben Eficiary",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "EE871275295834652820",
                    "type": "IBAN"
                },
                "accountNumberCountryCode": "EE",
                "financialInstitutionId": {
                    "value": "PARXEE22XXX",
                    "type": "BIC"
                },
                "address": null,
                "nationalIdentificationNumber": null,
                "roleCode": "BENEFICIARY"
            }
        ],
        "fees": [
            {
                "feeTypeCode": "ACC2SEPA_FEE",
                "feeMoney": {
                    "amount": 0.05,
                    "currencyCode": "EUR"
                },
                "deferredFee": false
            }
        ],
        "paymentSchemeElements": [],
        "fileImportLineNumber": null
    }
}

We will cancel the PAYM-21736 payment.

...api/v3/payments/PAYM-21736...

An optional comment.

"comment": "Cancel payment"
"comment": "Cancel payment"
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/PAYM-21736/cancel' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDJUMTM6MjU6MzEiLCJleHAiOjE3MzMxNDU5MzEsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.W9yv0iAmm3QoQILoCJit9uZbp10kSRQsWoIq9spDG2w' \
--header 'Content-Type: application/json' \
--data '"comment": "Cancel payment"'
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "paymentId": "PAYM-21736",
        "accountId": "ID-12329",
        "directionCode": "OUT",
        "statusCode": "CANCELLED",
        "errorCode": null,
        "money": {
            "amount": 20.00,
            "currencyCode": "GBP"
        },
        "details": null,
        "referenceNumber": null,
        "source": null,
        "contractSource": null,
        "endToEndId": null,
        "valueDate": "2029-11-09",
        "postingDate": "2029-11-09",
        "insertedDateTime": "2024-11-30T01:40:54.048581Z",
        "paymentServiceProviderCode": "SWIFT",
        "paymentTypeCode": "ACC2SWIFT",
        "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": "GB",
        "counterpartyOriginalIban": null,
        "fxPaymentFlag": false,
        "fxPayment": null,
        "paymentParties": [
            {
                "paymentPartyId": "PAYM-57290",
                "typeCode": "COUNTERPARTY",
                "name": "Test Receiver",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "56497232",
                    "type": "BBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "GB",
                "financialInstitutionId": {
                    "value": "BARCGB22",
                    "type": "BIC"
                },
                "address": null,
                "roleCode": "BENEFICIARY",
                "partyIdentification": null
            },
            {
                "paymentPartyId": "PAYM-57291",
                "typeCode": "OUR_PARTY",
                "name": "Fianna Penelopa",
                "personTypeCode": "P",
                "givenName": "Fianna",
                "surname": "Penelopa",
                "accountNumber": {
                    "value": "GB55LHVB04030000001875",
                    "type": "IBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "GB",
                "financialInstitutionId": {
                    "value": "LHVBGB2LXXX",
                    "type": "BIC"
                },
                "address": {
                    "street1": "Fennstrasse 4",
                    "street2": "string",
                    "cityCounty": "Berlin",
                    "stateRegion": "Berlin",
                    "zip": "13347",
                    "countryCode": "DE",
                    "addressLine": "Fennstrasse 4, string, Berlin, DE, 13347",
                    "addressTypeCode": null
                },
                "roleCode": "PAYER",
                "partyIdentification": {
                    "identificationTypeCode": "NATIONAL_IDENTIFICATION_NUMBER",
                    "identificationValue": "id-919820058"
                }
            }
        ],
        "fees": [],
        "paymentSchemeElements": [],
        "fileImportLineNumber": null,
        "purposeCode": null,
        "labels": [
            "COUNTERPARTY_GB"
        ]
    }
}

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.

{
  "typeCode": "OUR_PARTY",
  "accountNumber": {
       "value": "190021824474",
       "type":
            }

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

"accountNumberCountryCode": "US",
"financialInstitutionId": "021000018"

Counterparty details.

"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
     "value": "231123456789",
     "type": "BBAN"

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

"accountNumberCountryCode": "US",
"financialInstitutionId": "021000322"

Payment amount and currency.

 "money": {
        "amount": 17,
        "currencyCode": "USD"
    }

Payment details.

"details": "Test payment with both parties with BBAN for domestic US payment"

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

 "usageLimitCode": "test"
{
    "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"
}'
{
    "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"
        ]
    }
}
created for the test person
find deposit contract
find deposit contract
find deposit contract
confirm payment
cancel payment
initialise payment
Change the draft payment
Cancel the draft payment
Confirm the draft payment

Create outgoing payments

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

Change payment

Use case

In this example, we will review how to change a payment draft. We will update counterparty and payment amount.

Use case data
API parameters with values

We are going to update the PAYM-21826 payment.

Updated counterparty details. The counterparty name, account information, and financial institution id were updated.

Updated payment amount.

Sample API call

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": "Test Receiver",
            "accountNumber": {
                "value": "56497232",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "BARCGB22"
        }
    ],
    "money": {
        "amount": 20,
        "currencyCode": "GBP"
    }
    }
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/PAYM-21777/change' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTEtMzBUMDI6NDc6MjYiLCJleHAiOjE3MzI5MzQ4NDYsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.aZQf-Tf3Zro6Ri6_FD-izuqQ37MoDJKJmISkWeDyzSo' \
--header 'Content-Type: application/json' \
--data '{
    "paymentParties": [
        {
            "typeCode": "OUR_PARTY",
            "accountNumber": {
                "value": "21824474",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "608382"
        },
        {
            "typeCode": "COUNTERPARTY",
            "name": "Test Receiver",
            "accountNumber": {
                "value": "56497232",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "BARCGB22"
        }
    ],
    "money": {
        "amount": 20,
        "currencyCode": "GBP"
    }
    }'

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": 20.00,
            "currencyCode": "GBP"
        },
        "details": null,
        "referenceNumber": null,
        "source": null,
        "contractSource": null,
        "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-57542",
                "typeCode": "COUNTERPARTY",
                "name": "Test Receiver",
                "personTypeCode": null,
                "givenName": null,
                "surname": null,
                "accountNumber": {
                    "value": "56497232",
                    "type": "BBAN"
                },
                "accountNumberSubtype": null,
                "accountNumberCountryCode": "GB",
                "financialInstitutionId": {
                    "value": "BARCGB22",
                    "type": "BIC"
                },
                "address": null,
                "roleCode": "BENEFICIARY",
                "partyIdentification": null
            },
            {
                "paymentPartyId": "PAYM-57543",
                "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 payment draft with the paymentId: PAYM-21826 was updated. The payment status remained as INSERTED.

Possible next steps

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

Find AML information of a payment

Use case

We will use the AML API to find the AML-related information of a payment.

Use case data
API parameters with values

The query parameter is the payment ID. The ID is taken from the response to the payment request.

Sample API call

To find the AML details, use the following endpoint:

Sample response

Below you will find the response to the sample request:

Response
{
  "errors": null,
  "validationErrors": null,
  "data": {
    "processId": "ID-7878",
    "paymentId": "PAYM-8834",
    "statusCode": "PROCESSED",
    "resultCode": "APPROVED",
    "source": null,
    "providerInfo": null
  }
}

Result

With this request, we can see the AML status of the payment.

Find settled SEPA transaction

Use case

After confirming a SEPA payment, we will check that the credit transfer exists using SEPA API with the payment ID.

Use case data
API parameters with values

The path parameter is the payment ID. The ID is taken from the response to the payment request.

Sample API call

To find the payment, use the following endpoint:

Sample response

Below you will find the response to the sample request:

Response
{
  "errors": null,
  "validationErrors": null,
  "data": [
    {
      "transactionId": "ID-11941",
      "txId": "ID-11940",
      "paymentId": null,
      "settlementTransactionType": "CREDIT_TRANSFER",
      "messageName": null,
      "reason": null,
      "status": "ACCEPTED",
      "event": null,
      "createdEventTime": "2023-07-12T12:59:19.613712Z",
      "relatedMessage": null,
      "fileReference": "CT00000000013062",
      "fileHeaderId": "ID-13143",
      "sepaScheme": "REGULAR",
      "latestEvent": "CT_ACCEPTED",
      "latestEventDateTime": null,
      "settlementDate": "2023-07-12",
      "amount": {
        "amount": 2,
        "currencyCode": "EUR"
      },
      "directionCode": "OUT"
    }
  ]
}

Result

With this request, we can see the credit transfer details in the response such as the transaction ID, the file reference number, and the status code of the transaction.

Initialise FX quote request

Initialising an FX quote request refers to creating a request with the amount for the currency pair that you want to use.

Use case

Here we will initialise an FX quote request with sample data.

Sample API call

To initialise the FX quote request, use the following endpoint:

Sample request

The sample request body is as follows:

Sample response

Below you will find the response to the sample request:

Response

Result

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.

Sample API call

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-21826 and the statusCode: INSERTED.

Possible next steps

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

Payer information. In this example, the payer details remained the same as in the .

To change the payment, use the following endpoint: https://payment-api.sandbox.tuumplatform.com/api/v3/payments/{paymentId}/change

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

- modify the draft payment.

- complete payment to initiate further payment processing.

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

https://aml-api.sandbox.tuumplatform.com/api/v1/aml/process/by-payment?paymentId=PAYM-8834

Learn more about the endpoint in the Tuum developer portal.

https://sepa-api.sandbox.tuumplatform.comapi/v1/batch/PAYM-8813/settlement-transactions

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

Use case data
API parameters with values

https://payment-api.sandbox.tuumplatform.com/api/v1/accounts/ID-1026/fx-quotes/initialise

Learn more about the endpoint from the developer portal.

The quote request is created with a quote request ID and status code. The next step is to for the quote request.

Use case data
API parameters with values

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

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

- modify the draft payment.

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

- complete payment to initiate further payment processing.

...v3/payments/PAYM-21826/change
{
            "typeCode": "OUR_PARTY",
            "accountNumber": {
                "value": "21824474",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "608382"
        }
{
            "typeCode": "COUNTERPARTY",
            "name": "Test Receiver",
            "accountNumber": {
                "value": "56497232",
                "type": "BBAN"
            },
            "accountNumberCountryCode": "GB",
            "financialInstitutionId": "BARCGB22"
        }
"money": {
        "amount": 20,
        "currencyCode": "GBP"
    }
".../by-payment?paymentId=PAYM-8834"
".../PAYM-8813/settlement-transactions"
change payment
Change the draft payment
Confirm the draft payment
Cancel the draft payment
find AML information
find settled SEPA transactions

The path parameter is the technical ID of the account to which the payment is being made.

".../ID-1026/fx-quotes/initialise"

Currency details

"sellCurrencyCode": "EUR",
"buyCurrencyCode": "GBP"

Amount details

"amount": {
    "amount": 30,
    "currencyCode": "EUR" }

Tenor refers to the contract durations for trades.

The allowed value is TODAY. This means that the currency exchange rate on the day that the order is executed is applied.

"tenor": "TODAY"
{
  "sellCurrencyCode": "EUR",
  "buyCurrencyCode": "GBP",
  "money": {
    "amount": 30,
    "currencyCode": "EUR"
  },
  "tenor": "TODAY"
}
curl -X 'POST' \
  'https://payment-api.sandbox.tuumplatform.com/api/v1/accounts/ID-1026/fx-quotes/initialise' \
  -H 'accept: */*' \
  -H 'x-channel-code: SYSTEM' \
  -H 'x-tenant-code: MB' \
  -H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTNUMTE6Mjc6NDMiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE2ODkyNDc2NjN9.V62GKGz6hIMFF15n1IGnKpZTWtcTyPF0IC5pGfuToIU' \
  -H 'Content-Type: application/json' \
  -d '{
  "sellCurrencyCode": "EUR",
  "buyCurrencyCode": "GBP",
  "money": {
    "amount": 30,
    "currencyCode": "EUR"
  },
  "tenor": "TODAY"
}'
{
  "errors": null,
  "validationErrors": null,
  "data": {
    "quoteRequestId": "ID-1263",
    "accountId": "ID-1026",
    "accountNumber": {
      "value": "DK9189000099106120",
      "type": "IBAN"
    },
    "accountServiceProviderCode": "BC",
    "currencyPair": "EURGBP",
    "sellCurrencyCode": "EUR",
    "buyCurrencyCode": "GBP",
    "money": {
      "amount": 30,
      "currencyCode": "EUR"
    },
    "tenor": "TODAY",
    "comment": null,
    "source": null,
    "statusCode": "WAITING_QUOTE",
    "errorCode": null,
    "quoteDtime": "2023-07-13T11:06:14.780047Z",
    "tradeDate": "2025-04-07",
    "settlementDate": "2025-04-07",
    "quoteResponses": [],
    "requestReason": "FX"
  }
}

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.

 "typeCode": "OUR_PARTY",
 "accountNumber": {
      "value": "21824474",
      "type": "BBAN"
            }

The payer's account country is the UK. Note: the payer's bank account financial institution id is the bank's sort code.

"accountNumberCountryCode": "GB",
"financialInstitutionId": "608382"

Counterparty details.

"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
     "value": "00001781",
      "type": "BBAN"
            }

The payment receiver account country is the UK. Note: the payment receiver financial institution id is the bank's sort code.

"accountNumberCountryCode": "GB",
"financialInstitutionId": "040300"

Payment amount and currency.

"money": {
        "amount": 15,
        "currencyCode": "GBP"
    }

Payment details.

 "details": "Test payment with both parties with BBAN for domestic UK payment"

The payment also includes non-transferrable data, such as contractSource. Note: the contractSource parameter is optional.

"contractSource": {
    "sourceName": "Test System",
    "sourceRef": "1234",
    "contractNumber": "test"
  }
{
    "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"
  }
}'
{
    "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"
        ]
    }
}
Create SEPA payment
Create SWIFT payment
Create domestic UK payment
Create domestic US payment
original request
initialise FX quote request
get the response ID
initialise payment
Change the draft payment
Cancel the draft payment
Confirm the draft payment

Create payment template

A payment template allows you to save the payment information and create templates for regular payments.

Use case

Here we will create a payment template for outgoing SEPA payments with sample data.

Use case data
API parameters with values

The path parameter is the technical ID of the account to which the payment is being made.

Template name

Amount details

Counterparty details

Sample API call

To create the payment template, use the following endpoint:

Sample request

The sample request body is as follows:

{
  "templateName": "Payment template",
  "amount": {
    "amount": 10,
    "currencyCode": "EUR"
  },
  "paymentTemplateParties": [
    {
      "typeCode": "COUNTERPARTY",
      "name": "Ben",
      "surname": "Eficiary",
      "personTypeCode": "P",
      "accountNumber": {
        "value": "EE212227575393349708",
        "type": "IBAN"
      },
      "accountNumberCountryCode": "EE",
      "financialInstitutionId": "PARXEE22XXX"
    }
  ]
}
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v2/accounts/ID-1002/payment-templates' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDItMTRUMTQ6NTc6NDQiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MDc5MjI2NjR9.ndC26HBHThoHB88W3q4bktkhUHjXXj4Wp0LJmGRUWwM' \
--header 'Content-Type: application/json' \
--data '{
  "templateName": "Payment template",
  "amount": {
    "amount": 10,
    "currencyCode": "EUR"
  },
  "paymentTemplateParties": [
    {
      "typeCode": "COUNTERPARTY",
      "name": "Ben",
      "surname": "Eficiary",
      "personTypeCode": "P",
      "accountNumber": {
        "value": "EE212227575393349708",
        "type": "IBAN"
      },
      "accountNumberCountryCode": "EE",
      "financialInstitutionId": "PARXEE22XXX"
    }
  ]
}'

Sample response

Below you will find the response to the sample request:

Response
{
    "errors": null,
    "validationErrors": null,
    "data": {
        "templateId": "ID-1002",
        "templateName": "Payment template",
        "paymentTypeCode": null,
        "amount": {
            "amount": 10.00,
            "currencyCode": "EUR"
        },
        "details": null,
        "referenceNumber": null,
        "paymentTemplateParties": [
            {
                "paymentTemplatePartyId": "ID-1002",
                "typeCode": "COUNTERPARTY",
                "name": "Ben",
                "givenName": null,
                "surname": "Eficiary",
                "personTypeCode": "P",
                "accountNumber": {
                    "value": "EE212227575393349708",
                    "type": "IBAN"
                },
                "accountNumberCountryCode": "EE",
                "financialInstitutionId": {
                    "value": "PARXEE22XXX",
                    "type": "BIC"
                },
                "address": null
            }
        ]
    }
}

Result

The payment template is created with a template ID.

Get FX quote response

Use case

We will get the FX quote response ID for a request we created with sample data.

Use case data
API parameters with values

The first path parameter is the technical ID of the account to which the payment is being made.

The second path parameter is the FX quote request ID that we got from initialising the request.

Sample API call

To get the FX response ID, use the following endpoint:

Sample response

Below you will find the response to the sample request:

Response
{
  "errors": null,
  "validationErrors": null,
  "data": {
    "quoteRequestId": "ID-1263",
    "accountId": "ID-1026",
    "accountNumber": {
      "value": "DK9189000099106120",
      "type": "IBAN"
    },
    "accountServiceProviderCode": "BC",
    "currencyPair": "EURUSD",
    "sellCurrencyCode": "EUR",
    "buyCurrencyCode": "USD",
    "money": {
      "amount": 30,
      "currencyCode": "EUR"
    },
    "tenor": "TODAY",
    "comment": null,
    "source": null,
    "statusCode": "READY",
    "errorCode": null,
    "quoteDtime": "2023-07-20T10:32:15.18642Z",
    "tradeDate": "2025-05-08",
    "settlementDate": "2025-05-08",
    "quoteResponses": [
      {
        "quoteRequestId": "ID-1263",
        "quoteResponseId": "ID-1217",
        "buyMoney": {
          "amount": 34.76,
          "currencyCode": "USD"
        },
        "sellMoney": {
          "amount": 30,
          "currencyCode": "EUR"
        },
        "marginMoney": {
          "amount": 0.35,
          "currencyCode": "USD"
        },
        "feeMoney": null,
        "quoteProviderResponseId": "ID-1217",
        "exchangeRate": 1.158594,
        "fixedSide": "SELL"
      }
    ],
    "requestReason": "FX"
  }
}

Result

Change contract prolongation status

Use case

Use case data
API parameters with values

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

...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.

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.

Sample request

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

{
  "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"
}'

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": "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
    }
}

Result

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

https://payment-api.sandbox.tuumplatform.com/api/v2/accounts/ID-1002/payment-templates

Learn more about the endpoint in the Tuum developer portal.

After , we need to get the response ID for the request.

https://payment-api.sandbox.tuumplatform.com/api/v1/accounts/ID-1026/fx-quotes/ID-1263

Learn more about the from the developer portal.

We get the FX quote response ID along with other details. Next, we will which creates the FX order. To confirm the request, the status code must be READY.

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

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

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

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

See more about the endpoint in the Tuum developer portal.

".../ID-1002/payment-templates"
"templateName": "Payment template"
"amount": {
    "amount": 10,
    "currencyCode": "EUR" }
"paymentTemplateParties": [
    {
      "typeCode": "COUNTERPARTY",
      "name": "Ben",
      "surname": "Eficiary",
      "personTypeCode": "P",
      "accountNumber": {
        "value": "EE212227575393349708",
        "type": "IBAN"
      },
      "accountNumberCountryCode": "EE",
      "financialInstitutionId": "PARXEE22XXX"
    }
  ]
".../ID-1026/fx-quotes/..."
".../ID-1263"
"prolongationCode": "PRINCIPAL"
create payment template
initialising an FX quote request
endpoint details
confirm the quote
deposit contract
change deposit contract prolongation status
find deposit contract
find deposit contract

Here, you can find one of the examples of how to create a draft payment using the .

Here, you can find one of the examples of how to create a draft payment using the .

Here, you can find one of the examples of how to create a draft payment using the .

Here, you can find one of the examples of how to create a draft payment using the .

initialise payment API endpoint
initialise payment API endpoint
initialise payment API endpoint
initialise payment API endpoint
2KB
account_transaction_export.json
1KB
account_transaction_export.csv