Explore Release Notes

Release Version 4.32.0 (April 3, 2025)

03. 04. 2025

Pre-deployment steps

To be done before deployment

Check configuration changes and apply them in the application.yaml if the default configuration has been overridden there.

If it is required to enable SSL, make changes in the application.yaml described in the configuration changes.

If it is required to enable Kafka, make changes in the application.yaml described in the configuration changes.

Check if the release contains migrations. Migrations can affect deployment and downtime.

Use GET /i18n/export/{fileName} to download files with the current i18n properties. Check if the downloaded file is correct.

Post-deployment steps

To be done after deployment

Verify permission changes and assign or remove required permissions if they have been overridden

Add new properties from the I18n properties changes to the downloaded i18n properties file, and add translation for them if needed.

Use POST /i18n/import to upload and apply a previously downloaded i18n file with added new properties.

Execute the following script

UPDATE support_ticket_def
SET ticket_id = NULL;
delete
from support_ticket;
delete
from support_ticket_def;
UPDATE msg_message_def
SET message_id = NULL;
UPDATE msg_participant_message
SET message_id = NULL;
UPDATE msg_conversation
SET lastmessage_id = NULL;
UPDATE msg_conversation
SET initiator_id = NULL;
UPDATE msg_message_file
SET message_id = NULL;
delete
from msg_message;
delete
from msg_message_def;
delete
from msg_message_file;
delete
from msg_participant_message;
delete
from msg_participant;
UPDATE msg_conversation_def
SET conversation_id = NULL;
delete
from msg_conversation;
delete
from msg_conversation_def;

Release migrations

Release migrations

Changes to notice

Changes to notice

After the implementation of OTP confirmation for voucher creation, the voucher serial and PIN are not returned in the response of the API operation POST /v1/prepaid-coins.

According to the new implementation, the voucher serial and PIN will be sent via SMS, email and in-system notifications. SMS and email notifications are disabled by default.

The same notification logic is also applied to the API operation POST /v1/prepaid-coins/{serial}/change-pin.

API POST /conversations/create-system-broadcasts deleted, API POST /tickets should be used to create chat.

New functionality

Feature

Description

Benefits

OTP confirmation – OTP confirmation for withdrawal and top-up via the Bank

When OTP confirmation for bank withdrawal or top-up is enabled at the system level and for the user, the system will send OTP to the user’s verified mobile phone number.

OTP sending is embedded in the following APIs:

  • POST ​/bank-top-ups​/create-request

  • POST /bank-withdrawals​/create-request

Enhances security for users by verifying their identity.

OTP confirmation functionality works only with enabled Kafka

OTP confirmation – OTP confirmation for voucher creation and activation

When OTP confirmation for voucher creation and activation is enabled at the system level and for the user, the system will send OTP to the user’s verified mobile phone number.

OTP sending is embedded in the following APIs:

  • POST ​/prepaid-coin

  • POST /prepaid-coins​/{serial}​/activate

OTP confirmation – OTP confirmation for merchant payment

When OTP confirmation for merchant payment is enabled at the system level and for the user, the system will send OTP to the user’s verified mobile phone number.

OTP sending is embedded in the following APIs:

  • POST /v1/merchant-payments/{identifier}/execute

Ability for business users to close an account with a 0 balance or transfer the balance to another in-system account.

Business users can close an account with a 0 balance or transfer the balance to another in-system account.

This will be available on UI in the SDK.finance mobile application

Enhances user experience

Cash-desks – Ability for cashiers to specify the cash amount while closing and opening the cash desk working day

Cashiers can specify the cash amount while closing and opening the cash desk working day

When finished, the cash desk functionality will provide comprehensive tools for managing cash desks, cash flow, and related operations.

Cash desks functionality is under development and will be implemented in future versions.

Cash-desks – Ability for service users to view list of working days for the cash desk

Service users can view the list of working days for the cash desk

Business users are notified when an investigation related to their transaction is opened

A new notification event type INVESTIGATION_CREATED was created. Enabling and disabling notifications with this type are allowed only for service users.

This will be available on UI in the SDK.finance mobile application

Keeps business users informed by sending in-system messages, emails, and SMS notifications about important events.

Business users are notified when the requested statement is ready

A notification with type REPORT_DONE is created when the statement is ready.

This will be available on UI in the SDK.finance mobile application

Ability for logged-in business users to change existing credentials. Credential is changed only after the new credential is verified with OTP.

Logged-in business users can change existing credentials. Credential is changed only after the new credential is verified with OTP.

This will be available on UI in the SDK.finance mobile application

Secure credential management for logged-in business users

Improvements

Feature

The vendor name is shown in CFO -> System accounts

Mocked data in the Client profile → Last transactions is changed to the real data

Note added by the user is shown the Transaction details

SSL is disabled by default

Fixes

For subscription-based transfers, OTP is not required even if it is enabled

