Explore Release Notes

Release Version 4.16.0 (January 15, 2024)

15. 01. 2024

What’s new

The current accounting model for Withdrawal via bank and Top up via provider operations was changed in order to have the ability to see in-system money circulation in the separate wallet (“issuing_balance”).

Release Version 4.16.0 (January 15, 2024) The current atomic transactions inside the Business Processes were changed according to the schema of technical transactions. If the “integrator” (or “client”) uses the fields from the node transactions from the API endpoints POST /transactions/view or GET/transactions/{transactionId} for their system – they should note that the atomic transaction set for the above transactions has changed (see schemas below).

Withdrawal via bank:

Release Version 4.16.0 (January 15, 2024)

Top up via provider:

Release Version 4.16.0 (January 15, 2024)

A new collection was added to the Postman due to a new accounting model for Withdrawal via bank and Top-up via provider operations.

The ability for a business user to provide an IBAN as bank account details and link to an in-system account via Front-office UI was added.

The business user has the abilities (via Front-office UI and API):

  • to provide existing IBAN as bank account details validate it and link it with in-system account

  • to generate IBAN and use it as bank account details and link with in-system account

How to add a Bank account via Front-office UI (provide existing Bank Account Number provide existing IBAN, or generate IBAN):

  1. Log in as an Individual

  2. Select “Account” (press on the certain account to which you want to link the Bank account)

  3. Presses “Add bank account” and specifies the needed 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

  1. Press “Add bank account”.

  • Under the hood, the back-end validates IBAN if it was provided

  • If the user presses “Generate IBAN” under the hood, the back-end generates IBAN and it appears in the “IBAN” field. To generate IBAN “Bank ID” is required. The country for IBAN generation will be taken from the bank entity provided bankId

  • Release Version 4.16.0 (January 15, 2024) for test implementation, the system uses the library (ISO13616) for IBAN validation and generation, if there is integration with the IBAN provider or bank, validation and generation will be done through integration, according to IBAN provider’s requirements

If provided IBAN ibanIsValid:true – a bank account will be created and passed to the Administrator checking. After approval, the bank account will be added to the user’s profile under ‘Bank Accounts’ and linked to the current in-system account

If provided IBAN ibanIsValid:false – the error message appears to User (“IBAN is invalid”)

Validating for empty countryCode in bank was added.
Validation for the generated IBAN to check the bank account with the same IBAN in the system was added. If IBAN already exists in other bank account detailed therefore generate a new one.

New API endpoints to validate and generate IBAN were added. Also, new fields were added to BankDetailsDto. See “API Changes” section of the release notes to know more about changes related to API

The ability to activate/deactivate the gate commission profile was added (via API and UI). If the gate commission profile is not active operation is not allowed.

Deactivation of the commission profile affects only the creation of new operations, already created operations, e.g. in “pending” status, will be finalized without any restrictions. See “API Changes” section of the release notes to know more about changes related to API

Optional query param onlyActive wad added to API GET /api/v1/organizations/{organizationId}/coins. See “API Changes” section of the release notes to know more about changes related to API

Ability to see user document numbers, that were provided as plain text was added to the Compliance Manager back-office UI

Improvements

  • A new error code when trying to close/delete not allowed (main) accounts were added to the exception bundle (exception.coin.operation.not.allowed)
  • Counter service API “Get detail statistic per host” was changed. See “API Changes” section of the release notes to know more about changes related to API
  • Status Code when trying to Create Issue Card Purchase via POST {{host}}/issue-card/cards was fixed. 500 status code was replaced by 404 Not Found (for APIs POST {{host}}/issue-card/cards and POST {{host}}/gate/transactions/{transactionId}/prepare).

Code: “exception.issue_card_service.is_not_enabled”
Message: “The service is not available under the terms of the license agreement. For more information please contact your sales assistant”

  • User creation letter (notification for Compliance Manager) was enhanced. User logic was added for the notification text.
  • Integration test for Top up via bank operation due to new accounting model was extended
  • User contact phone number and email validation patterns were moved from code to system configuration level (for API and UI).Current validation pattern in application-core-validation.yaml file:
    core:  validation:     phone:       regex: '\+?[0-9]{9,15}'     email:       regex: '^[_a-z0-9-\+]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9]+)*(\.[a-z]{2,})$'
  • Add Merchant Surname was added to the Merchant Front-office home page. Field profile.person.namePlain.last from API GET /profiles/my is used
  • Permission COIN_CLOSURE was added to the Administrator role by default. Permission is required for PUT /v1/close/coin/{serial}
  • The ability to override links and URLs in different types of user messages was added (bundles).

Fixes

  • The issue with the status of “Top Up via provider” was fixed. Status was changed from Pending to Processed in response to POST /gate/transactions/{tx}/submit for successfully processed operations
  • The front-end filter name was changed from “PaymentI identifiers” to “Request Identifiers” on the Transactions list
  • Transfer to card flow for the merchant was fixed. Correct API endpoint GET /API/v1/smart-cards/my is used after the operation performing
  • Status Code when trying to perform operations where a commission is greater than the amount of operation that was fixed. 500 status code was replaced by 400 Bad Request (relates Top Up via Provider, Withdraw via Provider, Purchase via Provider)
  • The issue with overlapping limits validation was fixed.
  • The issue with the sign (minus/plus) for Withdrawal via cash desk operation in the Individual transaction history detail was fixed (operation display with a minus sign)
  • The issue with the Currency Exchanges operation was fixed. The parameter isMultiCurrency was changed from false to true for API GET /operation-flows for Currency Exchange operations
  • The issue with transaction export to CSV file was fixed (API POST {{baseUrl}}/data-export/init)
  • The front-end issue with Action history was fixed. Correct user IDs are used for retrieving the list of user’s actions in API POST /users/view/actions
  • The issue with the date range filter for Transaction history was fixed
  • Creation of commission-product rules with Gate Products in different currency IDs (in gate_product and commission-product-rule) was forbidden. Gate Product must have the same currency as the commission-product rule to which it belongs. Front-end use currencies node from API GET/v1/gate/products/gate-provider/{gateProviderId}/view to now which currencies gate product supports
  • The issue with wallet closure (with a positive balance on it) was fixed
  • The issue with bundles where & the dollar was fixed
  • The issue with Actions log availability was fixed (API POST /API/v1/users/view/actions)
  • The issue with the User identification status flow was fixed. Now user can upload documents after his identification-reset request has been approved. After resetting statuses is:
    • DocumentApprovalStatus = outdated
    • OrganizationStatus=pending

