All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add support for Verified Payouts with user-determined beneficiary type
- Add HPP link builder support for payouts
- Add support for
scheme_idfield in merchant account transaction responses for Payout and Refund transactions - The
scheme_idfield provides information about the payment scheme used (e.g., "faster_payments_service", "sepa_credit_transfer", "internal_transfer")
- Add sub_merchants support to Payments module
- Add support for
deprecated_atproperty to GET payment API response
- Add support for PLN payouts
⚠️ Breaking: removed deprecated HPP link builder⚠️ Breaking: Aligned custom cache implementation to other officially supported client libraries
- Upgrades linting and test libraries
- Upgrades quarkus-mvc test project and introduce CI workflow for that
- Upgrades CI environment
- Introduces CHANGELOG.md file
- feat(ACL-251): Adds method to generate SU+ Authentication URI for FI payments by @dili91 in #332
- feat(ACL-251): Adds method to generate SU+ Authentication URI for FI payments by @dili91 in #332
- Add search payments providers endpoint + statement reference to merchant account by @tl-luca-baggi in #330
- [ACL-226] New HPP link builder with ability to show mandate results, and set wait and/or signup by @dili91 in #328
- chore(ACL-225): v3 endpoints used for Payments API by @dili91 in #327
- Merchant accounts updates by @tl-luca-baggi in #325
⚠️ Breaking: removedcurrencyproperty fromUpdateSweepingRequest
- Signup+ endpoint to generate the Auth URI to be used in Finland
- Signup+ endpoint to get identity data associated to a payment, both in UK and Finland
- Added the
Authorizingstatus returned in the Create Payment API response - Added the
scheme_selectionfield in the Create Payout API request
⚠️ Breaking: the currency property of thePaymentDetailclass in now an enumCurrencyCode
- [ACL-167] Add sub_merchants support to payouts by @tl-luca-baggi in #320
- feat(ACL-195): Adds cancel payment support by @dili91 in #315
- [ACL-159] Add user_selected scheme selection by @tl-luca-baggi in #313
- [ACL-180] Add preselected scheme selection to preselected provider by @tl-luca-baggi in #312
⚠️ Breaking⚠️ :SchemeSelectionproperty forUserSelectedProviderSelectionobject has been moved fromcom.truelayer.java.payments.entities.schemeselectionpackage tocom.truelayer.java.payments.entities.schemeselection.userselectedpackage
- [ACL-161] Add risk_assessment field to create payment request by @tl-luca-baggi in #311
- feat(ACL-162): supports for verified payins by @dili91 in #310
- [ACL-174] Improve retry payments acceptance tests by @tl-luca-baggi in #303
- [ACL-175] Fix missing EqualsAndHashCode Lombok annotations by @tl-luca-baggi in #304
- [ACL-32] Ownership change by @dili91 in #299
- [ACL-138] Add support for retry parameter by @tl-luca-baggi in #300
- [EWT-590] Fix mandates acceptance tests by @tl-luca-baggi in #296
- [EWT-567] Version info management simplification by @dili91 in #293
- chore(EWT-561): improved reporting for acceptance tests by @dili91 in #291
- Adjust settlement/authorisation timeouts in acceptance tests, and review version info loader implementation by @dili91 in #289
- chore(EWT-560): Dependency updates and improved reporting for failed acceptance tests by @dili91 in #288
- fix(EWT-543): type change for description field in authorization flow actions objects by @dili91 in #286
- Added
capabilities.payments.bankTransfer.availabilityfield toPaymentsProviderresponse entity - Added
capabilities.mandates.vrpSweeping.availabilityfield toPaymentsProviderresponse entity - Added
capabilities.mandates.vrpSweeping.availabilityfield toPaymentsProviderresponse entity ⚠️ BREAKING⚠️ RemovederrorRatefield fromProviderAvailabilityobject (used in the new fields defined above and in the already existingProviderSelectionauthorization flow action
- feat(EWT-535): Support for merchant account transactions pagination by @dili91 in #279
- feat(PAYINS-504): Set Authorization header to
GET v3/payments-providers/{id}by @tl-facundo-aita in #270
- added constant for commercial VRP scope: RECURRING_PAYMENTS_COMMERCIAL
⚠️ Breaking⚠️ : refactor the submit provider return response object to support multiple resource types (single payments and mandates)- tests: refactor the way we do headless auth for payments and mandates in acceptance tests
- chore(EWT-359): dependencies and CI updates by @dili91 in #242
- [EWT-371] Add payment_source property to authorized and failed payment details by @tl-luca-baggi in #234
- [DNTT-489] Added settlement_risk to executed and settled payment details response types by @dili91 in #233
- chore(EWT-358): upgrade to Wiremock 3.X, and more internal deps by @dili91 in #230
- Adds support for
related_productsobject on payment and mandate creation requests - Adds support for
X-Device-User-AgentHTTP header on start authorization flow
PR: #228
- new: feature to set explicit global OAuth scopes globally on the client. More on this Wiki entry
- changed: Adapts the /token/connect request to the API specs
- changed: Sets explicit scopes on all authenticated requests (relates to #210)
- changed
⚠️ BREAKING : changes how caching works and the ICredentialsCache to work with scopes. More on this wiki page
- [Dependabot]: Bump org.junit.jupiter:junit-jupiter from 5.9.3 to 5.10.0 by @dependabot in #209
- [Dependabot]: Bump com.diffplug.spotless from 6.19.0 to 6.20.0 by @dependabot in #207
- [Dependabot]: Bump io.freefair.lombok from 8.1.0 to 8.2.1 by @dependabot in #212
- [EWT-278] Build also against JDK 20 by @dili91 in #211
- [Dependabot]: Bump io.freefair.lombok from 8.2.1 to 8.2.2 by @dependabot in #214
- fix(EWT-328): improperly formatted datetime string on transactions endpoint by @dili91 in #216
- [Dependabot]: Bump io.freefair.lombok from 8.0.1 to 8.1.0 by @dependabot in #206
- [EWT-306] Fix models inconsistencies by @tl-luca-baggi in #208
- on
Failedmandates object, renamedauthorisationFailedAtproperty tofailedAt - on
Revokedmandates object, removedremitterproperty
- [Dependabot]: Bump org.apache.commons:commons-configuration2 from 2.8.0 to 2.9.0 by @dependabot in #196
- [Dependabot]: Bump com.squareup.okhttp3:okhttp from 4.10.0 to 4.11.0 by @dependabot in #199
- [Dependabot]: Bump org.junit.jupiter:junit-jupiter from 5.9.2 to 5.9.3 by @dependabot in #200
- [Dependabot]: Bump com.diffplug.spotless from 6.17.0 to 6.18.0 by @dependabot in #197
- [EWT-192] Add support for a limited set of custom HTTP headers by @dili91 in #204
- The ITrueLayerClient interface returns only Handlers interface, as opposed to the previous mix of Api and Handlers interface.
- the old mechanism to set the
X-Forwarded-Forheader on thestartAuthorizationFlowinvocations is superseded by the new API. - The (empty) SubmitConsentRequest object has been removed in favour of a more generic empty request body type.
Beneficiary entity and its extensions (ExternalAccount, PaymentSource, BusinessAccount) have been moved from com.truelayer.java.merchantaccounts.entities.transactions.beneficiary to com.truelayer.java.entities.beneficiary package. The same entities are referenced from the newly introduced payout entities
- [EWT-194] Add payouts support by @tl-luca-baggi in #203
- [EWT-191] Add support for custom proxy configurations with authentication by @dili91 in #202
- [EWT-78] Add payment refunds support by @tl-luca-baggi in #201
- [Dependabot]: Bump io.github.gradle-nexus.publish-plugin from 1.2.0 to 1.3.0 by @dependabot in #190
- [Dependabot]: Bump com.diffplug.spotless from 6.16.0 to 6.17.0 by @dependabot in #192
- [EWT-135] feat: adds support for
X-Forwarded-ForHTTP header in start auth flow for single payments by @dili91 in #195
- [Dependabot]: Bump junit-jupiter from 5.9.1 to 5.9.2 by @dependabot in #179
- [EWT-99] bump com.diffplug.spotless from 6.12.1 to 6.14.1 + Removes java 8 from our CI matrix by @dependabot in #183
- [EWT-73] Updates nexus publish-plugin, gradle wrapper and other internal libraries by @dili91 in #189
- [EWT-85] fixes existing items returned by the
merchant-accounts/{id}/transactionsendpoint and add support for refunds by @dili91 in #180
- [Dependabot]: Bump com.diffplug.spotless from 6.12.0 to 6.12.1 by @dependabot in #177
- feat(PAYG-1374): Remove user info from get payment and mandate response by @tl-tai-tang in #178
- @tl-tai-tang made their first contribution in #178
- [Dependabot]: Bump io.freefair.lombok from 6.6 to 6.6.1 by @dependabot in #174
- feat: [PAYG-1363] add PLN and NOK currencies by @Lindronics in #176
- Github actions updates by @dili91 in #173
- [EWT-79] Default READ timeout reviewed + bugfix for existing custom timeout logic by @dili91 in #175
- transitive dependencies constraint block to replace previous direct dependencies by @dili91 in #172
- Bumps dependencies to solve a few vulnerabitities by @dili91 in #171
- [EWT-63]
scheme_selectionsupport for single payments by @dili91 in #170 - [REC-656] Async and Smart payment retries for recurring payments
- AuthorizationFlow related deprecated objects removal and provider selection DTOs renamed (leftovers)
- [REC-740] Get Mandate Constraints + tests by @tl-andrei-sorbun in #169
- [JSDK-58] Captures Java version in TL-Agent, upgrades Gradle wrapper and CI by @dili91 in #167
- [JSDK-86] New getters to help with responses interpretations + Dependency updates by @dili91 in #166
- [EWT-61] feat(observability): User-agent HTTP header replaced with TL-Agent by @dili91 in #164
The Mandate and MandateDetail types now reference a Beneficiary class included in package com.truelayer.java.mandates.entities.beneficiary as opposed to the previous com.truelayer.java.payments.entities.beneficiary. Moreover, the new Beneficiary type for mandates does not contain any a reference field in it. This has now been moved into the Mandate type itself.
- [Dependabot]: Bump com.diffplug.spotless from 6.11.0 to 6.12.0 by @dependabot in #163
- [REC-725] feat(mandate reference): optional mandate reference added by @dili91 in #162
- [Dependabot]: Bump wiremock-jre8 from 2.34.0 to 2.35.0 by @dependabot in #158
- [REC-718] feat(recurring payments): reference added to create payment request for mandates by @dili91 in #161
- fix:
formandconsentaction response deserialisation by @Lindronics in #160
- feat: [JSDK-70] get payments provider endpoint by @Lindronics in #156
- fix: upgraded version to 2.5.0 by @Lindronics in #157
- feat: [PAYG-1169] add status to create payment response by @Lindronics in #155
- [Dependabot]: Bump junit-jupiter from 5.9.0 to 5.9.1 by @dependabot in #153
- feat: [PAYG-1148] Add consent and form action support by @Lindronics in #154
- @Lindronics made their first contribution in #154
- dependencies updates by @dili91 in #152
- [PAYG-1133] Add extra fields to user object by @tl-wajid-malik in #148
- @tl-wajid-malik made their first contribution in #148
- [REC-631] reference added to payments into merchant accounts by @dili91 in #149
- [JSDK-80] Confirmation of Funds by @tl-andrei-sorbun in #144
- Bump signing library by @tl-andrei-sorbun in #143
- [Dependabot]: Bump com.diffplug.spotless from 6.9.0 to 6.9.1 by @dependabot in #139
- [Dependabot]: Bump com.diffplug.spotless from 6.9.1 to 6.10.0 by @dependabot in #142
- [REC-550] Update SDK with new Remitter field by @tl-andrei-sorbun in #141
- @tl-andrei-sorbun made their first contribution in #141
- [PAYG-920] remove auth flow from authorizing by @tl-facundo-aita in #133
- [Dependabot]: Bump com.diffplug.spotless from 6.5.2 to 6.9.0 by @dependabot in #134
- [Dependabot]: Bump jackson-databind from 2.13.2.2 to 2.13.3 by @dependabot in #117
- [Dependabot]: Bump junit-jupiter from 5.8.2 to 5.9.0 by @dependabot in #138
- [Dependabot]: Bump truelayer-signing from 0.2.0 to 0.2.1 by @dependabot in #128
- [Dependabot]: Bump commons-configuration2 from 2.7 to 2.8.0 by @dependabot in #129
- [Dependabot]: Bump io.freefair.lombok from 6.4.3 to 6.5.0.3 by @dependabot in #130
- [REC-567]
provider_selectionobject on mandate detail DTO by @dili91 in #137
- [JSDK-82] Javadoc simplification by @dili91 in #131
- [JSDK-83] Sample app documentation improvement by @dili91 in #135
- [JSDK-64]
metadataobject on payments and mandates DTOs by @dili91 in #136
- [JSDK-77] Client builder refactor for testability by @dili91 in #125
- Onboards Recurring payments functionalities as per our public docs.
- Adds support for settlement_risk in GET payment by id responses
PaymentAuthorizationFlowResponserenamed toAuthorizationFlowResponse, used in both payments and mandates- Removed
metadatainAuthorizationFlowResponseof typeredirect - renamed package for
Providerclass andproviderIdfield renamed toidin ProviderSelction in authorization flow responses getTransactionsmethod andGetTransactionsResponserenamed tolistTransactionsandListTransactionsResonserespectively. method params simplified with the help of newListTransactionsQuerytypegetPaymentSourcesandListPaymentSourcesResponserenamed tolistPaymentSourcesandListPaymentSourcesResponserespectively. method params simplified with the help of newListPaymentSourcesQuerytype- Java 8
ZonedDateTimetoreplace java.util.Date
- @nico-incubiq made their first contribution in #121
- [JSDK-74] Improved configurability: call timeout, connection pool and request dispatcher by @dili91 in #115
- [JSDK-60] Support for provider return params by @tl-andrea-dilisio in #96
- [JSDK-66] Bugfix serialization issue by @tl-andrea-dilisio in #103
- [JSDK-63] response DTOs usability improvements by @tl-andrea-dilisio in #100
- Dependabot and CVE-2020-36518 resolution by @dili91 in #101
- @dili91 made their first contribution in #101
- [JSDK-62] Provider id and scheme id added in GET payment response by @tl-andrea-dilisio in #99
- [JSDK-61] Adds support for unknown properties on response DTOs by @tl-andrea-dilisio in #98
- [JSDK-57] Optional credentials caching + custom pluggable cache by @tl-andrea-dilisio in #94
- [JSDK-55] Custom logging implemented by @tl-andrea-dilisio in #92
- [JSDK-53] Contributing by @tl-andrea-dilisio in #88
- [JSDK-36] Access token cache by @tl-andrea-dilisio in #83
- [Dependabot]: Bump io.freefair.lombok from 6.2.0 to 6.4.1 by @dependabot in #86
- [JSDK-50] Update tl signing version by @azanin in #82
- @azanin made their first contribution in #82
- [JSDK-48] Javadoc and doc improvements by @tl-andrea-dilisio in #81