senderAmountPush in the API POST ​/bank-top-ups​/calculate is equal transactionAmount+commissionAmountPush which is correct for commission direction OUT (was transactionAmount+commissionAmountPush)

API changes

Updated

POST /working-days

The new parameter startOfDayCashAmounts added to the request

POST /working-days/request-closing

The new parameter endOfDayCashAmounts was added to the request

POST /prepaid-coins

The response was changed from CreatePrepaidResp to BusinessProcessResp.

Added validation to APIs PATCH /coins/{serial}/status and PATCH /coins/{serial}:

  • It is not possible to change active to true if deactivationReason = account_closed. In this case, the following error is returned: Closed account cannot be activated.

PATCH /coins/{serial}

  • field in CloseCoinReq is now optional

  • added validation to return an error if the wallet balance > 0 and transferToCoinSerial is not provided.

Additional validation was added to the following APIs to check if the source account is closed

  • POST /bank-top-ups/create-request

  • POST /bank-top-ups

  • POST /bank-withdrawals/create-request

  • POST /bank-withdrawals

POST /tickets

old request

{
"category": "GENERAL",
"topic": "string",
"description": "string"
}

new request

{
"category": "GENERAL",
"type": "TRANSACTION",
"topic": "string",
"message": "string",
"relatedObjectId": "string",
"userId": "string",
"organizationId": "string",
"fileIds": [
"string"
]
}

Possible type usage:

  1. Chat initiated by service user:

    SUPPORT: possible, at least one of organizationId or userId fields are required
    INVESTIGATION: possible, relatedObjectId is required (equals to investigation id), at least one of organizationId or userId fields are required
    TRANSACTION: possible, relatedObjectId is required (equals to business process id), at least one of organizationId or userId fields are required

  2. Chat initiated by business user:

    SUPPORT: possible
    INVESTIGATION: impossible
    TRANSACTION: possible, relatedObjectId is required (equals to business process id)

Added

PUT /profiles/my/additional
PUT /profiles/my/address
PUT /profiles/my/person
PUT /profiles/{userId}/additional
PUT /profiles/{userId}/address
PUT /profiles/{userId}/person

GET /working-days

If the API operation GET /v1/working-days is called by the service role, then working days related to all cashiers will be returned.

If the API operation GET /v1/working-days is called by the cashier role, then working days related to this cashier will be returned.

Deprecated/Deleted

POST /conversations/create-system-broadcasts

I18n properties changes

Added

Added i18n bundles:

notification.reports.push_subject=The report you requested is successfully completed
notification.reports.push_text=The report ${reportName} you requested is successfully completed

Configuration changes

The following keys were added to the configuration

notification.investigation.created.sms
notification.investigation.created.email_text
notification.investigation.created.email_subject
notification.investigation.created.push_text
notification.investigation.created.push_subject

notification.prepaid.pin_updated.sms=For the voucher with serial number '${prepaidSerial}' was created the new PIN: '${prepaidPin}'
notification.prepaid.pin_updated.email_subject=Creating new PIN notification
notification.prepaid.pin_updated.email_text=For the voucher with serial number '${prepaidSerial}' was created the new PIN: '${prepaidPin}'
notification.prepaid.pin_updated.push_subject=Creating new PIN notification
notification.prepaid.pin_updated.push_text=For the voucher with serial number '${prepaidSerial}' was created the new PIN: '${prepaidPin}'

validator.exception.invalid_parameter.applyAt.past=The provided apply date-time must not be in the past. Please provide today's date or a future date.

New application properties to manage quartz job with new env variables: ASSOCIATING_CONTRACT_TIMER_SCHEDULE_EXPRESSION, ASSOCIATING_CONTRACT_TIMER_ENABLED

bootstrap.core.system.contracts.associating-contract-timer.schedule-expression: ${ASSOCIATING_CONTRACT_TIMER_SCHEDULE_EXPRESSION:0 0/5 * ? * * *}

bootstrap.core.system.contracts.associating-contract-timer.enabled: ${ASSOCIATING_CONTRACT_TIMER_ENABLED:true}

By default, SSL is disabled.

To enable SSL, make the following changes in the application.yaml before deployment and add keystore.p12 near JAR file.

server:
http2:
enabled: true
port: 8443
ssl:
enabled: true
key-store: file:keystore.p12
key-store-type: PKCS12
key-store-password: password
key-alias: tomcat
enabled-protocols: TLSv1.3,TLSv1.2
protocol: TLS

By default, Kafka is disabled.

To enable Kafka, make the following changes in the application.yaml before deployment

spring:
kafka:
enabled: true

Permission changes

CASH_DESK_WORKING_DAYS_VIEWER was added to the following roles:

  • administrator

  • ceo

  • accountant

  • financial_specialist

  • cashier

MONTHLY_FEE_MANAGER was added to the following roles:

  • ceo

  • cro