diff --git a/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java b/src/main/java/com/unzer/payment/models/AdditionalTransactionData.java index 007ee4f8..e11d9af6 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 OnlineTransferTransactionData onlineTransfer; /** * URL to the merchant's Terms and Conditions Page diff --git a/src/main/java/com/unzer/payment/models/OnlineTransferTransactionData.java b/src/main/java/com/unzer/payment/models/OnlineTransferTransactionData.java new file mode 100644 index 00000000..34fbf151 --- /dev/null +++ b/src/main/java/com/unzer/payment/models/OnlineTransferTransactionData.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("onlineTransfer") +@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) +public class OnlineTransferTransactionData { + 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",