Explore Release Notes

Release Version 4.42.0 (August 26, 2025)

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

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

Use GET /i18n/export/{fileName} to download files with 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 previously downloaded i18n file with added new properties.

Release migrations

Changes to notice

Changes to notice

Removed parameter login from APIs:

  • POST ​/profiles​/my​/contact​/confirm

  • POST ​/profiles​/my​/contact​/resend-otp

Parameter contact should be used instead login

Report Schedules endpoints have been completely removed:

  • POST /report-schedules – Create report schedule

  • GET /report-schedules – List report schedules with filtering/pagination

  • GET /report-schedules/{scheduleId} – Get schedule by ID

  • PUT /report-schedules/{scheduleId} – Replace schedule

  • PATCH /report-schedules/{scheduleId} – Partially update schedule

  • DELETE /report-schedules/{scheduleId} – Delete schedule

Removed schema definitions:

  • CreateReportScheduleReq

  • UpdateReportScheduleReq

  • ReportScheduleResp

  • GetReportSchedulesResp

  • ReportScheduleFilterReq

Endpoints Task management and Schedule management should be used instead with type REPORT

Subscription endpoints have been completely removed:

  • POST /subscriptions – Create subscription

  • GET /subscriptions – Get list of subscriptions

  • DELETE /subscriptions/{id} – Delete subscription

  • PATCH /subscriptions/{id}/activate – Activate subscription

  • PATCH /subscriptions/{id}/stop – Stop subscription

Endpoints Task management and Schedule management should be used instead with type SUBSCRIPTION

New functionality

Feature

Description

Benefits

Abiliity to create a new contract instead of copying existing.

Service user can create a new contract from scratch without the necessity to copy the existing contract.

Greater flexibility in contract setup

Ability for merchants to create account in the merchant portal.

Merchant can create an account in the allowed currency in the menu “Balances” in the merchant portal.

An extended capability for merchants to manage their accounts directly within the portal.

Improvements

Feature

Description

General task management and a schedule mechanism were introduced and applied to the following tasks:

  • Generate report

  • Perform withdrawal via bank (only schedule management is implemented, withdrawal executions according to the schedule will be introduced in future versions)

  • Subscription management

General APIs were implemented for Task and Schedule management.

Depending on the task, the following task type can be specified:

  • WITHDRAWAL

  • REPORT

  • SUBSCRIPTION

The following transaction types were added to the TRANSACTION notification

  • currency exchange

  • bank withdrawal

  • provider purchase

  • voucher creation

TRANSACTION notification now includes all outgoing transactions:

  • currency exchange

  • bank withdrawal

  • provider purchase

  • voucher creation

  • outgoing transfer

  • provider withdrawal

  • cash desk withdrawal

  • invoice payment

UI change: ability for the service user to unblock the account for business user.

Button “Unblock account” is available for inactive accounts in the Clients → View profile → Accounts

Fixes

The APIs return a 404 status code instead of 400 when the requested entity is not found.

UA is used for the Ukrainian locale instead of UK

Sign-up flow has been removed from the Back-office UI.

API changes

Updated

Removed parameter login from APIs:

POST ​/profiles​/my​/contact​/confirm

POST ​/profiles​/my​/contact​/resend-otp

Task management APIs

  • Added REPORT as a new TaskType enum value

  • New schemas for report tasks:

    • ReportTaskDto – Report task data transfer object

    • CreateReportTaskReq – Create report task request

    • UpdateReportTaskReq – Update report task request

POST /schedules

The following fields were added to the request:

  • expirationType

  • maxExecutionCount

PATCH /schedules/{scheduleId}

The following fields were added to the request:

  • expirationType

  • maxExecutionCount

GET /schedules

The following fields were added to the response:

  • expirationType

  • maxExecutionCo

API POST commission-profile/view can be called with permission COMMISSION_VIEWER

Business process ID (processId) is returned in the response of the following APIs:

  • POST /merchant-payments/{identifier}/execute (PaymentDto)

  • POST /invoices/{identifier}/pay (InvoiceShortDto)

  • GET /invoices​/{identifier} (InvoiceDto)

Added

POST ​/contracts