API Changes

Endpoint
Updated
POST {{host}}/api/v1/operations/host
{{statistic_host}} was moved from path to request body
request body:
{"pageNumber": 0,
    "pageSize": 50,
    "filter": {
        "createdAtFrom": "2023-09-01T00:00:00.270722Z",
        "createdAtTo": "2023-09-30T23:59:59.270722Z",
        "host": "{{:statistic_host}}"
    },
    "sort": {
        "createdAt": "asc",
        "status": null,
        "type": null
    }
}
POST /contracts/{contractId}/gate-commission-profiles/view
POST /contracts/{contractId}/gate-commission-profiles
Field active was added to APIs requests/responses.
Field active is optional.
Default value: true
If the gate commission profile is not active operation is not allowed. Deactivation of the commission profile affects only the creation of new operations, already created operations, e.g. in “pending” status, will be finalized without any restrictions.
Also, filed active was added in all responses for gate profile records
GET ​/v1​/gate-provider​/{gateProviderId}​/coins
GET ​/v1​/organizations​/{id}​/provider-coins
Filed name was added to the response body.
Name - the name of the provider related account (get form emintant_coin_def, for example Gate Fee b03dbb46/PROVIDER/GBP).
GET /api/v1/organizations/{organizationId}/coins
Optional query param onlyActive was added (OpenAPI - query param, Spring - @RequestParam)
Default value : false
Conditions:
  • if onlyActive is present as query parameter (provided by the User as false or true) - it will be used as a filter and return the result accordingly (onlyActive=true - only the active coins in the response, onlyActive=false - active and invective coins int the response)
GET
/api/v1/organizations/{organizationId}/coins?onlyActive=true
or
GET
/api/v1/organizations/{organizationId}/coins?onlyActive=false
  • if onlyActive is absent as query parameter - onlyActive=false will be used and return all coins (active and inactive) for a particular organization

GET
/api/v1/organizations/{organizationId}/coins

POST /coins
Irrelevant field pin was removed from the requires and response
POST /iban/validate
New API endpoint to validate IBAN was added.
Permission required: IBAN_OWNER (by default set only for business roles)
request body:

{
"iban": "UA494596249286673063124558654"
}

response body:

{
"ibanIsValid": true
}

Release Version 4.16.0 (January 15, 2024) for test implementation, the system uses library for IBAN validation. if there is integration with IBAN provider or bank, validation will be done through integration, according to IBAN provider's requirements
If provided IBAN ibanIsValid:true - bank account will be created and passed to the Administrator cheking. After approval, the bank account will be added to the user's profile under 'Bank Accounts' and linked to the current in-system account
If provided IBAN ibanIsValid:false- the error message appears to User (“IBAN number is invalid”)
POST ​/v1​/bank-catalog
In the API response fields was added (to BankDetailsDto):

city,
countryCode,
zipCode

POST /iban/{bankId}/generate
New API endpoint to generate IBAN was added.
Permission required: IBAN_OWNER by default set only for business roles
bankId - Internal Bank Identifier, required to generate IBAN. Can be taken from GET​/v1​/bank-catalog. The country for IBAN generation will be taken from bank entity by provided bankId
request body:

{}

response body:

{ "iban": "UA730577753473920323685820538",
"countryCode": "UA",
"bankId": "289efecd-464b-4fae-a5a7-2175321b5d8c"
}

Release Version 4.16.0 (January 15, 2024) for test implementation, the system uses the library for IBAN generation. if there is integration with IBAN provider or bank, generation will be done through integration, according to IBAN provider's requirements
Release Version 4.16.0 (January 15, 2024) was added the validation for generated IBAN to check bank account with the same IBAN in the system. If IBAN exists therefore generate a new one.
Endpoint
Added
PATCH /contracts/{contractId}/gate-commission-profiles
New API to update gate commission profile was added
permission required: CONTRACT_MANAGER
request body:
{
    "gateProfileId": "ea56cde2-1f77-4412-8c1f-6b72d2567086",
    "active": false
}
response body:
{
    "profile": {
        "id": "ea56cde2-1f77-4412-8c1f-6b72d2567086",
        "gateProviderId": "e15cb1d6-9365-4137-81cb-f7f9a25a47d6",
        "gateProviderName": "SDK.Finance Top up",
        "providerCurrency": {
            "id": "ce036be0-7086-4dc2-9590-24e7dd66a33f",
            "code": "USD",
            "digitalCode": "840",
            "symbol": "$",
            "name": "US Dollar",
            "description": "desc",
            "fraction": 100,
            "snPrefix": "USD",
            "active": true
        },
        "createdAt": "2023-12-20T12:50:15.971Z",
        "updatedAt": "2023-12-20T12:50:15.971Z",
        "active": false
    }
}
Endpoint
Deprecated/Deleted
GET ​/v1​/issue-card​/users​/cards
API endpoint was removed as irrelevant