From 486855502d34e2b3e0b179f7d8da2f363f554c7e Mon Sep 17 00:00:00 2001 From: "david.owusu" Date: Thu, 13 Nov 2025 11:36:55 +0100 Subject: [PATCH 1/2] [CC-3049] Add `onlineTransfer` to AdditionalTransactionData --- .../payment/models/AdditionalTransactionData.java | 1 + .../models/OnlineTransfereTransactionData.java | 12 ++++++++++++ .../business/paymenttypes/OpenBankingTest.java | 4 ++++ .../resources/api-response/open-banking/charge.json | 5 +++++ 4 files changed, 22 insertions(+) create mode 100644 src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java diff --git a/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java b/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java index 007ee4f8..79ccf086 100644 --- a/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java +++ b/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java @@ -15,6 +15,7 @@ public class AdditionalTransactionData { private RiskData riskData; private PaypalData paypal; private WeroTransactionData wero; + private OnlineTransfereTransactionData onlineTransfer; /** * URL to the merchant's Terms and Conditions Page diff --git a/src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java b/src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java new file mode 100644 index 00000000..2427d88d --- /dev/null +++ b/src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java @@ -0,0 +1,12 @@ +package com.unzer.payment.models; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import lombok.Data; + +@Data +@JsonTypeName("card") +@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) +public class OnlineTransfereTransactionData { + private String targetDueDate; +} diff --git a/src/test/java/com/unzer/payment/business/paymenttypes/OpenBankingTest.java b/src/test/java/com/unzer/payment/business/paymenttypes/OpenBankingTest.java index 543be111..dde61a9d 100644 --- a/src/test/java/com/unzer/payment/business/paymenttypes/OpenBankingTest.java +++ b/src/test/java/com/unzer/payment/business/paymenttypes/OpenBankingTest.java @@ -18,6 +18,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; @WireMockTest(httpPort = 8080) @@ -95,5 +96,8 @@ void test_charge_ok() { Charge charge = unzer.charge(BigDecimal.TEN, Currency.getInstance("EUR"), type); + assertNotNull(charge.getAdditionalTransactionData()); + assertNotNull(charge.getAdditionalTransactionData().getOnlineTransfer()); + assertEquals("2025-12-12 10:40:41", charge.getAdditionalTransactionData().getOnlineTransfer().getTargetDueDate()); } } diff --git a/src/test/resources/api-response/open-banking/charge.json b/src/test/resources/api-response/open-banking/charge.json index 64d8b8c9..5fce8c71 100644 --- a/src/test/resources/api-response/open-banking/charge.json +++ b/src/test/resources/api-response/open-banking/charge.json @@ -20,6 +20,11 @@ "traceId": "b2f9c67bebafa3cd49b3d50f9ff00639", "typeId": "s-obp-q0nucec6itwe" }, + "additionalTransactionData": { + "onlineTransfer": { + "targetDueDate": "2025-12-12 10:40:41" + } + }, "processing": { "uniqueId": "31HA07BC8150FAE7F0B65A2095CE0A83", "shortId": "5390.6667.9884", From 0b9544c743e588f981792fe3883f5c5529e18c55 Mon Sep 17 00:00:00 2001 From: "david.owusu" Date: Wed, 19 Nov 2025 10:24:20 +0100 Subject: [PATCH 2/2] [CC-3049] Fix jsontype. --- .../com/unzer/payment/models/AdditionalTransactionData.java | 2 +- ...ransactionData.java => OnlineTransferTransactionData.java} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/main/java/com/unzer/payment/models/{OnlineTransfereTransactionData.java => OnlineTransferTransactionData.java} (79%) diff --git a/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java b/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java index 79ccf086..e11d9af6 100644 --- a/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java +++ b/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java @@ -15,7 +15,7 @@ public class AdditionalTransactionData { private RiskData riskData; private PaypalData paypal; private WeroTransactionData wero; - private OnlineTransfereTransactionData onlineTransfer; + private OnlineTransferTransactionData onlineTransfer; /** * URL to the merchant's Terms and Conditions Page diff --git a/src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java b/src/main/java/com/unzer/payment/models/OnlineTransferTransactionData.java similarity index 79% rename from src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java rename to src/main/java/com/unzer/payment/models/OnlineTransferTransactionData.java index 2427d88d..34fbf151 100644 --- a/src/main/java/com/unzer/payment/models/OnlineTransfereTransactionData.java +++ b/src/main/java/com/unzer/payment/models/OnlineTransferTransactionData.java @@ -5,8 +5,8 @@ import lombok.Data; @Data -@JsonTypeName("card") +@JsonTypeName("onlineTransfer") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) -public class OnlineTransfereTransactionData { +public class OnlineTransferTransactionData { private String targetDueDate; }