Deprecated/Deleted

  • POST /report-schedules

  • GET /report-schedules

  • GET /report-schedules/{scheduleId}

  • PUT /report-schedules/{scheduleId}

  • PATCH /report-schedules/{scheduleId}

  • DELETE /report-schedules/{scheduleId}

  • POST /subscriptions

  • GET /subscriptions

  • DELETE /subscriptions/{id}

  • PATCH /subscriptions/{id}/activate

  • PATCH /subscriptions/{id}/stop

I18n properties changes

Added

The following messages were added to i18n bundles:

For currency exchange:

notification.operation.currency_exchange.sms=You exchanged ${amount} ${srcCurrencyCode} from wallet ${srcCoin} to ${destCurrencyCode} on wallet ${destCoin} by rate ${rate}.
notification.operation.currency_exchange.email_subject=You exchanged ${amount} ${srcCurrencyCode} to ${destCurrencyCode}
notification.operation.currency_exchange.email_text=You exchanged ${amount} ${srcCurrencyCode} from wallet ${srcCoin} to ${destCurrencyCode} on wallet ${destCoin} by rate ${rate}.
notification.operation.currency_exchange.push_subject=You exchanged ${amount} ${srcCurrencyCode} to ${destCurrencyCode}
notification.operation.currency_exchange.push_text=You exchanged ${amount} ${srcCurrencyCode} from wallet ${srcCoin} to ${destCurrencyCode} on wallet ${destCoin} by rate ${rate}.

For bank withdrawal:

notification.operation.bank_withdrawal.sms=Bank withdrawal from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}
notification.operation.bank_withdrawal.email_subject=Bank withdrawal completed
notification.operation.bank_withdrawal.email_text=Dear user! Bank withdrawal from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}. Operation date: ${performedDate}
notification.operation.bank_withdrawal.push_subject=Bank withdrawal completed
notification.operation.bank_withdrawal.push_text=Dear user! Bank withdrawal from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}. Operation date: ${performedDate}

For provider purchase:

notification.operation.purchase.sms=Purchase from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}
notification.operation.purchase.email_subject=Purchase completed
notification.operation.purchase.email_text=Dear user! Purchase from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}. Operation date: ${performedDate}
notification.operation.purchase.push_subject=Purchase completed
notification.operation.purchase.push_text=Dear user! Purchase from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}. Operation date: ${performedDate}

For voucher creation:

notification.operation.prepaid_created.sms=Voucher creation from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}
notification.operation.prepaid_created.email_subject=Voucher creation completed
notification.operation.prepaid_created.email_text=Dear user! Voucher creation from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}. Operation date: ${performedDate}
notification.operation.prepaid_created.push_subject=Voucher creation completed
notification.operation.prepaid_created.push_text=Dear user! Voucher creation from wallet ${coin} completed. Amount: ${amount} ${currencyCode}. Balance: ${coinAmount} ${currencyCode}. Operation date: ${performedDate}

Configuration changes

Added environment variable VUE_APP_BACKEND_HOST to define where requests from UI will be sent.

Example: VUE_APP_BACKEND_HOST="https://api.dev.sdkfinance.tech/" (“/” in the end is mandatory)

Added environment variable VUE_APP_TITLE to define the name of the tab in the browser.

Example: VUE_APP_TITLE="SDK.finance"

Removed old configuration

merchant:
payment:
front-office-page-path: 'merchant-payment/'

added a new one instead

merchant:
payment:
# Link on a page to view merchant payment details
absolute-path: 'https://client.dev.sdkfinance.tech/payment-details/'

Database changes

Permission changes

The following permissions were added to the role CRO:

  • CURRENCY_VIEWER

  • I18N_RECORD_VIEWER

  • SYSTEM_VENDOR_MONTHLY_FEE_MANAGER

Added permission BANK_TOP_UP_EXECUTOR to CEO

Removed permission CLIENT_TRANSACTION_VIEWER from the following roles:

  • head_of_compliance

  • compliance_manager

  • compliance_specialist

Removed permission SYSTEM_TRANSACTION_VIEWER from the following roles:

  • customer_support_manager

  • customer_support