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.
⚠️ 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: removedcurrency
property 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
Authorizing
status returned in the Create Payment API response - Added the
scheme_selection
field in the Create Payout API request
⚠️ Breaking: the currency property of thePaymentDetail
class 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⚠️ :SchemeSelection
property forUserSelectedProviderSelection
object has been moved fromcom.truelayer.java.payments.entities.schemeselection
package tocom.truelayer.java.payments.entities.schemeselection.userselected
package
- [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.availability
field toPaymentsProvider
response entity - Added
capabilities.mandates.vrpSweeping.availability
field toPaymentsProvider
response entity - Added
capabilities.mandates.vrpSweeping.availability
field toPaymentsProvider
response entity ⚠️ BREAKING⚠️ RemovederrorRate
field fromProviderAvailability
object (used in the new fields defined above and in the already existingProviderSelection
authorization 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_products
object on payment and mandate creation requests - Adds support for
X-Device-User-Agent
HTTP 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
Failed
mandates object, renamedauthorisationFailedAt
property tofailedAt
- on
Revoked
mandates object, removedremitter
property
- [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-For
header on thestartAuthorizationFlow
invocations 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-For
HTTP 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}/transactions
endpoint 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_selection
support 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:
form
andconsent
action 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_selection
object 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]
metadata
object 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
PaymentAuthorizationFlowResponse
renamed toAuthorizationFlowResponse
, used in both payments and mandates- Removed
metadata
inAuthorizationFlowResponse
of typeredirect
- renamed package for
Provider
class andproviderId
field renamed toid
in ProviderSelction in authorization flow responses getTransactions
method andGetTransactionsResponse
renamed tolistTransactions
andListTransactionsResonse
respectively. method params simplified with the help of newListTransactionsQuery
typegetPaymentSources
andListPaymentSourcesResponse
renamed tolistPaymentSources
andListPaymentSourcesResponse
respectively. method params simplified with the help of newListPaymentSourcesQuery
type- Java 8
ZonedDateTime
toreplace 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