Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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:
To make an authorised API call, you must include the x-auth-token
header parameter.
For the HTTP header parameter x-auth-token
, use the JWT token you received in response to the authentication call as a parameter value.
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDMtMDhUMDg6NDg6NDkiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2NzgyNjUzMjl9.G7rqNTJbeyMdMy1ZGwu1G7JRSvwAg084IiBYhOEz4I8'
In this example, we will find an existing employee by employeeId
.
To find an employee by username
, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/employees/username
Below is an example request of the API call to retrieve customer data.
No request body.
Below you find an example response body to the API call above.
The result of the API call is the dataset of a particular employee.
In this block, you will learn how to open a deposit contract flow. There are two flows available:
,
.
The first deposit flow starts from a deposit application and includes the following steps:
- 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.
You can use this flow if your organisation processes deposit applications outside the Tuum system.
This deposit contract flow starts from a deposit offer and includes the following steps:
- 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.
Below, you will find the following chapters:
We will search an employee ID-1183
whose employee profile was previously created.
...api/v1/employees/ID-1183
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": "[email protected]",
"email": "[email protected]",
"authenticationMethod": "PASSWORD",
"defaultTenantCode": "MB",
"roles": [
"CUSTOMER_SERVICE"
],
"tenants": [
{
"tenantEmployeeId": "ID-1213",
"defaultTenant": true,
"tenantId": "ID-1000",
"tenantCode": "MB",
"roles": [
"CUSTOMER_SERVICE"
]
}
],
"externalId": null,
"lastLogin": "2024-11-25T12:28:04.635156Z",
"blockedUntil": null,
"failedAttempts": 0
}
}
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.
Export roles endpoint enables you to retrieve all roles or specific roles and their privileges from the source Tuum environment.
Partial import endpoint allows you to add a selected set of roles and their privileges to the target Tuum environment. Any existing roles and privileges in the target environment not included in the import will remain unchanged.
Complete import endpoint lets you delete all existing roles and their privileges in the target environment and replace them with new roles and privileges specified in the payload.
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.
To authenticate a customer, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/authorise
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.
Below you find an example response body to the API call above.
An customer is authenticated, and a JSON Web Token is returned in the response.
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.
To authenticate an employee, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/employees/authorise
Below is an example request body of the API call for authentication of an employee.
{
"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"
}'
Please make sure to input the username
and password
of the particular employee when submitting your request.
Below you find an example response body to the API call above.
An employee is authenticated, and a JSON Web Token is returned in the response.
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:
The group name is business.
This is a group for the premium customers.
To create a new customer group, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v1/person-group-types
Below is an example request body of the API call for creating a new customer group.
{
"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"
}'
Here you find an example response body to the API call above.
A new BUSINESS customer group is created.
In this use case, we will review how to download an account transactions report.
The generationFileId
is ID-2864. This parameter is generated when .
...generations/files/ID-2864
To find the status of the requested report, make the following API call.
reports-api.sandbox.tuumplatform.com/
/api/v1/generations/files/{generationFileId}
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 ''
Below you find an example response body to the API call above.
As a result, the generated account transactions report was dowloaded.
In this use case we will activate a new deposit product that was created as a previous step.
The path parameter is depositTypeCode. We will use the PREMIUM deposit product.
.../product/PREMIUM/activate
To activate a deposit product, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v1/deposits/product/{depositTypeCode}/activate
Below you find an example response body to the API call above.
As a result, the PREMIUM deposit product was activated.
If you need to generate and download the report, follow these steps:
Request to generate a report.
Check the report generation status.
Download the requested report.
For more detailed information about the report's workflow, see the example of account transactions report below.
You can generate an accounts transactions report in CSV or JSON format by following these steps:
In this example, you can learn how to replace all roles and their privileges in the target Tuum environment.
This endpoint is disabled for the Prod (Live) environment and is available only for non-Prod environments like DEV, TEST, or similar ones.
As a precondition to import, first export all roles and associated privileges by making the API call, as shown in the example of exporting selected roles with an empty request body.
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.
We want to import all roles to the target environment and thus we have to use the roles and privileges from the response of the export done before.
The system will import only roles and privileges with a valid validity range.
To import all roles and privileges, make the following API call with the roles and associated privileges (exported before) in the request body.
https://auth-api.{another-environment}.tuumplatform.com/api/v1/roles/privileges/import
All valid roles and their privileges in the target environment have been replaced with roles and associated privileges exported from the source environment.
In this example, we will review how to deactivate a deposit product.
The path parameter is depositTypeCode. We will use the PREMIUM deposit product.
...product/PREMIUM/deactivate
To deactivate a deposit product, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v1/deposits/product/{depositTypeCode}/deactivate
Below, you find an example response body to the API call above.
As a result, the PREMIUM deposit product was deactivated.
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:
In this section, you will find instructions on how to create the following types of outgoing payments:
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.
To refresh a valid JSON Web Token, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh
Below is an example request body of the API call to refresh a valid JSON Web Token.
Below you find an example response body to the API call above.
The response will contain a fresh JSON Web Token with an updated expiration time.
In this use case, we will create a new employee with the following data set:
To create a new employee, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/employees
Below is an example request body of the API call for creating an employee.
Below you find an example response body to the API call above.
As a result, a new employee with the employeeId: ID-1183
was created.
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.
To create customer credentials, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/credentials/invalidate
POST
https://auth-api.sandbox.tuumplatform.com/api/v1/credentials/invalidate
Learn more about the in the Tuum developer portal.
Below is an example request body of the API call to invalidate customer credentials.
Please make sure to input the username
and password
of the particular customer when submitting your request.
Below you find an example response body to the API call above.
After making the API call, the customer's credentials become invalid, making it impossible to authenticate themselves.
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.
To retrieve customer data, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/addresses
Below is an example request of the API call to retrieve person addresses.
No request body.
Below you find an example response body to the API call above.
The result of the API call is the overview of the addresses linked to the person.
In this example, we will review how to find a deposit offer using the application ID.
To find a deposit offer that was automatically created by the deposit application, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v2/applications/{applicationId}/offers
Below you find an example response body to the API call above.
As an outcome, we found the deposit offer ID ID-1696407305
and fetched related details.
This guide will help you find details about an individual or a legal entity.
The endpoint provides a detailed overview of the person from various APIs.
The endpoint provides person's address details.
Based on your use case, use either of the endpoints to retrieve person data:
To use Tuum's API, you must first authenticate. Once you have completed the authentication process, you will receive a . This token allows you to make authorised API calls within the Tuum system.
Tuum has two different API endpoints for authentication:
,
.
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:
In this example, we will review how to forget a person record forever and make it unrecoverable.
To remove the restoration key, make the following call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3415/forget/key
Below is an example request to remove the restoration key call.
No request body.
The remove restoration key endpoint generates the following response.
The restoration key of a forgotten person ID-3415
is removed. The personal data that belong to the person is non-recoverable.
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.
To create customer credentials, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/credentials
Below is an example request body of the API call to create customer credentials.
Please make sure to input the username
and password
of the particular customer when submitting your request.
Below you find an example response body to the API call above.
After making the API call, customer credentials will be created so that they can authenticate themselves.
"personGroupCode": "BUSINESS"
"description": "Premium customers"
All roles and privileges from the
response of the export done before.
curl -X POST 'https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTA6MDM6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1Mzg2MDF9.vOLapdiXflbGV4c2pJnziQzgJzP1MYPPBcdk4wIZdoM' \
-d ''
https://auth-api.sandbox.tuumplatform.com/api/v1/authorise/refresh
{
"errors": null,
"validationErrors": null,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMjhUMTA6MDM6MjEiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTA1Mzg2MDF9.vOLapdiXflbGV4c2pJnziQzgJzP1MYPPBcdk4wIZdoM"
}
}
We will create a record for a Test Employee.
"username": "[email protected]",
"email": "[email protected]",
"firstName": "Test",
"lastName": "Employee"
Test Employee is a Customer Support representative.
"roles": [
"CUSTOMER_SERVICE"
]
The employee password must be 12 to 20 characters long and contain one upper-case letter, one digit, and one special character.
"password": "Vys%k6;)#,bab"
The name of the tenant where new employee is created.
"tenantCode": "BANK"
{
"errors": null,
"validationErrors": null,
"data": {
"employeeId": "ID-1183",
"firstName": "Test",
"lastName": "Employee",
"username": "[email protected]",
"email": "[email protected]",
"authenticationMethod": "PASSWORD",
"defaultTenantCode": "MB",
"roles": [
"CUSTOMER_SERVICE"
],
"tenants": [
{
"tenantEmployeeId": "ID-1213",
"defaultTenant": true,
"tenantId": "ID-1000",
"tenantCode": "BANK",
"roles": [
"CUSTOMER_SERVICE"
]
}
],
"externalId": null,
"lastLogin": "2024-11-25T12:28:04.635156Z",
"blockedUntil": null,
"failedAttempts": 0
}
}
curl --location 'https://auth-api.sandbox.tuumplatform.com/api/v1/employees' \
--header 'x-channel-code: BACKOFFICE' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTEtMjVUMTM6MDc6MTUiLCJleHAiOjE3MzI1NDAwMzUsInJvbGVzIjpbIkFETUlOIl19.zIFVF28Qu62-9V6xRJI_t1QpnWd4HdPpPSFx5FaepEM' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "[email protected]",
"email": "[email protected]",
"firstName": "Test",
"lastName": "Employee",
"roles": [
"CUSTOMER_SERVICE"
],
"password": "Vys%k6;)#,bab",
"tenantCode": "BANK"
}'
{
"username": "[email protected]",
"email": "[email protected]",
"firstName": "Test",
"lastName": "Employee",
"roles": [
"CUSTOMER_SERVICE"
],
"password": "Vys%k6;)#,bab",
"tenantCode": "BANK"
}
{
"errors": null,
"validationErrors": null,
"data": null
}
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"
}'
{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}
Private person with Tuum personId: ID-3392
.
.../persons/ID-3392/addresses
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/addresses' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjFUMTA6NTc6MzIiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTYyODkwNTJ9.nz1Fm5JV4tgUvL9rD-PbVb_fBVbIgbbxDhVpPdp6h2Q' \
--header 'x-channel-code: SYSTEM' \
--data ''
{
"errors": null,
"validationErrors": null,
"data": [
{
"addressId": "ID-3052",
"personId": "ID-3392",
"addressTypeCode": "R",
"street1": "85 Park End St",
"street2": null,
"cityCounty": "Broomhill",
"stateRegion": null,
"zip": "NE65 0YW",
"countryCode": "GB",
"moveInDate": null,
"validityRange": {
"endTime": null,
"startTime": "2023-06-01T07:55:53.213023Z"
}
}
]
}
Searching the deposit offer that was created for the deposit application with ID-1696407202
.
...applications/ID-1696407202/offers
{
"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
}
}
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
curl -L -X DELETE 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3415/forget/keyhttps://person-api.{{env}}.{{domain}}/api/v1/persons/ID-3415/forget/key' \
-H 'x-channel-code: BACKOFFICE' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTJUMTQ6MDg6MTYiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkxNzA4OTZ9.Weps_UVn2b2iOkcZYgSyZd_mcxu7TSoOVxABvDWsWkI' \
-d '{
"processReason": "OTHER",
"processDate": "2023-06-15"
}'
{
"errors": null,
"validationErrors": null,
"data": null
}
{
"errors": null,
"validationErrors": null,
"data": {
"credentialId": "ID-1005",
"personId": "ID-1038",
"username": "customer_username",
"tenantId": "ID-1000"
}
}
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"
}'
{
"personId": "ID-1038",
"username": "customer_username",
"password": "customer_password"
}
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.
A private person with personId: ID-3392
...persons/ID-3392/person-groups
A customer group for business customers
To assign a person to the customer group, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/person-groups
Below is the example body request of the API call for assigning a person to the group.
{
"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"
}'
Here you find an example response body to the API call above.
The user ID-3392
is assigned to the BUSINESS customer group.
In this example, we will review how to create an account class rule.
Setting a new rule for the internal accounts type.
The was generated in the previous API call.
The validity range of the rule. The validity range format: YYYY-MM-DD.
To create a new account type class rule, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v1/account-type-class-rules
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"
}
}'
Below you find an example response body to the API call above.
A new account type class rule was created.
In this example, we will show how to create an account class code.
Create a new account class code.
To create a new account class code, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v1/account-class-codes
POST
https://account-api.sandbox.tuumplatform.com/api/v1/account-class-codes
See more information about this endpoint in the Tuum developer portal.
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"
}'
Below you find an example response body to the API call above.
A new account class code is created.
In this example, we will review how to accept a deposit offer.
We will accept the deposit offer ID-1696407305
.
...v1/offers/ID-1696407305/accept
To accept a deposit offer, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v2/offers/{offerId}/accept
Below you find an example response body to the API call above.
As a result the deposit offer ID-1696407305
was accepted.
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.
The new class code is created for the premium customers group.
To create a new deposit class code, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v1/deposit-class-codes
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"
}'
Below you find an example response body to the API call above.
As an outcome, a new deposit class code for premium customers was created.
After confirming a SEPA payment, we will check that the credit transfer exists using SEPA API with the payment ID.
The path parameter is the payment ID. The ID is taken from the response to the payment request.
To find the payment, use the following endpoint:
https://sepa-api.sandbox.tuumplatform.comapi/v1/batch/PAYM-8813/settlement-transactions
Below you will find the response to the sample request:
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.
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.
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:
To view the examples, go to the following pages:
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:
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.
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.
To add additional contact to the person, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3394/additional-contacts
Below is an example request body of the API call for creating additional contacts.
Here you find an example response body to the API call above.
A new fraud department contact is added to the person.
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.
To create a new account limit code, make the following call.
https://account-api.sandbox.tuumplatform.com/api/v1/limits/codes
See more information about this in the Tuum developer portal.
Below is an example body request of the API call for creating an account limit code.
Below you find an example response body to the API call above.
A new limit code NEW_ACCOUNT_LIMIT
is created and enabled. This parameter will be used for setting up an account limit type.
In this example, we will review how to request to generate account transactions report.
To request account transaction report, make the following call.
https://account-api.sandbox.tuumplatform.com/api/v4/accounts/{accountId}/transactions/export
In the sample below you will find information on how to request an account transactions report.
Below you will find an example response to the API call from above.
As a result, an account transaction report was requested.
Below, you will find a sample of transaction export file. This way the file is structured after being .
Here, we will create a single currency account limit type with the account scope.
To create an account limit type, make the following call.
https://account-api.sandbox.tuumplatform.com/api/v1/limits/types
Below is an example request body of the API call for creating an account and setting access rights.
Below you find an example response body to the API call above.
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.
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.
To initiate the forget person process, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3204/forget/start
Below is an example request body of the forget person API call.
The forget person generates the following response.
As an outcome, the personal data of Rhys Davey ID-3204
is forgotten.
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.
The by default processReason-s for private and legal persons:
ERROR,
OTHER.
To reactivate a person, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3204/reactivate/start
Below is an example request body of the API call to inactivate a person.
Below you find an example response body to the API call above.
The person's status is changed to PENDING
. The person can be activated with endpoint.
In this example, we will review how to check the status of a requested report file.
To find the status of the requested report, make the following API call.
reports-api.sandbox.tuumplatform.com/
api/v2/generations/{generationId}
Below is an example request of the API call to find report status.
No request body.
Below you find an example response body to the API call above.
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
.
In this example, we will review how to find an employee by username.
To find an employee by username
, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/employees/{employeeId}
Below is an example request of the API call to retrieve customer data.
No request body.
Below you find an example response body to the API call above.
The result of the API call is the dataset of a particular employee.
In this example, we will find the .
deposit-api.sandbox.tuumplatform.com/api/v1/deposits/product/{depositTypeCode}
Below you find an example response body to the API call above.
As a result, a complete set of product details about the PREMIUM deposit product was returned.
In this example, we will review how to decline a deposit offer.
deposit-api.sandbox.tuumplatform.com/api/v3/offers/{offerId}/decline
Below is an example request body of the API call for declining a deposit offer.
Below you find an example response body to the API call above.
As a result, a deposit offer ID-1718023943
was declined.
We will use the AML API to find the AML-related information of a payment.
To find the AML details, use the following endpoint:
https://aml-api.sandbox.tuumplatform.com/api/v1/aml/process/by-payment?paymentId=PAYM-8834
Below you will find the response to the sample request:
With this request, we can see the AML status of the payment.
After and for a quote request, we will initiate the FX order. Initiating refers to confirming the FX request which creates an FX order.
We will confirm an FX request that we created.
To confirm the FX request, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v1/accounts/ID-1026/fx-quotes/ID-1263/confirm/ID-1217
Below you will find the response to the sample request:
We have now confirmed the FX request and created a quote order which is in the status WAITING_FOR_PROCESSING. After the quote order is processed successfully by the service provider (in this case, Banking Circle), the status of the order is CONFIRMED.
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"
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
The personId of Rhys Davey who we want to reactivate isID-3204
.
.../persons/ID-3204/reactivate/start
Since the person returned as a client, the reason can be set as OTHER.
"processReason": "OTHER"
The reactivation 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/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"
}'
{
"errors": null,
"validationErrors": null,
"data": null
}
"personGroupCode": "BUSINESS"
"accountTypeCode": "INTERNAL"
"accountClassCode": "NEW"
"validityRange": {
"startDate": "2023-07-31"
}
{
"description": "New account class code",
"accountClassCode": "NEW"
}
{
"description": "Class code for premium customers",
"depositClassCode": "PREMIUM_CUSTOMER"
}
".../PAYM-8813/settlement-transactions"
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": "[email protected]"
The phone number of the contact.
"phoneNumber": "0901820"
The country code of the phone number.
"phoneCountryCode": "+49"
{
"errors": null,
"validationErrors": null,
"data": {
"additionalContactId": "ID-1009",
"personId": "ID-3394",
"contactTypeCode": "FRAUD_CONTACT",
"description": "Contacts for fraud department",
"email": "[email protected]",
"phoneCountryCode": "+49",
"phoneNumber": "0901820",
"preferredMethodOfContact": false,
"validityRange": {
"endTime": null,
"startTime": "2024-05-21T06:46:42.928Z"
}
}
}
curl --location 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3394/additional-contacts' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjFUMDc6MjY6NTMiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE3MTYyNzY0MTN9.sQw8rjIaygzdHjCKDSlEQsHu0Lvh3U0EjAWWEYaAH5A' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data-raw '{
"contactTypeCode": "FRAUD_CONTACT",
"description": "Contacts for fraud department",
"email": "[email protected]",
"phoneNumber": "0901820",
"phoneCountryCode": "+49"
}'
{
"contactTypeCode": "FRAUD_CONTACT",
"description": "Contacts for fraud department",
"email": "[email protected]",
"phoneNumber": "0901820",
"phoneCountryCode": "+49"
}
The technical name of the account limit code.
"code": "NEW_ACCOUNT_LIMIT"
The description of the new account limit code.
"name": "New account limit"
The account limit code is enabled.
"enabled": true
{
"errors": null,
"validationErrors": null,
"data": {
"code": "NEW_ACCOUNT_LIMIT",
"name": "New account limit",
"description": null,
"enabled": true
}
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v1/limits/codes' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTFUMTM6NDg6MDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkwODMyODB9.w8DHO1S6HtsPCmAc98IG3F3b7bN2f2m7mlHoXf2gR4U' \
-H 'Content-Type: application/json' \
-d '{
"code": "NEW_ACCOUNT_LIMIT",
"name": "New account limit"
}'
{
"code": "NEW_ACCOUNT_LIMIT",
"name": "New account limit",
"enabled": true
}
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"
{
"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
}
}
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"
}'
{
"exportFileType": "JSON",
"dateFrom": "2029-04-01",
"dateTo": "2029-05-31",
"dateType": "POSTING_DATE"
}
The limit must be applicable on the account level.
"scopeTypeCode": "ACCOUNT"
The limit is active on a montly basis.
"periodTypeCode": "MONTHLY"
The limit is calculated per currency.
"calcTypeCode": "PER_CURRENCY"
The limit code that was generated in the previous call.
"limitCode": "NEW_ACCOUNT_LIMIT"
{
"errors": null,
"validationErrors": null,
"data": {
"limitTypeId": "ID-1002",
"scopeTypeCode": "ACCOUNT",
"periodTypeCode": "MONTHLY",
"calcTypeCode": "PER_CURRENCY",
"limitCode": "NEW_ACCOUNT_LIMIT"
}
}
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"
}'
{
"scopeTypeCode": "ACCOUNT",
"periodTypeCode": "MONTHLY",
"calcTypeCode": "PER_CURRENCY",
"limitCode": "NEW_ACCOUNT_LIMIT"
}
curl -X 'POST' \
'https://person-api.dev.tuum.xyz/api/v1/persons/ID-3204/forget/start' \
-H 'accept: */*' \
-H 'x-channel-code: SYSTEM' \
-H 'x-tenant-code: MB.EU' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjc3JmVG9rZW4iOiJzdHJpbmciLCJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTZUMTg6NDg6NDQiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHAiOjE2ODY5NDEzMjR9.OBniiwiaI2ZN1PMdr6InOjUNtg22vEso8wnpV6kJ104' \
-H 'Content-Type: application/json' \
-d '{
"processReason": "CUSTOMER_REQUESTED",
"processDate": "2023-06-15"
}'
{
"processReason": "CUSTOMER_REQUESTED",
"processDate": "2023-06-15"
}
{
"errors": null,
"validationErrors": null,
"data": null
}
The generationId
number of the report file that was previously requested.
...api/v2/generations/ID-ID-2864
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
}
}
We will search for the employee with the [email protected]
username.
...api/v1/employees/[email protected]
curl --location 'https://auth-api.sandbox.tuumplatform.com/api/v1/employees/username?username=test.employee%40bank.com' \
--header 'x-channel-code: BACKOFFICE' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjUtMDEtMDZUMjI6MzA6MjIiLCJleHAiOjE3MzYyMDI2MjIsInJvbGVzIjpbIkFETUlOIl19.N67SgRQZXpJHFCh-Ea6oAyQjlq86kl8vUkEyokn6bDw' \
--data ''
{
"errors": null,
"validationErrors": null,
"data": {
"employeeId": "ID-1183",
"firstName": "Test",
"lastName": "Employee",
"username": "[email protected]",
"email": "[email protected]",
"authenticationMethod": "PASSWORD",
"defaultTenantCode": "MB",
"roles": [
"CUSTOMER_SERVICE"
],
"tenants": [
{
"tenantEmployeeId": "ID-1213",
"defaultTenant": true,
"tenantId": "ID-1000",
"tenantCode": "MB",
"roles": [
"CUSTOMER_SERVICE"
]
}
],
"externalId": null,
"lastLogin": "2024-11-25T12:28:04.635156Z",
"blockedUntil": null,
"failedAttempts": 0
}
}
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"
}
}
We will decline a deposit offer ID-1718023944.
...offers/ID-1718023944/decline
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v3/offers/ID-1718023944/decline' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMDYtMjdUMDk6NDU6NTgiLCJleHAiOjE3MTk0ODE1NTgsInJvbGVzIjpbIkFETUlOIl19.Iek0Ie70FXaTaduvpSat17RcEV8KPp9c9JsL14S1QOU' \
--header 'Content-Type: application/json' \
--data '{
"reasonCode": "DOCUMENT_MISSING"
}'
{
"reasonCode": "DOCUMENT_MISSING"
}
{
"errors": null,
"validationErrors": null,
"data": {
"offerId": "ID-1718023943",
"personId": "ID-1015",
"applicationId": null,
"depositGroupCode": "TIME_DEPOSIT",
"depositTypeCode": "PREMIUM",
"terminationType": "WITHOUT_INTEREST",
"statusCode": "DECLINED",
"reasonCode": null,
"accountId": "ID-1012",
"interestRate": 0.25,
"period": 3,
"periodTypeCode": "MONTH",
"endDate": null,
"initialMoney": {
"amount": 5000.00,
"currencyCode": "EUR"
},
"interestPaymentFreqCode": "MONTH",
"prolongationCode": "PRINCIPAL",
"countryCode": "EE",
"maturityDate": "2025-03-30",
"returnAmount": {
"amount": 5003.12,
"currencyCode": "EUR"
},
"postingDate": "2024-12-30",
"lastValidDate": "2024-12-31",
"channelCode": "BACKOFFICE",
"tenantCode": "MB",
"contractHeaderId": null,
"contractNumber": null,
"depositClassCode": "PREMIUM_CUSTOMER",
"payoutDetails": {
"name": "Tech Writing",
"accountNumber": {
"value": "XX47XXXX99999000000000000000122",
"type": "IBAN"
},
"financialInstitutionId": null,
"referenceNumber": null,
"countryCode": null
},
"personTypeCode": "P",
"taxResidencyCountryCode": "EE",
"taxExempt": false
}
}
The query parameter is the payment ID. The ID is taken from the response to the payment request.
".../by-payment?paymentId=PAYM-8834"
{
"errors": null,
"validationErrors": null,
"data": {
"processId": "ID-7878",
"paymentId": "PAYM-8834",
"statusCode": "PROCESSED",
"resultCode": "APPROVED",
"source": null,
"providerInfo": null
}
}
The first path parameter is the technical ID of the account to which the payment is being made.
".../ID-1026/fx-quotes/..."
The second path parameter is the FX quote request ID that we got from initialising the request.
".../ID-1263/confirm/..."
The third path parameter is the quote response ID.
".../ID-1217"
{
"errors": null,
"validationErrors": null,
"data": {
"quoteOrderId": "ID-1127",
"quoteRequestId": "ID-1273",
"quoteResponseId": "ID-1217",
"statusCode": "WAITING_FOR_PROCESSING",
"orderDtime": "2023-07-20T10:53:38.716275Z",
"reservationId": "ID-5958",
"paymentServiceProviderCode": "BC"
}
}
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.
Updating private person with Tuum personId: ID-3392
.
...persons/ID-3392/personal
Adding the middleName: Harry
.
To update the particular person's record, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/personal
Below is an example request of the API call to update the particular customer's data.
{
"surname": "Tuum",
"givenName": "Trevor",
"middleName": "Harry",
"identificationNumber": {
"idNumberId": "ID-1770",
"idNumber": "DQ654327C",
"idCountryCode": "GB"
}
}
curl --location --request PUT 'https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3392/personal' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMDctMjRUMTE6MjU6NTMiLCJleHAiOjE3MjE4MjAzNTMsInJvbGVzIjpbIkFETUlOIl19.G-2NqlqmoHvoBRj3666a-Lv8VGRUybpX-ta4UPRpcsQ' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data '{
"surname": "Tuum",
"givenName": "Trevor",
"middleName": "Harry",
"identificationNumber": {
"idNumberId": "ID-1770",
"idNumber": "DQ654327C",
"idCountryCode": "GB"
}
}'
When using the example request, please change the x-auth-token to the one you obtained with your authentication API call.
Below you find an example response body to the API call above.
The middleName of the private person is updated.
In this example, you can learn how to retrieve specific roles and their privileges from the source Tuum environment.
In this example, we will export specific roles and privileges.
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.
To export specific roles and privileges, make the following API call.
https://auth-api.sandbox.tuumplatform.com/api/v1/roles/privileges/export
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"
]
}'
Below you find an example response body to the API call above.
The selected valid roles ACCOUNTANT and TEST_LT with related privileges have been exported.
In this example, we will review how to set up an account limit and apply it to the particular account.
The account limit type that was created in the . The account scope, monthly, per-currency limit.
The current account id to which the account limit is going to be applied.
The account limit amount is 10000 EUR.
To create a new account limit, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v2/accounts/limits
POST
https://account-api.sandbox.tuumplatform.com/api/v2/accounts/limits
See more information about this endpoint in the Tuum developer portal.
Below is an example request body of the API call for creating an account limit.
{
"limitTypeId": "ID-1002",
"accountId": "ID-1279",
"amount": {
"amount": "10000",
"currencyCode": "EUR"
}
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v2/accounts/limits'
-H 'x-channel-code: SYSTEM'
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTlUMTU6MDU6MzYiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODk3NzkxMzZ9.ITizqprIzqJfEhgygd8ij1gxzN2Wj5yNiR5U6IxI_c4'
-H 'Content-Type: application/json'
-d '{ "limitTypeId": "ID-1002", "accountId": "ID-1279", "amount": { "amount": "10000", "currencyCode": "EUR" } }'
Below you find an example response body to the API call above.
A new account limit ID-1445
was created on the current account ID-1279
.
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.
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.
To create financial data, call the following endpoint.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3394/financial-data
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
}'
Below you will find an example response to the API call from above.
Assets as a currency worth 10000000 EUR are added to the legal person.
In this use case, we will create an interest adjustment for an active deposit contract. We will use the deposit contract that was previously created.
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.
To adjust the deposit contract interest, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v1/contracts/{headerId}/adjustments
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"
}
}'
Below you will find an example response body to the API call above.
As a result a deposit contract interest adjustment: INTEREST_INCREASE with ID-1021
was created.
In this case, we will review how to find the ID of a created deposit application using person ID.
We will find an existing that was created for the test person with ID-2660
.
...v2/persons/ID-2660/applications
This API call requires mandatory query parameters pageSize and pageNumber.
...?pageSize=1&pageNumber=1
To find a deposit application, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v3/persons/{personId}/applications
Below you find an example response body to the API call above.
As a result we found the deposit application with the ID-1696407202
and fetched other information related to the deposit application.
Here we will review how to update the person address.
Updating the addressId ID-3088
of the legal person with personId ID-3397
.
...persons/ID-3397/addresses/ID-3088
New address reference.
To update person address, make the following call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3397/addresses/ID-3088
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"
}'
Below you find an example response body to the API call above.
The person address information is updated.
In this example, we will review how to create a currency account (account application) with an external service provider.
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.
To create an account application, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v2/persons/{personId}/applications
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"
}'
Below you find an example response body to the API call above.
A new account application ID-1007
is created.
In this example, you can learn how to add specific roles and their privileges to the target Tuum environment.
We will import specific roles and associated privileges using the data retrieved in the previous .
The system will import only roles and associated privileges with a valid validity range.
To import specific roles and associated privileges to the target environment, make the following API call.
Ensure the target environment for the import is different from the export environment.
https://auth-api.target-environment.tuumplatform.com/api/v1/roles/privileges/import
Below is an example request body of the API call for import roles.
Below you find an example response body to the API call above.
The selected valid roles ACCOUNTANT and TEST_LT with related privileges have been imported.
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.
To activate the person, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-29367/activate
Below is an example request of the API call to activate person.
No request body.
Below you will find an example response to the API call from above.
A private person Ashley Tuum has been activated.
In this example, we will review how to edit a deposit offer.
To edit a deposit offer, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v2/offers/{offerId}
Below is an example request body of the API call for editing a deposit offer.
Below you find an example response body to the API call above.
As a result the deposit offer ID-1718024058
was updated. The initial offer amount was changed.
In this example, we will review how to add a document record for a person.
To create a person document, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/documents
Below is an example request body of the API call for creating a person document.
Below you will find an example response to the API call from above.
A new passport record ID-1024
was added for a private person.
In this example, we will review how to fetch the account transactions.
To search the account transactions, make the following call.
https://account-api.sandbox.tuumplatform.com/api/v4/accounts/{accountId}/transactions/search
Below is the sample request to find account transactions.
Below you find an example response body to the API call above.
The details of the existing account transactions are fetched.
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.
Person inactivation is not permanent and person can be to PENDING
status and later to ACTIVE
status.
You can use different values for the processReason parameter. See below:
The processReason for private person:
MERGER,
DEATH,
OTHER,
LEFT_FOR_COMPETITOR,
DATA_RETENTION_PERIOD_END.
The processReason for legal person:
MERGER,
LIQUIDATION,
OTHER,
LEFT_FOR_COMPETITOR,
DATA_RETENTION_PERIOD_END.
To inactivate a person, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons/ID-3204/inactivate/start
Below is an example request body of the API call to inactivate a person.
Below you find an example response body to the API call above.
The person's status is changed to INACTIVE
.
In this use case, we will review how to update a deposit product. We will change the deposit product that was created in a .
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:
To update a deposit product, make the following API call.
deposit-api.sandbox.tuumplatform.com/
api/v2/deposits/product/{depositTypeCode}
Below is an example request body for the API call to update a deposit product.
Below, you find an example response body to the API call above.
As a result, the following deposit product settings were updated:
description,
countryCode,
contractNumberPrefix,
terminationType,
period,
perconTypeCode,
validityRange - endDate.
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.
To retrieve customer data, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v3/persons/ID-3392
Below is an example request of the API call to retrieve customer data.
No request body.
Below you find an example response body to the API call above.
The result of the API call is the dataset of the particular person.
After , we need to get the response ID for the request.
We will get the FX quote response ID for a request we created with sample data.
To get the FX response ID, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v1/accounts/ID-1026/fx-quotes/ID-1263
Learn more about the from the developer portal.
Below you will find the response to the sample request:
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.
The personId of the Ashley Tuum is ID-29367
.
...persons/ID-29367/activate
{
"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"
}
}
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''
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
}
}
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
}
The product description is updated.
"description": "Premium deposit Germany"
The deposit country is set to Germany.
"countryCode": "DE"
The contract number prefix is modified.
"contractNumberPrefix": "PR-DE-"
The premature deposit contract termination is with interest.
"terminationType": "WITH_TOTAL_INTEREST"
The deposit contract period is 12 months.
"period": 12
The deposit is offered for legal entities.
"personTypeCode": "L"
The deposit product end is updated. Note: the date format is YYYY-MM-DD.
"endDate": "2031-02-08"
{
"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"
}'
{
"errors": null,
"validationErrors": null,
"data": null
}
Private person with Tuum personId: ID-3392
.../persons/ID-3392
{
"errors": null,
"validationErrors": null,
"data": {
"personId": "ID-3392",
"personTypeCode": "P",
"statusCode": "ACTIVE",
"statusCodeReason": null,
"name": null,
"givenName": "Trevor",
"middleName": null,
"surname": "Tuum",
"birthDate": null,
"creationDate": "2023-06-01",
"deathDate": null,
"liquidationDate": null,
"inactivationDate": null,
"registrationDate": null,
"sex": null,
"email": null,
"customerTypeCode": null,
"nationality": null,
"taxResidencyCountry": null,
"placeOfBirth": null,
"countryOfBirth": null,
"phoneCountryCode": null,
"phoneNumber": null,
"idNumber": "DQ654327C",
"idCountryCode": "GB",
"residencyCountryCode": null,
"language": null,
"educationCode": null,
"activityCode": null,
"housingTypeCode": null,
"buildingTypeCode": null,
"moveInDate": null,
"maritalStatusCode": null,
"dependantPersons": null,
"employmentTimeCode": null,
"fixedEmploymentLength": null,
"businessAreaCode": null,
"intraOrgCode": null,
"tradingName": null,
"webAddress": null,
"pepExplanation": null,
"legalForm": null,
"businessModelDescription": null,
"counterpartySectorCode": null,
"forgotten": null,
"usResident": false,
"pep": false,
"source": null,
"tenantCode": "MB",
"fullName": "Trevor Tuum"
}
}
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'
"middleName": "Harry"
"roleCodes": [
"ACCOUNTANT",
"TEST_LT"
]
"limitTypeId": "ID-1002"n
"accountId": "ID-1279"
"amount": {
"amount": "10000",
"currencyCode": "EUR"
}
"financialDataTypeCode": "ASSETS"
"financialDataValueTypeCode": "CURRENCY"
"currencyCode": "EUR"
"period": 12
"currentPeriodValue": 10000000
"eventTypeCode": "INTEREST_INCREASE",
"componentTypeCode": "INT",
"money": {
"amount": 0.25,
"currencyCode": "EUR"
}
"street1": "Brick Lane 4"
"accountTypeCode": "CURRENCY"
"accountTypeSetupCode": "EXTERNAL_VIRTUAL",
"serviceProviderCode": "LHV",
"personName": "Trevor Harry Tuum"
"customerGroupCode": "GROUP_A"
"priceListTypeCode": "STANDARD"
"currencyCode": "EUR"
"accountInterestRate": 10
"personTypeCode": "P"
The role codes we're importing roles and privileges for are: ACCOUNTANT
and TEST_LT
.
The roles and privileges combination was obtained from the Export selected roles endpoint.
In this example, the role ACCOUNTANT
already existed in the target environment, but role TEST_LT
is a new role.
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
}
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
}
]
}
'
{
"errors": null,
"validationErrors": null,
"data": null
}
{
"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
}
]
}
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"
}
{
"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
}
}
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
}'
{
"initialMoney": {
"amount": 6000,
"currencyCode": "EUR"
},
"period": 3,
"interestPaymentFreqCode": "END",
"taxResidencyCountryCode": "EE",
"prolongationCode": "PRINCIPAL",
"taxExempt": "false",
"interestRate": 0.35
}
Adding a document record for a private person ID-3392
.
...persons/ID-3392/documents
Adding the person's passport details.
{
"issuingCountry": "GB",
"number": "0124R5M1P5",
"documentTypeCode": "PASSPORT",
"expiryDate": "2025-01-03"
}
{
"errors": null,
"validationErrors": null,
"data": {
"docuId": "ID-1024",
"personId": "ID-3392",
"issuingCountry": "GB",
"number": "0124R5M1P5",
"documentTypeCode": "PASSPORT",
"expiryDate": "2025-01-03",
"validityRange": {
"startTime": "2023-07-17T17:47:42.187928Z",
"endTime": null
}
}
}
curl -L -g 'https://person-api.{{env}}.{{domain}}/api/v1/persons/ID-3392/documents' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTdUMTg6Mzk6MTAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODk2MTkxNTB9.cfzAzYCJ2lAWGHj_YxX9-vc21YS-ekBsZvOJx9C9Pqk' \
-H 'Content-Type: application/json' \
-d '{
"issuingCountry": "GB",
"number": "0124R5M1P5",
"documentTypeCode": "PASSPORT",
"expiryDate": "2025-01-03"
}'
{
"issuingCountry": "GB",
"number": "0124R5M1P5",
"documentTypeCode": "PASSPORT",
"expiryDate": "2025-01-03"
}
The first path parameter is the technical ID of the account to which the payment is being made.
".../ID-1026/fx-quotes/..."
The second path parameter is the FX quote request ID that we got from initialising the request.
".../ID-1263"
{
"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"
}
}
In this example, we will review how to create a deposit application with a minimum data set.
We will create a deposit application for a test person whose account ID is ID-2660
.
...persons/ID-2660/applications
The amount that the test person is going to deposit is 5000 EUR.
The deposit application is opened for a PREMIUM created earlier.
The servicing account ID that is tied to the deposit. Note: see the article to learn more about the account creation.
The deposit is offered with the 3 month duration. The interest will be paid at the end of the contract period. The deposit's jurisdiction country is Estonia.
The tax residency code determines which tax rate is enabled for this country when deducting the tax from the interest during the pay out. The tax exempt is false by default. Note: the taxResidencyCountryCode and taxExempt parameters are editable even after the deposit contract is created or activated.
deposit-api.sandbox.tuumplatform.com/api/v2/persons/{personId}/applications
Below is an example request body of the API call for creating a deposit application.
{
"initialMoney": {
"amount": 5000,
"currencyCode": "EUR"
},
"depositTypeCode": "PREMIUM",
"accountId": "ID-5334",
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE",
"taxResidencyCountryCode": "EE",
"taxExempt": "false"
}
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v2/persons/ID-2660/applications' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIuRVUiLCJleHBpcnlEVGltZSI6IjIwMjQtMDUtMjlUMTc6MjM6MDQiLCJleHAiOjE3MTcwMDMzODQsInJvbGVzIjpbIkFETUlOIl19.RyH47_HA4Run4sJtIGeiJmxhlN8sCin_GnGLH_6qKZc' \
--header 'Content-Type: application/json' \
--data '{
"initialMoney": {
"amount": 5000,
"currencyCode": "EUR"
},
"depositTypeCode": "PREMIUM",
"accountId": "ID-5334",
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE",
"taxResidencyCountryCode": "EE",
"taxExempt": "false"
}'
Below you find an example response body to the API call above.
As a result, a new deposit application ID-1696407202
was created.
In this example, we will find the deposit contract that was automatically created by the Tuum system after accepting the related deposit offer.
We will find an existing deposit contract that was with the ID-2660
.
...v2/persons/ID-2660/contracts
This API call requires mandatory query parameters pageSize and pageNumber.
...?pageSize=1&pageNumber=1
/deposit-api.sandbox.tuumplatform.com/api/v3/persons/{personId}/contracts
Below you will find an example response body to the API call above.
As a result, we found the deposit contract number PR-EE-1000
with headerId ID-1696407222
and activeVersionId ID-1696407267
.
In this example, we will review how to terminate an active contract prematurely (before the contract reaches its end date). We will use the deposit contract that was previously created.
The contract header is ID-1696407222.
See the page for more details.
...contracts/ID-1696407222/...
The active contract version is ID-1696407267.
See the page for more details.
.../versions/ID-1696407267/...
The deposit contract is terminated without any of the interest it has accrued during the term period.
To terminate an active contract prematurely, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v2/contracts/{headerId}/versions/{versionId}/prepare-for-termination
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"
}'
Below you will find an example response body to the API call above
As a result, the deposit contract is set to the TERMINATING
status.
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.
The contract header is ID-1696407222.
See the page for more details.
...v2/contracts/ID-1696407222
We will change the tax residency country from Estonia to Germany.
We will set the tax exemption to true.
To update the contract header, make the following API call.
deposit-api.sandbox.tuumplatform.com/
api/v2/contracts/{headerId}
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"
}'
Below you find an example response body to the API call above.
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.
In this example, we will review how to create a currency account for a legal person and add access rights for a private person.
To create an account and set access rights, make the following call.
https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/accounts
Below is an example request body of the API call for creating an account and setting access rights.
Below you find an example response body to the API call above.
A new current account ID-1286
was created. The private person ID-3397
was granted all rights to the created account.
Here we will review how to set up an bank technical account - internal account.
To create an internal account, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/accounts
Below is an example request body of the API call for creating an internal account.
Below you find an example response body to the API call above.
The outcome of the API call is the complete set of account data. Including the parameters generated by the Tuum system:
In this example we will review how to open a currency account with the minimal set of date.
To create an account for a person, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/accounts
Below is an example request body of the API call for creating an account.
Below you find an example response body to the API call above.
The outcome of the API call is the complete set of account data. Including the parameters generated by the Tuum system:
In this example we will review the first step of the deposit contract origination flow that starts with creating a deposit offer.
POST
/deposit-api.sandbox.tuumplatform.com/api/v2/persons/{personId}/offers
Below is an example request body of the API call for creating a deposit offer.
Below you find an example response body to the API call above.
As an outcome, a new deposit offer ID-1718024058
was created.
In this example, we will change the contract prolongation status for an active contract. We will use the that was previously created.
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.
To change the deposit contract prolongation details, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v2/contracts/{headerId}/versions/{versionId}/prolongation-status
Below is an example request body of the API call for changing deposit contract payout details.
Below you find an example response body to the API call above.
As a result, the deposit contract prolongation status was updated.
After initialising the payment, we need to confirm it to complete the payment.
Here, we will confirm a payment draft using the payment ID parameter.
To confirm the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/PAYM-47356/confirm
The sample request body is as follows:
Below you will find the response to the sample request:
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.
Initialising an FX quote request refers to creating a request with the amount for the currency pair that you want to use.
Here we will initialise an FX quote request with sample data.
To initialise the FX quote request, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v1/accounts/ID-1026/fx-quotes/initialise
The sample request body is as follows:
Below you will find the response to the sample request:
The quote request is created with a quote request ID and status code. The next step is to for the quote request.
The contract header is ID-1696407222.
See the find deposit contract page for more details.
...v2/contracts/ID-1696407222/...
The active contract version is ID-1696407267
. See the find deposit contract page for more details.
...versions/ID-1696407267/payment-instructions
We will change prolongation status to principal with interest. With this setting when the deposit contract is automatically prolonged, the interest is moved to principal.
"prolongationCode": "PRINCIPAL"
{
"prolongationCode": "PRINCIPAL"
}
curl --location --request PUT 'https://deposit-api.sandbox.tuumplatform.com/api/v2/contracts/ID-1696407222/versions/ID-1696407267/prolongation-status' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMDhUMTY6NDE6MDAiLCJleHAiOjE3Mjg0MDU2NjAsInJvbGVzIjpbIkFETUlOIl19.Dgxh4-g9be0P0mosxeihMtOol3XBkde3T84SYPHG3W4' \
--header 'Content-Type: application/json' \
--data '{
"prolongationCode": "PRINCIPAL"
}'
{
"errors": null,
"validationErrors": null,
"data": {
"headerId": "ID-1696407222",
"personId": "ID-2660",
"accountId": "ID-1012",
"applicationId": null,
"offerId": "ID-16964073051",
"depositGroupCode": "TIME_DEPOSIT",
"depositTypeCode": "PREMIUM",
"contractNumber": "PR-EE-1000",
"countryCode": "EE",
"channelCode": "BACKOFFICE",
"tenantCode": "MB",
"depositClassCode": "PREMIUM_CUSTOMER",
"headerActivationDate": "2026-04-04",
"headerClosingDate": null,
"activeVersion": {
"versionId": "ID-1718024026",
"headerId": "ID-1718024016",
"versionNumber": 1,
"statusCode": "ACTIVE",
"preparationDate": "2026-04-04",
"signingDate": null,
"activationDate": "2026-04-04",
"endDate": "2026-07-04",
"closingDate": null,
"period": 3,
"periodTypeCode": "MONTH",
"interestRate": 0.25,
"interestPaymentFrequencyCode": "MONTH",
"prolongCode": "PRINCIPAL",
"countryCode": "EE",
"cancelReasonCode": null,
"lastCreditReceiveDate": "2026-04-06",
"lastSigningDate": null,
"changeTypeCode": "NEW_CONTRACT",
"components": [
{
"componentId": "ID-1718024140",
"versionId": "ID-1718024026",
"componentTypeCode": "PRI",
"initialMoney": {
"amount": 5000.00,
"currencyCode": "EUR"
},
"balanceMoney": {
"amount": 5000.00,
"currencyCode": "EUR"
},
"calculationMethod": null,
"rateBaseCode": null,
"rate": null,
"accruedUntil": null,
"paymentDay": 4,
"paymentInterval": 1,
"baseInvalidFromDate": null
},
{
"componentId": "ID-1718024141",
"versionId": "ID-1718024026",
"componentTypeCode": "INT",
"initialMoney": {
"amount": 0.00,
"currencyCode": "EUR"
},
"balanceMoney": {
"amount": 0.28,
"currencyCode": "EUR"
},
"calculationMethod": {
"daysInMonth": "30",
"daysInYear": 360
},
"rateBaseCode": null,
"rate": 0.25,
"accruedUntil": "2026-04-12",
"paymentDay": 4,
"paymentInterval": 1,
"baseInvalidFromDate": "2026-04-12"
}
],
"totalInterestMoney": {
"amount": 3.13,
"currencyCode": "EUR"
},
"totalInterestAccruedMoney": {
"amount": 0.28,
"currencyCode": "EUR"
},
"channelCode": "BACKOFFICE",
"tenantCode": "MB",
"terminationType": "WITHOUT_INTEREST",
"nextPayoutDate": "2026-05-04",
"payoutDetails": {
"name": "Test Account",
"accountNumber": {
"value": "EE111236525217358748",
"type": "IBAN"
},
"financialInstitutionId": null,
"referenceNumber": null,
"countryCode": null
}
},
"personTypeCode": "P",
"taxResidencyCountryCode": "EE",
"taxExempt": false,
"rateBaseCode": null
}
}
"initialMoney": {
"amount": 5000,
"currencyCode": "EUR"
}
"depositTypeCode": "PREMIUM"
"accountId": "ID-5334"
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE"
"taxResidencyCountryCode": "EE",
"taxExempt": "false"
"terminationType": "WITHOUT_INTEREST"
"taxResidencyCountryCode": "DE"
"taxExempt": "true"
The legal account ID-3397.
...persons/ID-3397/accounts
The private person ID-3392 is granted all rights to the bank account of the legal person.
"representatives": [
{
"personId": "ID-3392",
"accountRightCode": "ALL",
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3397/accounts' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMDZUMTQ6NDE6NTAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODg2NTQ1MTB9.qDVHzIowyGFM-XRG9xEktcwaA6YNf6WhPNp6yw4aTzE' \
-H 'Content-Type: application/json' \
-d '{
"accountTypeCode": "CURRENCY",
"personName": "Trevor Harry Tuum",
"customerGroupCode": "GROUP_A",
"priceListTypeCode": "STANDARD",
"residencyCountryCode": "GB",
"currencyCode": "GBP",
"representatives": [
{
"personId": "ID-3392",
"accountRightCode": "ALL",
"limits": [
{
"amount": {
"amount": "1000",
"currencyCode": "GBP"
},
"accountLimitTypeCode": "DAILY"
},
{
"amount": {
"amount": "10000",
"currencyCode": "GBP"
},
"accountLimitTypeCode": "MONTHLY"
}
]
}
]
}'
{
"errors": null,
"validationErrors": null,
"data": {
"accountId": "ID-1286",
"personId": "ID-3397",
"accountTypeCode": "CURRENCY",
"activationDate": "2023-07-06",
"accountName": null,
"personName": "Trevor Harry Tuum",
"statusCode": "ACTIVE",
"iban": "GB12XXXX04030000000999",
"bic": "LHVBGB2LXXX",
"defaultCurrencyCode": "GBP",
"tenantCode": "MB",
"residencyCode": "GB",
"customerGroupCode": "GROUP_A",
"personTypeCode": null,
"intraOrgCode": null,
"accountTypeSetupCode": "STANDARD",
"serviceProviderCode": "TUUM",
"interestMethodAssignmentCode": null,
"accountClassCode": null,
"balances": [
{
"balanceId": "ID-1213",
"accountId": "ID-1286",
"currencyCode": "GBP",
"balanceAmount": 0.00,
"reservedAmount": 0.00,
"overdraftLimitAmount": 0.00,
"defaultCurrencyCode": "GBP",
"availableBalanceInDefaultCcy": 0.00,
"negativeBalanceStartDate": null,
"availableBalanceAmount": 0.00
}
],
"masterAccountId": null,
"accountNumbers": [
{
"accountNumber": {
"value": "00000999",
"type": "BBAN"
},
"countryCode": "GB",
"financialInstitutionId": {
"value": "040300",
"type": "SORT_CODE"
},
"defaultCurrencyCode": "GBP",
"accountNumberId": "ID-1145",
"accountId": "ID-1286",
"financialInstitutionIdTypeCode": null,
"statusCode": "ENABLED"
}
],
"taxResidencyCountryCode": "GB",
"jurisdictionCountryCode": "GB"
}
}o
{
"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"
}
]
}
]
}
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"
{
"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.
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"
}'
{
"accountTypeCode": "INTERNAL",
"personName": "Trevor Harry Tuum",
"residencyCountryCode": "GB",
"customerGroupCode": "INTERNAL",
"priceListTypeCode": "INTERNAL",
"currencyCode": "EUR"
}
Currency account type
"accountTypeCode": "CURRENCY"
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 account currency code is GBP
"currencyCode": "GBP"
{
"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"
}
}
"accountId": "ID-1279"
A unique identifier is assigned to the new account.
"statusCode": "ACTIVE"
The new account is created and activated.
"iban": "GB72XXXX04030000000986"
The IBAN assigned to the new account.
"bic": "LHVBGB2LXXX"
The BIC assigned to the new account.
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"
}'
{
"accountTypeCode": "CURRENCY",
"personName": "Trevor Harry Tuum",
"customerGroupCode": "GROUP_A",
"priceListTypeCode": "STANDARD",
"residencyCountryCode": "GB",
"currencyCode": "GBP"
}
We will create a deposit offer for a test person whose account ID is ID-2660
.
...persons/ID-2660/offers
The deposit offer is opened for a PREMIUM deposit product that was created earlier.
"depositTypeCode": "PREMIUM"
The account ID that is tied to the deposit. Note: see the create account article to learn more about the account creation.
"accountId": "ID-1012"
The deposit is offered with the 3 month duration. The interest will be payed at the end of the contract period. The deposit country is Estonia.
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"countryCode": "EE"
The deposit amount is 5000 EUR.
"initialMoney": {
"amount": 5000,
"currencyCode": "EUR"
Upon maturity of the deposit contract, the deposit API transfers the payout to the designated payout account. If payout details are not provided, the payout is automatically directed to the servicing account.
"payoutDetails": {
"name": "Test user",
"accountNumber": {
"value": "EE961221248796768756",
"type": "IBAN"
}
}
The default deposit interest rate is set at 0.35.
Note: If the deposit product has a defined minimum and maximum interest rate range, you can set a custom interest rate within this range to override the default rate. If no interest range is defined for the deposit product, the default interest rate of 0.35 is applied.
"interestRate": 0.35
curl --location 'https://deposit-api.sandbox.tuumplatform.com/api/v2/persons/ID-1015/offers' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTAtMjlUMjA6MTI6MzEiLCJleHAiOjE3MzAyMzI3NTEsInJvbGVzIjpbIkFETUlOIl19.ViX6Uwnv1n_h2cBxprFUJRxlXJGce0_A1F5o-HA04oE' \
--header 'Content-Type: application/json' \
--data '{
"depositTypeCode": "PREMIUM",
"accountId": "ID-1012",
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"initialMoney": {
"amount": 5000,
"currencyCode": "EUR"
},
"countryCode": "EE",
"payoutDetails": {
"name": "Test user",
"accountNumber": {
"value": "EE961221248796768756",
"type": "IBAN"
}
},
"taxResidencyCountryCode": "EE",
"interestRate": 0.35
}'
{
"errors": null,
"validationErrors": null,
"data": {
"offerId": "ID-1718024058",
"personId": "ID-2660",
"applicationId": null,
"depositGroupCode": "TIME_DEPOSIT",
"depositTypeCode": "PREMIUM",
"terminationType": "WITHOUT_INTEREST",
"statusCode": "PREPARING",
"reasonCode": null,
"accountId": "ID-1012",
"interestRate": 0.35,
"period": 3,
"periodTypeCode": "MONTH",
"endDate": null,
"initialMoney": {
"amount": 5000.00,
"currencyCode": "EUR"
},
"interestPaymentFreqCode": "END",
"prolongationCode": null,
"countryCode": "EE",
"maturityDate": "2027-04-21",
"returnAmount": {
"amount": 5004.38,
"currencyCode": "EUR"
},
"postingDate": "2027-01-21",
"lastValidDate": "2027-01-22",
"channelCode": "SYSTEM",
"tenantCode": "MB",
"contractHeaderId": null,
"contractNumber": null,
"depositClassCode": "PREMIUM_CUSTOMER",
"payoutDetails": {
"name": "Test user",
"accountNumber": {
"value": "EE961221248796768756",
"type": "IBAN"
},
"financialInstitutionId": null,
"referenceNumber": null,
"countryCode": null
},
"personTypeCode": "P",
"taxResidencyCountryCode": "EE",
"taxExempt": false,
"marginRate": null
}
}
{
"depositTypeCode": "PREMIUM",
"accountId": "ID-1012",
"period": 3,
"periodTypeCode": "MONTH",
"interestPaymentFreqCode": "END",
"initialMoney": {
"amount": 5000,
"currencyCode": "EUR"
},
"countryCode": "EE",
"payoutDetails": {
"name": "Test user",
"accountNumber": {
"value": "EE961221248796768756",
"type": "IBAN"
}
},
"taxResidencyCountryCode": "EE",
"interestRate": 0.35
}
The payment ID is taken from the response to the payment initialisation request.
".../PAYM-47356/confirm"
An optional comment.
{ "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
}
}
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"'
{
"comment": "Confirm payment"
}
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"
{
"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"
}
}
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"
}'
{
"sellCurrencyCode": "EUR",
"buyCurrencyCode": "GBP",
"money": {
"amount": 30,
"currencyCode": "EUR"
},
"tenor": "TODAY"
}
We will make another API call without the request ID, but the data from the first call remains the same.
{
"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"
}'
The response shows that the new account with accountId: ID-1293
was created and activated.
This time, we will make an additional API call without the request ID. However, we will change the currency from GBP to EUR.
{
"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"
}'
The response shows that the new account with accountId: ID-1294
was created and activated.
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.
In this example, we will review how to cancel a payment draft.
We will cancel the PAYM-21736
payment.
...api/v3/payments/PAYM-21736...
An optional comment.
To cancel the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/{paymentId}/cancel
The sample request body is as follows:
"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"'
Below you will find the response to the sample request:
The payment with the paymentId: PAYM-21736
has been set to the CANCELLED
status.
A payment template allows you to save the payment information and create templates for regular payments.
Here we will create a payment template for outgoing SEPA payments with sample data.
The path parameter is the technical ID of the account to which the payment is being made.
Template name
Amount details
Counterparty details
To create the payment template, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v2/accounts/ID-1002/payment-templates
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"
}
]
}'
Below you will find the response to the sample request:
The payment template is created with a template ID.
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.
To create a record of a person, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons
Below is an example request body of the API call for creating a private person.
When using the example request, please change the x-auth-token to the one you obtained with your authentication API call.
Below you find an example response body to the API call above.
A new private person ID-3726
is created and activated. The new person record is available for further actions.
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:
To create a legal person, make the following API call.
https://person-api.sandbox.tuumplatform.com/api/v2/persons
Below is an example request body of the API call for creating a legal person.
Below you will find an example response to the API call from above.
A new legal person ID-3397
is created and activated. The legal person record is now available for the further actions.
Here we will review how to set up a virtual account when Tuum is the service provider:
To create a virtual account, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v4/persons/{personId}/account
Below is an example request body of the API call for creating an account.
Below you find an example response body to the API call above.
The outcome of the API call is the complete set of account data. Including the parameters generated by the Tuum system:
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
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.
The payoutDetails
parameter is optional and can only be defined for an active deposit contract.
Payout details support the following account number types:
,
.
Click on the tabs below to see the formatting for each account number types.
Parameter validations:
If accountNumber.type
is IBAN, financialInstitutionId
is not required.
If accountNumber.type
is IBAN and financialInstitutionId
is provided, then countryCode
is required.
Parameter validations:
If financialInstitutionId
is provided, type
can be one of the following values:
BIC,
SORT_CODE,
BANK_CODE,
ABA_CODE.
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).
If accountNumber.type
is BBAN and financialInstitutionId
is SORT_CODE, countryCode
is GB (Great Britain)
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.
Payout details can be modified or removed. To remove payout details from an active contract version, include the following in the request:
To change the deposit contract payout details, make the following API call.
Below you find an example response body to the API call above.
As a result, the deposit contract payout details were updated.
In this scenario, we will create an outgoing SEPA payment - ACC2SEPA payment type.
To initialise the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise
The sample request body is as follows:
Below you will find the response to the sample request:
The draft payment has been created with a paymentId: PAYM-32706
and the statusCode: INSERTED
.
After creating a draft payment, you have the following options:
- modify the draft payment.
- discard the draft payment if it is no longer required.
- complete payment to initiate further payment processing.
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
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.
"comment": "Cancel payment"
".../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"
}
]
Private person
"personTypeCode": "P"
The person's name is Trevor Tuum
"surname": "Tuum",
"givenName": "Trevor"
The person's United Kingdom identification number is QQ123456B
"identificationNumbers": [
{
"idNumber": "QQ123456B",
"idCountryCode": "GB",
"primary": true
}
]
The person's registration address is United Kingdom 85 Park end St Broomhill NE65 0YW
"addresses": [
{
"addressTypeCode": "R",
"countryCode": "GB",
"cityCounty": "Broomhill",
"street1": "85 Park End St",
"zip": "NE65 0YW"
}
]
curl --location 'https://person-api.dev.tuum.xyz/api/v2/persons' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiT2ZmaWNlciBUZXN0IiwiZW1wbG95ZWVJZCI6IklELTEwMDAiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjUtMDEtMTRUMTU6MDA6MzQiLCJleHAiOjE3MzY4NjY4MzQsInJvbGVzIjpbIkFETUlOIl19.Y80MTpnA-h5xQ-8W194W0h-I8SbhgOJoZApPbREBB-0' \
--header 'x-channel-code: SYSTEM' \
--header 'Content-Type: application/json' \
--data '{
"personTypeCode": "P",
"surname": "Tuum",
"givenName": "Trevor",
"identificationNumbers": [
{
"idNumber": "QQ123456B",
"idCountryCode": "GB",
"primary": true
}
],
"addresses": [
{
"addressTypeCode": "R",
"countryCode": "GB",
"cityCounty": "Broomhill",
"street1": "85 Park End St",
"zip": "NE65 0YW"
}
]
}'
{
"errors": null,
"validationErrors": null,
"data": {
"personId": "ID-3726",
"statusCode": "ACTIVE",
"source": null,
"tenantCode": "MB",
"forgotten": false,
"legalForm": null,
"creationDate": "2025-01-14",
"personalInfo": {
"personTypeCode": "P",
"givenName": "Trevor",
"middleName": null,
"surname": "Tuum",
"name": null,
"email": null,
"phoneNumber": null,
"phoneCountryCode": null,
"residencyCountryCode": null,
"sex": null,
"nationality": null,
"dependantPersons": null,
"legalForm": null
},
"additionalInfo": {
"birthDate": null,
"countryOfBirth": null,
"placeOfBirth": null,
"language": null,
"educationCode": null,
"maritalStatusCode": null,
"dependantPersons": null,
"taxResidencyCountry": null,
"usResident": false,
"pep": false,
"customerTypeCode": null,
"statusCodeReason": null,
"deathDate": null,
"liquidationDate": null,
"inactivationDate": null,
"tradingName": null,
"registrationDate": null,
"webAddress": null,
"pepExplanation": null,
"businessAreaCodes": [],
"businessModelDescription": null,
"intraOrgCode": null,
"counterpartySectorCode": null
},
"work": {
"activityCode": null,
"businessAreaCodes": [],
"employmentTimeCode": null,
"fixedEmploymentLength": null
},
"home": null,
"addresses": [
{
"addressId": "ID-4870",
"personId": "ID-3726",
"addressTypeCode": "R",
"street1": "85 Park End St",
"street2": null,
"cityCounty": "Broomhill",
"stateRegion": null,
"zip": "NE65 0YW",
"countryCode": "GB",
"moveInDate": null,
"validityRange": {
"endTime": null,
"startTime": "2025-01-14T14:21:58.145Z"
}
}
],
"documents": [],
"relationships": [],
"additionalContacts": [],
"personGroupCodes": [],
"identificationNumbers": [
{
"idNumberId": "ID-3715",
"personId": "ID-3726",
"idNumber": "QQ123456B",
"idCountryCode": "GB",
"validityRange": {
"endTime": null,
"startTime": "2025-01-14T14:21:58.291Z"
},
"primary": true
}
],
"taxNumbers": [],
"accessRestricted": false,
"fullName": "Trevor Tuum"
}
}
{
"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"
}
]
}
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"
}
{
"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 '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"
}
}'
{
"personTypeCode": "L",
"name": "New company Ltd",
"addresses": [
{
"addressTypeCode": "R",
"street1": "Carnaby 10",
"cityCounty": "London",
"zip": "13347",
"countryCode": "GB"
}
],
"identificationNumber": {
"idNumber": "111111",
"idCountryCode": "GB"
}
}
The contract header is ID-1696407222
. See the find deposit contract for more details.
api/v1/contracts/ID-1696407222...
The active contract version is ID-1696407267
. See the find deposit contract for more details.
...versions/ID-1696407267/payout-details
The new payout details.
Note: the payoutDetails
parameter is not mandatory. This parameter can be only defined for an active deposit contract. See more information about the payoutDetails
parameter below.
"payoutDetails": {
"name": "Test Account",
"accountNumber": {
"value": "EE111236525217358748",
"type": "IBAN"
"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
}
}
"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
}
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
.
"typeCode": "OUR_PARTY",
"accountId": "ID-4184"
Counterparty details.
{
"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
"value": "EE871275295834652820",
"type": "IBAN"
}
Payment amount and currency.
"money": {
"amount": "25",
"currencyCode": "EUR" }
Payment details.
"details": "Test payment with our party accountId"
The payment also includes payment steering data, such as valueDate and ourFee. Note: the valueDate and ourFee parameters are optional.
"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"
}
}'
{
"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"
]
}
}
{
"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"
}
}
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.
Removing the representation rights with the personRelationshipId ID-1003
from the parentPerson (legal person with the personId ID-3394
).
.../persons/ID-3394/relations/closing/ID-1003
To close the person representation, make the following call.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/{personId}/relations/closing/{personRelationshipId}
Below is an example request of the API call to close the person representation rights.
No request body.
curl -L -X POST 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3392/relations/closing/ID-1002' \
-H 'x-channel-code: system' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTlUMTY6MjA6MDIiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODcxOTE2MDJ9.VDHNExXmgRmLvyx_ChTO2iOrwl7WaLRaTNe_T_A47rk' \
-d ''
Below you will find an example response to the API call from above.
The person representation is set to the CLOSING status.
Here we will review how to create a deposit product with the minimum set of data:
The description of the deposit product.
The deposit group code. Currently, the TIME_DEPOSIT is the only available value.
A unique code for product identification. It must be a unique value and can contain uppercase letters, numbers, and the special characters “-” (dash), “_” (underscore), and “.” (full-stop). Spaces are not allowed.
The code of the tenant where the deposit product is going to be opened.
The deposit product country is Estonia and the currency is euro.
A contract number prefix.
It must be a unique value and can contain uppercase letters, numbers, and the special characters “-” (dash), “_” (underscore), “/” (slash), and “.” (full-stop). Spaces are not allowed.
The deposit offer opened based on this product will be valid for 1 day. The number of days that the system will wait for the contracts of this product type to receive the deposit balance amount from the servicing account. If the expected deposit amount is not received within 2 days, the system cancels the deposit product.
The premature contract termination is without interest.
The automatic prolongation of the deposit contract is allowed.
Deposit product interest settings:
Interest calculation method 30/360 - considers that each month has 30 days and there are 360 days in a year.
Interest conditions are applied for a fixed period of time.
The amount that the customer can deposit is a range from 5000 to 10000 EUR. Note: The endValue is an exclusive parameter.
The default deposit interest rate is 0.25.
The minimum interest rate is 0.21 and the maximum is 0.75.
The deposit period is 3 months.
The deposit interest is paid out at the end of the deposit period.
The that was created as a first step.
This deposit product holder is a private person.
To create a deposit product, make the following API call.
deposit-api.sandbox.tuumplatform.com/api/v2/deposits/product
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"
}'
Below you find an example response body to the API call above.
As an outcome, a new deposit product was created in a DRAFT
status.
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.
To set the representation rights, call the following endpoint.
https://person-api.sandbox.tuumplatform.com/api/v1/persons/{personId}/relations
Below is an example request body of the API call for creating person representation.
Below you will find an example response to the API call from above.
A new person relationship is created:
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.
To initialise the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise
The sample request body is as follows:
Below you will find the response to the sample request:
The draft payment has been created with a paymentId: PAYM-21826
and the statusCode: INSERTED
.
After creating a draft payment, you have the following options:
- modify the draft payment.
- discard the draft payment if it is no longer required.
- complete payment to initiate further payment processing.
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.
To initialise the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise
The sample request body is as follows:
Below you will find the response to the sample request:
The draft payment has been created with a paymentId: PAYM-21846
and the statusCode: INSERTED
.
After creating a draft payment, you have the following options:
- modify the draft payment.
- discard the draft payment if it is no longer required.
- complete payment to initiate further payment processing.
The personId of the New company Ltd is ID-3394
.
...persons/ID-3394/relations
The identification number of the private person Trevor Tuum is DQ654327C
.
"idNumber": "DQ654327C"
The private person is registered in the Great Britain.
"idCountryCode": "GB"
The private person is the representative of the New company Ltd.
"relationTypeCode": "REPRESENTATIVE"
The representation is in active status.
"statusCode": "ACTIVE"
The private person is the beneficiary owner of the company. Note: If the private person is not a benificiary owner of the company, set to false.
"beneficiary": true
The representation validity period. The date format: YYYY-MM-DD.
"representingRange": {
"startDate": "2023-06-06",
"endDate": "2023-06-13"
}
{
"relationships": [
{
"idNumber": "DQ654327C",
"idCountryCode": "GB",
"relationTypeCode": "REPRESENTATIVE",
"statusCode": "ACTIVE",
"beneficiary": true,
"representingRange": {
"startDate": "2023-06-06",
"endDate": "2023-06-13"
}
}
]
}
curl 'https://person-api.sandbox.tuumplatform.com/api/v1/persons/ID-3394/relations' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDYtMTNUMjM6MDc6NDAiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODY2OTc2NjB9.Tt708jxWsjUQPurWItoY9QVqa2tb5PbnFBV-8voVRxY' \
-H 'Content-Type: application/json' \
-d '{
"relationships": [
{
"idNumber": "DQ654327C",
"idCountryCode": "GB",
"relationTypeCode": "REPRESENTATIVE",
"statusCode": "ACTIVE",
"beneficiary": true,
"representingRange": {
"startDate": "2023-06-06",
"endDate": "2023-06-13"
}
}
]
}'
```
{
"errors": null,
"validationErrors": null,
"data": [
{
"personRelationshipId": "ID-1003",
"parentPersonId": "ID-3394",
"personId": "ID-3392",
"relationTypeCode": "REPRESENTATIVE",
"statusCode": "ACTIVE",
"role": null,
"percentageOfShares": null,
"percentageOfSignature": null,
"beneficiary": true,
"representingRange": {
"startDate": "2023-06-06",
"endDate": "2023-06-13"
},
"additionalData": null,
"validityRange": {
"startTime": "2023-06-14T21:32:09.684826Z",
"endTime": null
},
"parentIdNumber": null,
"personIdNumber": null,
"parent": {
"personId": "ID-3394",
"personTypeCode": "L",
"statusCode": "ACTIVE",
"statusCodeReason": null,
"name": "New company Ltd",
"givenName": null,
"middleName": null,
"surname": null,
"birthDate": null,
"creationDate": "2023-06-13",
"deathDate": null,
"liquidationDate": null,
"inactivationDate": null,
"registrationDate": null,
"sex": null,
"email": null,
"customerTypeCode": null,
"nationality": null,
"taxResidencyCountry": null,
"placeOfBirth": null,
"countryOfBirth": null,
"phoneCountryCode": null,
"phoneNumber": null,
"idNumber": "120045",
"idCountryCode": "GB",
"residencyCountryCode": null,
"language": null,
"educationCode": null,
"activityCode": null,
"housingTypeCode": null,
"buildingTypeCode": null,
"moveInDate": null,
"maritalStatusCode": null,
"dependantPersons": null,
"employmentTimeCode": null,
"fixedEmploymentLength": null,
"businessAreaCode": null,
"intraOrgCode": null,
"tradingName": null,
"webAddress": null,
"pepExplanation": null,
"legalForm": null,
"businessModelDescription": null,
"counterpartySectorCode": null,
"forgotten": null,
"usResident": false,
"pep": false,
"source": null,
"tenantCode": "MB",
"fullName": "New company Ltd"
},
"person": {
"personId": "ID-3392",
"personTypeCode": "P",
"statusCode": "ACTIVE",
"statusCodeReason": null,
"name": null,
"givenName": "Trevor",
"middleName": "Harry",
"surname": "Tuum",
"birthDate": null,
"creationDate": "2023-06-01",
"deathDate": null,
"liquidationDate": null,
"inactivationDate": null,
"registrationDate": null,
"sex": null,
"email": null,
"customerTypeCode": null,
"nationality": null,
"taxResidencyCountry": null,
"placeOfBirth": "Alabama",
"countryOfBirth": null,
"phoneCountryCode": null,
"phoneNumber": null,
"idNumber": "DQ654327C",
"idCountryCode": "GB",
"residencyCountryCode": null,
"language": null,
"educationCode": null,
"activityCode": null,
"housingTypeCode": null,
"buildingTypeCode": null,
"moveInDate": null,
"maritalStatusCode": null,
"dependantPersons": null,
"employmentTimeCode": null,
"fixedEmploymentLength": null,
"businessAreaCode": null,
"intraOrgCode": null,
"tradingName": null,
"webAddress": null,
"pepExplanation": null,
"legalForm": null,
"businessModelDescription": null,
"counterpartySectorCode": null,
"forgotten": null,
"usResident": false,
"pep": false,
"source": null,
"tenantCode": "MB",
"fullName": "Trevor Tuum"
}
}
]
}
```
"personRelationshipId": "ID-1003"
The code ID-1003
is a unique identifier of the person relationship between a legal and a private person.
"parentPersonId": "ID-3394",
"personId": "ID-3392",
"relationTypeCode": "REPRESENTATIVE"
A legal person (New company Ltd) was set as a parent person. And a private person (Trevor Tuum) was added as a company representative.
"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"
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"
]
}
}
Here, you can find one of the examples of how to create a draft payment using the .
Our party details gives the information about the sender of the payment. In this example, the payment is initialised from the Tuum account ID-1887
.
"typeCode": "OUR_PARTY",
"accountId": "ID-1887"
Counterparty details.
"typeCode": "COUNTERPARTY",
"name": "Ben Eficiary",
"accountNumber": {
"value": "EE871275295834652820",
"type": "IBAN"
Payment amount.
"money": {
"amount": "10",
"currencyCode": "DKK" }
Payment details.
"details": "Lunch payment"
The payment also includes additional transferable data, such as chargeBearer and endToEndId. Note: the chargeBearer and endToEndId parameters are optional.
"endToEndId": "20240103-E000003",
"chargeBearer": "DEBT"
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDZUMTM6Mjc6MzUiLCJleHAiOjE3MzM0OTE2NTUsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.r4Efnh8m_waGXaTRBQDLhLDb2M6no_SRJpZCGPoO6K8' \
--header 'Content-Type: application/json' \
--data '{
"paymentParties": [
{
"typeCode": "OUR_PARTY",
"accountId": "ID-21508"
},
{
"typeCode": "COUNTERPARTY",
"name": "Ben Eficiary",
"accountNumber": {
"value": "EE871275295834652820",
"type": "IBAN"
},
"financialInstitutionId": "PARXEE22XXX",
"address": {
"street1": "First street 123",
"street2": "Second street 321",
"cityCounty": "Some city",
"zip": "06777",
"countryCode": "EE"
}
}
],
"money": {
"amount": 1,
"currencyCode": "DKK"
},
"details": "Test payment",
"endToEndId": "20240103-E000003",
"chargeBearer": "DEBT"
}'
{
"errors": null,
"validationErrors": null,
"data": {
"paymentId": "PAYM-21846",
"accountId": "ID-21508",
"directionCode": "OUT",
"statusCode": "INSERTED",
"errorCode": null,
"money": {
"amount": 1.00,
"currencyCode": "DKK"
},
"details": "Test payment",
"referenceNumber": null,
"source": null,
"contractSource": null,
"endToEndId": "20240103-E000003",
"valueDate": "2029-12-02",
"postingDate": "2029-12-02",
"insertedDateTime": "2024-12-06T12:41:45.629822Z",
"paymentServiceProviderCode": "SWIFT",
"paymentTypeCode": "ACC2SWIFT",
"preferredPaymentScheme": null,
"selectedPaymentScheme": null,
"chargeBearer": "DEBT",
"settlementStatusCode": null,
"settlementErrorCode": null,
"settlementDate": null,
"settlementPaymentScheme": null,
"returnStatusCode": null,
"returnReason": null,
"returnComment": null,
"returnSettlementDate": null,
"cancellationRequestStatusCode": null,
"cancelRefuseReason": null,
"cancelReason": null,
"amlDeclineReason": null,
"amlMonitoringEnabled": null,
"lastStatusRequestDate": null,
"residencyCountryCode": "EE",
"counterpartyOriginalIban": null,
"fxPaymentFlag": false,
"fxPayment": null,
"paymentParties": [
{
"paymentPartyId": "PAYM-57584",
"typeCode": "COUNTERPARTY",
"name": "Ben Eficiary",
"personTypeCode": null,
"givenName": null,
"surname": null,
"accountNumber": {
"value": "EE871275295834652820",
"type": "IBAN"
},
"accountNumberSubtype": null,
"accountNumberCountryCode": "EE",
"financialInstitutionId": {
"value": "PARXEE22XXX",
"type": "BIC"
},
"address": {
"street1": "First street 123",
"street2": "Second street 321",
"cityCounty": "Some city",
"stateRegion": null,
"zip": "06777",
"countryCode": "EE",
"addressLine": "First street 123, Second street 321, Some city, EE, 06777",
"addressTypeCode": null
},
"roleCode": "BENEFICIARY",
"partyIdentification": null
},
{
"paymentPartyId": "PAYM-57585",
"typeCode": "OUR_PARTY",
"name": "Test Payer",
"personTypeCode": "P",
"givenName": null,
"surname": null,
"accountNumber": {
"value": "XX46XXXX99999000000000000111011",
"type": "IBAN"
},
"accountNumberSubtype": null,
"accountNumberCountryCode": "XX",
"financialInstitutionId": {
"value": "ICECLOUDXXX",
"type": "BIC"
},
"address": {
"street1": "Tartu mnt 32-25",
"street2": null,
"cityCounty": "Harjumaa",
"stateRegion": "Tallinn",
"zip": "10115",
"countryCode": "EE",
"addressLine": "Tartu mnt 32-25, Harjumaa, EE, 10115",
"addressTypeCode": null
},
"roleCode": "PAYER",
"partyIdentification": {
"identificationTypeCode": "NATIONAL_IDENTIFICATION_NUMBER",
"identificationValue": "314-494-5904"
}
}
],
"fees": [],
"paymentSchemeElements": [],
"fileImportLineNumber": null,
"purposeCode": null,
"labels": [
"COUNTERPARTY_EE"
]
}
}
{
"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"
}
Here, you can find one of the examples of how to create a draft payment using the .
In this example, we will review how to change a payment draft. We will update counterparty and payment amount.
We are going to update the PAYM-21826
payment.
Payer information. In this example, the payer details remained the same as in the .
Updated counterparty details. The counterparty name, account information, and financial institution id were updated.
Updated payment amount.
To change the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/{paymentId}/change
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"
}
}'
Below you will find the response to the sample request:
The payment draft with the paymentId: PAYM-21826
was updated. The payment status remained as INSERTED
.
After updating a payment draft, you have the following options:
Change the draft payment - modify the draft payment.
Confirm the draft payment - complete payment to initiate further payment processing.
Cancel the draft payment - discard the draft payment if it is no longer required.
Here, you can find one of the examples of how to create a draft payment using the .
In this scenario, we will create a domestic US payment - ACC2LOCAL payment type.
Our party details gives the information about the sender of the payment.
In this example, the payment is initialised from the Tuum bank account with 190021824474
BBAN.
The payer's account country is the USA. Note: the payer's bank account financial institution id is the ABA Routing number.
Counterparty details.
The payer's account country is the USA. Note: the payer's bank account financial institution id is the ABA Routing number.
Payment amount and currency.
Payment details.
The payment also includes payment steering data, such as usageLimitCode. Note: the usageLimitCode is an optional parameter.
To initialise the payment, use the following endpoint:
https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise
The sample request body is as follows:
{
"paymentParties": [
{
"typeCode": "OUR_PARTY",
"accountNumber": {
"value": "190021824474",
"type": "BBAN"
},
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000018"
},
{
"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
"value": "231123456789",
"type": "BBAN"
},
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000322"
}
],
"money": {
"amount": 17,
"currencyCode": "USD"
},
"details": "Test payment with both parties with BBAN for domestic US payment",
"usageLimitCode": "test"
}
curl --location 'https://payment-api.sandbox.tuumplatform.com/api/v3/payments/initialise' \
--header 'x-channel-code: SYSTEM' \
--header 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHBpcnlEVGltZSI6IjIwMjQtMTItMDVUMTM6NDM6MTAiLCJleHAiOjE3MzM0MDYxOTAsInJvbGVzIjpbIkFETUlOIiwiUE9TVElOR1NfVEVBTSJdfQ.03a1hgsWy3yZxxKXl-TpIatf4XAllaA0dquZH4U8a0E' \
--header 'Content-Type: application/json' \
--data '{
"paymentParties": [
{
"typeCode": "OUR_PARTY",
"accountNumber": {
"value": "190021824474",
"type": "BBAN"
},
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000018"
},
{
"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
"value": "231123456789",
"type": "BBAN"
},
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000322"
}
],
"money": {
"amount": 17,
"currencyCode": "USD"
},
"details": "Test payment with both parties with BBAN for domestic US payment",
"usageLimitCode": "test"
}'
Below you will find the response to the sample request:
The draft payment has been created with a paymentId: PAYM-21726
and the statusCode: INSERTED
.
After creating a draft payment, you have the following options:
Change the draft payment - modify the draft payment.
Cancel the draft payment - discard the draft payment if it is no longer required.
Confirm the draft payment - complete payment to initiate further payment processing.
Hello, and welcome to the Tuum API cookbooks. Here you can get detailed instructions on how to use Tuum API endpoints to achieve your desired outcome. It is a complementary page to the .
We have organised API cookbooks by grouping them per business domain. So, for example, you can find detailed instructions about authentication-related use cases in the authentication group, account-related ones in the account group and payment-related in the payment group. Just proceed to any cookbook to get the left-hand menu with all cookbooks displayed to find the one of your interest.
Here you can find the shortcuts to the API recipes:
In this example we will review how to find existing accounts by personId.
To find person accounts, make the following API call.
https://account-api.sandbox.tuumplatform.com/api/v5/persons/{personId}/accounts
GET
https://account-api.sandbox.tuumplatform.com/api/v5/persons/{personId}/accounts
See more information about this in the Tuum developer portal.
Below is the example request of the call for finding person accounts.
Below you find an example response body to the API call above.
The person account information is fetched.
We will create a new account for a person by making the following API call.
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.
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.
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-1292
is updated to USD as requested.
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.
Here, you can find one of the examples of how to create a draft payment using the .
...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"
}
{
"typeCode": "OUR_PARTY",
"accountNumber": {
"value": "190021824474",
"type":
}
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000018"
"typeCode": "COUNTERPARTY",
"name": "Robert Receiver",
"accountNumber": {
"value": "231123456789",
"type": "BBAN"
"accountNumberCountryCode": "US",
"financialInstitutionId": "021000322"
"money": {
"amount": 17,
"currencyCode": "USD"
}
"details": "Test payment with both parties with BBAN for domestic US payment"
"usageLimitCode": "test"
{
"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"
}
}
curl 'https://account-api.sandbox.tuumplatform.com/api/v4/persons/ID-3419/accounts' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDgtMDRUMTE6MjM6MjUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2OTExNDgyMDV9.1lnY03GWnnGdki0uJlkNNSMydwiWv_jsdII10PKPUkA' \
-H 'x-request-id: eb1d4135-bca1-4612-aa83-29637830fe37' \
-H 'Content-Type: application/json' \
-d '{
"accountTypeCode": "CURRENCY",
"personName": "Eleanor Rigby",
"customerGroupCode": "GROUP_A",
"priceListTypeCode": "STANDARD",
"residencyCountryCode": "GB",
"currencyCode": "GBP"
}'
{
"accountTypeCode": "CURRENCY",
"personName": "Eleanor Rigby",
"customerGroupCode": "GROUP_A",
"priceListTypeCode": "STANDARD",
"residencyCountryCode": "GB",
"currencyCode": "GBP"
}
{
"errors": null,
"validationErrors": null,
"data": {
"accountId": "ID-1292",
"personId": "ID-3419",
"accountTypeCode": "CURRENCY",
"activationDate": "2023-08-04",
"accountName": null,
"personName": "Eleanor Rigby",
"statusCode": "ACTIVE",
"iban": "GB76XXXX04030000001011",
"bic": "LHVBGB2LXXX",
"defaultCurrencyCode": "GBP",
"tenantCode": "MB",
"residencyCode": "GB",
"customerGroupCode": "GROUP_A",
"personTypeCode": null,
"intraOrgCode": null,
"accountTypeSetupCode": "STANDARD",
"serviceProviderCode": "TUUM",
"interestMethodAssignmentCode": null,
"accountClassCode": null,
"balances": [
{
"balanceId": "ID-1221",
"accountId": "ID-1292",
"currencyCode": "GBP",
"balanceAmount": 0.00,
"reservedAmount": 0.00,
"overdraftLimitAmount": 0.00,
"defaultCurrencyCode": "GBP",
"availableBalanceInDefaultCcy": 0.00,
"negativeBalanceStartDate": null,
"availableBalanceAmount": 0.00
}
],
"masterAccountId": null,
"accountNumbers": [
{
"accountNumber": {
"value": "00001011",
"type": "BBAN"
},
"countryCode": "GB",
"financialInstitutionId": {
"value": "040300",
"type": "SORT_CODE"
},
"defaultCurrencyCode": "GBP",
"accountNumberId": "ID-1147",
"accountId": "ID-1292",
"financialInstitutionIdTypeCode": null,
"statusCode": "ENABLED"
}
],
"taxResidencyCountryCode": "GB",
"jurisdictionCountryCode": "GB"
}
}
Searching for accounts that belong to the person ID-3392.
...persons/ID-3392/accounts...
Requesting to display the search results on the first page; the page size is 5.
...?pageNumber=1&pageSize=5
{
"errors": null,
"validationErrors": null,
"data": {
"values": [
{
"accountId": "ID-1283",
"personId": "ID-3392",
"accountTypeCode": "VIRTUAL",
"activationDate": "2023-06-26",
"accountName": null,
"personName": "Trevor Harry Tuum",
"statusCode": "ACTIVE",
"iban": "GB05XXXX04030100000462",
"bic": "LHVBGB2LXXX",
"defaultCurrencyCode": "GBP",
"tenantCode": "MB",
"residencyCode": "GB",
"customerGroupCode": "GROUP_B",
"personTypeCode": null,
"intraOrgCode": null,
"accountTypeSetupCode": "STANDARD",
"serviceProviderCode": "TUUM",
"interestMethodAssignmentCode": null,
"accountClassCode": null,
"balances": [],
"masterAccountId": "ID-1279",
"accountNumbers": [
{
"accountNumber": {
"value": "00000462",
"type": "BBAN"
},
"countryCode": "GB",
"financialInstitutionId": {
"value": "040301",
"type": "SORT_CODE"
},
"defaultCurrencyCode": "GBP",
"accountNumberId": "ID-1144",
"accountId": "ID-1283",
"financialInstitutionIdTypeCode": null,
"statusCode": "ENABLED"
}
],
"taxResidencyCountryCode": "GB",
"jurisdictionCountryCode": "GB"
},
{
"accountId": "ID-1282",
"personId": "ID-3392",
"accountTypeCode": "INTERNAL",
"activationDate": "2023-06-26",
"accountName": null,
"personName": "Trevor Harry Tuum",
"statusCode": "ACTIVE",
"iban": "XX54XXXX99999000000000000001257",
"bic": "ICECLOUDXXX",
"defaultCurrencyCode": "EUR",
"tenantCode": "MB",
"residencyCode": "GB",
"customerGroupCode": "INTERNAL",
"personTypeCode": null,
"intraOrgCode": null,
"accountTypeSetupCode": "STANDARD",
"serviceProviderCode": "TUUM",
"interestMethodAssignmentCode": null,
"accountClassCode": null,
"balances": [
{
"balanceId": "ID-1209",
"accountId": "ID-1282",
"currencyCode": "EUR",
"balanceAmount": 0.00,
"reservedAmount": 0.00,
"overdraftLimitAmount": 0.00,
"defaultCurrencyCode": "EUR",
"availableBalanceInDefaultCcy": 0.00,
"negativeBalanceStartDate": null,
"availableBalanceAmount": 0.00
}
],
"masterAccountId": null,
"accountNumbers": [],
"taxResidencyCountryCode": "GB",
"jurisdictionCountryCode": "GB"
},
{
"accountId": "ID-1281",
"personId": "ID-3392",
"accountTypeCode": "INTERNAL",
"activationDate": "2023-06-26",
"accountName": "Internal BO",
"personName": "Trevor",
"statusCode": "ACTIVE",
"iban": "XX17XXXX99999000000000000001244",
"bic": "ICECLOUDXXX",
"defaultCurrencyCode": "EUR",
"tenantCode": "MB",
"residencyCode": "GB",
"customerGroupCode": "INTERNAL",
"personTypeCode": "P",
"intraOrgCode": null,
"accountTypeSetupCode": "STANDARD",
"serviceProviderCode": "TUUM",
"interestMethodAssignmentCode": null,
"accountClassCode": null,
"balances": [
{
"balanceId": "ID-1208",
"accountId": "ID-1281",
"currencyCode": "EUR",
"balanceAmount": 0.00,
"reservedAmount": 0.00,
"overdraftLimitAmount": 0.00,
"defaultCurrencyCode": "EUR",
"availableBalanceInDefaultCcy": 0.00,
"negativeBalanceStartDate": null,
"availableBalanceAmount": 0.00
}
],
"masterAccountId": null,
"accountNumbers": [],
"taxResidencyCountryCode": "GB",
"jurisdictionCountryCode": "GB"
},
{
"accountId": "ID-1279",
"personId": "ID-3392",
"accountTypeCode": "CURRENCY",
"activationDate": "2023-06-19",
"accountName": null,
"personName": "Trevor Harry Tuum",
"statusCode": "ACTIVE",
"iban": "GB72XXXX04030000000986",
"bic": "LHVBGB2LXXX",
"defaultCurrencyCode": "GBP",
"tenantCode": "MB",
"residencyCode": "GB",
"customerGroupCode": "GROUP_A",
"personTypeCode": null,
"intraOrgCode": null,
"accountTypeSetupCode": "STANDARD",
"serviceProviderCode": "TUUM",
"interestMethodAssignmentCode": null,
"accountClassCode": null,
"balances": [
{
"balanceId": "ID-1212",
"accountId": "ID-1279",
"currencyCode": "EUR",
"balanceAmount": -5.00,
"reservedAmount": 0.00,
"overdraftLimitAmount": 0.00,
"defaultCurrencyCode": "GBP",
"availableBalanceInDefaultCcy": -4.24,
"negativeBalanceStartDate": "2023-07-01",
"availableBalanceAmount": -5.00
},
{
"balanceId": "ID-1206",
"accountId": "ID-1279",
"currencyCode": "GBP",
"balanceAmount": 0.00,
"reservedAmount": 0.00,
"overdraftLimitAmount": 0.00,
"defaultCurrencyCode": "GBP",
"availableBalanceInDefaultCcy": 0.00,
"negativeBalanceStartDate": null,
"availableBalanceAmount": 0.00
}
],
"masterAccountId": null,
"accountNumbers": [
{
"accountNumber": {
"value": "00000986",
"type": "BBAN"
},
"countryCode": "GB",
"financialInstitutionId": {
"value": "040300",
"type": "SORT_CODE"
},
"defaultCurrencyCode": "GBP",
"accountNumberId": "ID-1143",
"accountId": "ID-1279",
"financialInstitutionIdTypeCode": null,
"statusCode": "ENABLED"
}
],
"taxResidencyCountryCode": "GB",
"jurisdictionCountryCode": "GB"
}
],
"pageNumber": 1,
"pageSize": 5,
"endReached": true,
"sort": null,
"total": 4
}
}
curl -L 'https://account-api.sandbox.tuumplatform.com/api/v5/persons/ID-3392/accounts?pageNumber=1&pageSize=5' \
-H 'x-channel-code: SYSTEM' \
-H 'x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHBpcnlEVGltZSI6IjIwMjMtMDctMTBUMTQ6NTk6MDUiLCJyb2xlcyI6WyJBRE1JTiJdLCJuYW1lIjoiSm9obiBPZmZpY2VyIiwiZW1wbG95ZWVJZCI6IjEiLCJ0ZW5hbnRDb2RlIjoiTUIiLCJleHAiOjE2ODkwMDExNDV9.CDrDuZ-2fAgeA_7KEdHNbjYup1tD8Vgs_kwkkDZ7NOw' \
-d ''
https://account-api.{{env}}.{{domain}}/api/v5/persons/ID-3392/accounts?pageNumber=1&pageSize=5