Skip to content

Commit d4173ee

Browse files
tl-tai-tangtl-luca-baggiCopilot
authored
feat(ACL-390): Add new data fields required for cVRP payments across all payment products (#389)
Co-authored-by: Luca Baggi <74901945+tl-luca-baggi@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent e527237 commit d4173ee

27 files changed

Lines changed: 261 additions & 17 deletions

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/).
77

8+
## [17.6.0] - 2026-05-15
9+
### Added
10+
* Add support for `user_interaction` and `use_cases` fields in payment API for commercial mandates
11+
812
## [17.5.1] - 2025-10-31
913
### Fixed
1014
* Update Sonatype Central badge url in order to show latest version

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Main properties
22
group=com.truelayer
33
archivesBaseName=truelayer-java
4-
version=17.5.1
4+
version=17.6.0
55

66
# Artifacts properties
77
project_name=TrueLayer Java
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.truelayer.java.entities;
2+
3+
import com.fasterxml.jackson.annotation.JsonValue;
4+
import lombok.Getter;
5+
import lombok.RequiredArgsConstructor;
6+
7+
@RequiredArgsConstructor
8+
@Getter
9+
public enum UseCase {
10+
CHARITY("charity"),
11+
FINANCIAL_SERVICES("financial_services"),
12+
GOVERNMENT("government"),
13+
UTILITIES("utilities");
14+
15+
@JsonValue
16+
private final String useCase;
17+
}

src/main/java/com/truelayer/java/mandates/entities/mandate/VRPCommercialMandate.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static com.truelayer.java.mandates.entities.mandate.Mandate.Type.COMMERCIAL;
44

5+
import com.truelayer.java.entities.UseCase;
56
import com.truelayer.java.mandates.entities.beneficiary.Beneficiary;
67
import com.truelayer.java.payments.entities.providerselection.ProviderSelection;
78
import lombok.Builder;
@@ -20,4 +21,6 @@ public class VRPCommercialMandate extends Mandate {
2021
private Beneficiary beneficiary;
2122

2223
private String reference;
24+
25+
private UseCase useCase;
2326
}

src/main/java/com/truelayer/java/mandates/entities/mandatedetail/MandateDetail.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.truelayer.java.TrueLayerException;
66
import com.truelayer.java.commonapi.entities.UserDetail;
77
import com.truelayer.java.entities.CurrencyCode;
8+
import com.truelayer.java.entities.UseCase;
89
import com.truelayer.java.mandates.entities.Constraints;
910
import com.truelayer.java.mandates.entities.beneficiary.Beneficiary;
1011
import com.truelayer.java.payments.entities.providerselection.ProviderSelection;
@@ -40,6 +41,10 @@ public abstract class MandateDetail {
4041

4142
private ProviderSelection providerSelection;
4243

44+
private UseCase useCase;
45+
46+
private String type;
47+
4348
public abstract Status getStatus();
4449

4550
public AuthorizationRequiredMandateDetail asAuthorizationRequiredMandateDetail() {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.truelayer.java.payments.entities;
2+
3+
import com.fasterxml.jackson.annotation.JsonValue;
4+
import lombok.Getter;
5+
import lombok.RequiredArgsConstructor;
6+
7+
@RequiredArgsConstructor
8+
@Getter
9+
public enum UserInteraction {
10+
PRESENT("present"),
11+
NOT_PRESENT("not_present");
12+
13+
@JsonValue
14+
private final String userInteraction;
15+
}

src/main/java/com/truelayer/java/payments/entities/paymentmethod/Mandate.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static com.truelayer.java.payments.entities.paymentmethod.PaymentMethod.Type.MANDATE;
44

55
import com.fasterxml.jackson.annotation.JsonGetter;
6+
import com.truelayer.java.payments.entities.UserInteraction;
67
import com.truelayer.java.payments.entities.retry.Retry;
78
import java.util.Optional;
89
import lombok.Builder;
@@ -29,4 +30,6 @@ public class Mandate extends PaymentMethod {
2930
public Optional<String> getReference() {
3031
return Optional.ofNullable(reference);
3132
}
33+
34+
private UserInteraction userInteraction;
3235
}

src/main/java/com/truelayer/java/payments/entities/submerchants/BusinessClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
@EqualsAndHashCode(callSuper = false)
1313
public class BusinessClient extends UltimateCounterparty {
1414
private final Type type = Type.BUSINESS_CLIENT;
15+
private String id;
1516
private String tradingName;
1617
private String commercialName;
1718
private String url;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package com.truelayer.java.paymentsproviders.entities;
22

33
import com.truelayer.java.entities.ProviderAvailability;
4+
import com.truelayer.java.entities.UseCase;
45
import com.truelayer.java.payments.entities.ReleaseChannel;
6+
import java.util.List;
57
import lombok.Value;
68

79
@Value
810
public class VrpCommercialCapabilities {
911
ReleaseChannel releaseChannel;
1012

1113
ProviderAvailability availability;
14+
15+
List<UseCase> useCases;
1216
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.truelayer.java.paymentsproviders.entities.searchproviders;
22

3+
import com.truelayer.java.entities.UseCase;
4+
import java.util.List;
35
import lombok.Value;
46

57
@Value
6-
public class VrpCommercialCapabilities {}
8+
public class VrpCommercialCapabilities {
9+
List<UseCase> useCases;
10+
}

0 commit comments

Comments
 (0)