Release Version 4.17.0 (March 1, 2024)
What’s new
New Accounting Model was implemented for all supported operations. It gives an opportunity to see in-system money circulation in the separate wallet balance (type=issuing_balance) on the runtime. All incomes/outcomes to/from the system circulation (in certain currency) going through the issuing_transit account and issuing_balance account. Example: all incomes/outcomes to/from the system circulation in Currency1 reflect on the issuing1_balance account and issuing1_transfer account (both accounts have one unique Currency – Currency1) To reconcile the volume of circulation (in a particular issued Currency, e.g. Currency USD1) compare the balances of the Currency1 issuing1_transfer account with the balance of issuing1_balance account – this balances show a volume of circulation and it must be equal. The current atomic transactions inside the Business Processes were chnaged according to the schema of technical transactions. If the “integrator” (or “client”) uses the fields from node Internal operations Transfer IN commission Transfer SHARED commission Top up via bank Top up via cash desk Withdrawal via cash desk Cash desk investment Cash desk input Cash desk collect Invoice Merchant payment Voucher creation Voucher activation Currency exchange Top up exchange reserve Withdraw exchange reserve Provider operations (Gate) Top up via provider total commission<provider commission Withdrawal via provider total commission>provider commission Withdrawal via provider total commission<provider commission Purchase via provider total commission>provider commission Purchase via provider total commission<provider commission Issue card |
The ability to Top up/Withdraw the Exchange Reserve account was added. Exchange Reserve account – it is the currency exchange reserve account, used only for Currency Exchange operations (see accounting model description for Currency exchange operation). See “API Changes” section of the release notes to know more about changes related to API For the Business user to be able to perform currency exchange operations, the Service user (any service user with appropriate permission) must first top up the balances on exchange_reserve wallets for the required currencies. The Service user (Service role with appropriate permission) can create a request to Top up or Withdraw from the Exchange Reserve account via bank transfer. After the request is created the Service user with appropriate permission must accept or decline a request to process such operation further. New Business process types were added: exchange_reserve_top_up and exchange_reserve_withdraw To create Top up/Withdrawal Exchange Reserve Request user must specify the:
Top-up/Withdraw Exchange reserve wallet can be performed with the provided bank account ID – it means, that there is a bank account registered in the system and linked with the wallet. If a bank account number OR IBAN was provided – it means, that there is no linked bank account for the current wallet in the system. To accept or decline a request user must specify the identifier of the request. The Status of the Top-up/Withdraw Exchange Reserve operation returns in the response (with other operation details). |
A new approach to approve/decline business process requests was implemented. The main idea of the approach is to use general API requests to manage created business process requests for all types of business processes. Currently, it is available only for operations related to To Approve and Decline APIs requires two types of permissions:
See “API Changes” section of the release notes to know more about changes related to API |
Improvements
- The ability to update bank account details via UI was added for Individual
How to edit a Bank account via Front-office UI:
- Log in as an Individual
- Select “Account” (press on the certain account to see linked Bank accounts)
- Select the needed bank account to edit and update details:
- Use as default bank account
- Bank Account Number – conditional field, OR you can provide IBAN in “IBAN”
- IBAN – conditional field, provide existing IBAN OR press “Generate IBAN” to get new, generated IBAN and use it as bank account details
- Bank ID – required to generate IBAN
- Full Name – required
Press “Update bank account”. A bank account will be updated.
- [Bank-office] A New Transactions list form for the Administrator was implemented
- A default sorting option was added in the UI for all columns of all tables in the Back-office
- Filter memory (chips) was added to all tables with filter
- Permission ISSUE_CARD_OWNER was added to the Individual role by default
- Amount mapping for Withdrawal/top via bank request details was corrected in the UI
- The ability to see a list of available APIs (quantity and descriptions) was added to the user login page
- The organization type for all gate-provider wallets was changed to “gate”
- Commission amounts field mapping was corrected for Merchant payment and Invoice operations
- The view of user notes in JSON format was changed on the UI
- DB migrations were performed (scripts for manual DB migrations were created to have appropriate DB for test and pre-prod environments)
- Set up a Total commission less than the Provider for Gate operations were allowed on the UI
- The mapping for Transactions list form (Administrator view) was corrected
- Performing in-system operations (transfer, bank top-up, etc.) if the commission rule is inactive was prohibited
Fixes
- The issue with the error message when trying to perform a transfer using an invalid card number was fixed. The message was changed from the validator.transfer.card_not_found=A user with this email is not found to the validator.transfer.card_not_found=A card is not found
- The issue with wrong commission wallets are using for the operations of Merchant users was fixed. Commission for Merchant operations is collected on the “business_system_commission“ and “business_gate_ commission“ wallets
- Front-end issues with the Transactions table component were fixed
- Displaying dashes when there is no info about some fields in API response was added to Individual’s Transactions
- The issue with placement of “Close” button in wide modal windows was fixed
- The schema of POST /v1/exchange response was changed in Swagger
- The issue with limits for invoices, currency exchanges, and top via bank operations was fixed
- The page on the success of the Currency exchange operation was added
- Filter by “Type” for “Currency exchange” operation was fixed on the Transaction List for the Merchant role
- The issue with operational time for all operations in Individual’s Transactions List was fixed
API Changes
Endpoint | Updated |
POST /v1/exchange | Response were changed:
|
PATCH {{host}}/profiles/{userId}/additional PATCH {{host}}/profiles/my/additional | Value for field
|
Endpoint | Added |
POST /v1/exchange/reserve-top-up/create-request | For the Business user to be able to perform currency exchange operations, the Service user (any service user with appropriate permission) must first top up the balances on exchange_reserve wallets for the required currencies. Use this API to create a request to top up exchange_reserve wallet. The request will be created, but money will be loaded to the wallet when the request is confirmed. In the response, you will receive a
Response body:
To approve/decline/view business request call corresponding APIs: |
POST /v1/exchange/reserve-withdrawal/create-request | Use this API to create a request to withdraw exchange_reserve wallet. The request will be created, but money will be withdrawn from the wallet when the request is confirmed. In the response, you will receive a requestIdentifier along with exchange reserve withdrawal details. Pass requestIdentifier to the APIs to approve or decline request to withdraw exchange_reserve wallet. Permission to call this API: Request body:
response body:
To approve/decline/view business request call corresponding APIs: |
POST /business-requests/{requestIdentifier}/approve | Use this API to approve requests to top up/withdraw exchange_reserve wallet. Business request identifier. Permissions to call this API:
Response body:
|
POST /business-requests/{requestIdentifier}/decline | Use this API to decline requests to top up/withdraw exchange_reserve wallet. Business request identifier. Permissions to call this API:
Response body:
|
POST /business-requests | Use this API to view pending business requests to top up/withdraw exchange_reserve wallet with filter and pagination. Available filter:
Permission to call this API:
Request body:
Response body:
|
Endpoint | Deprecated/Deleted |