From 0a48ebe722998eb189ef4e137e7cdcf8c049b27b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Rasmussen?= Date: Wed, 29 Jul 2026 11:06:42 +0200 Subject: [PATCH 1/3] COREP-5570 Add API configuration for RMA and Maximum Conversion --- CHANGELOG.md | 3 ++ build.gradle | 2 +- readme.md | 4 +- .../com/pensio/api/PensioMerchantAPI.java | 12 +++++ .../pensio/api/request/PaymentRequest.java | 44 +++++++++++++++++++ 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0060384..0a8246c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Changelog All notable changes to this project will be documented in this file. +## [3.1.21] +- Added `riskManager` and `maxConversion` objects to `configuration` in API request. + ## [3.1.20] - Added `MerchantErrorMessage` and `MerchantErrorCode` fields to `Transaction` in API response, exposing the failure reason and error code for failed/declined payments. - Added credit card schemes section on `/getTerminals` for `CreditCard` terminals. diff --git a/build.gradle b/build.gradle index a3cb3d2..e673316 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { } group = 'com.altapay' -version = '3.1.20' +version = '3.1.21' repositories { mavenCentral() diff --git a/readme.md b/readme.md index b1139a8..715ebd6 100644 --- a/readme.md +++ b/readme.md @@ -49,12 +49,12 @@ For integrating Java projects with the AltaPay gateway. com.altapay sdk-java - 3.1.20 + 3.1.21 ### Gradle - implementation 'com.altapay:sdk-java:3.1.20' + implementation 'com.altapay:sdk-java:3.1.21' ## Changelog diff --git a/src/main/java/com/pensio/api/PensioMerchantAPI.java b/src/main/java/com/pensio/api/PensioMerchantAPI.java index f8012ca..b22ffd4 100644 --- a/src/main/java/com/pensio/api/PensioMerchantAPI.java +++ b/src/main/java/com/pensio/api/PensioMerchantAPI.java @@ -380,6 +380,18 @@ protected void setPaymentRequestParameters( if (paymentRequest.getSessionId() != null) { addParam(params, "session_id", paymentRequest.getSessionId()); } + if (paymentRequest.getRiskManagerPolicyGroup() != null) { + addParam(params, "risk_manager_policy_group", paymentRequest.getRiskManagerPolicyGroup()); + } + if (paymentRequest.getRiskManagerPolicy() != null) { + addParam(params, "risk_manager_policy", paymentRequest.getRiskManagerPolicy()); + } + if (paymentRequest.getMaxConversionPolicyGroup() != null) { + addParam(params, "max_conversion_policy_group", paymentRequest.getMaxConversionPolicyGroup()); + } + if (paymentRequest.getMaxConversionPolicy() != null) { + addParam(params, "max_conversion_policy", paymentRequest.getMaxConversionPolicy()); + } } protected void setInvoiceReservationRequestParameters( diff --git a/src/main/java/com/pensio/api/request/PaymentRequest.java b/src/main/java/com/pensio/api/request/PaymentRequest.java index 096b6bc..756ebbb 100644 --- a/src/main/java/com/pensio/api/request/PaymentRequest.java +++ b/src/main/java/com/pensio/api/request/PaymentRequest.java @@ -21,6 +21,10 @@ public class PaymentRequest> private String giftCardToken; private String dynamicDescriptor; private String sessionId; + private String riskManagerPolicyGroup; + private String riskManagerPolicy; + private String maxConversionPolicyGroup; + private String maxConversionPolicy; protected PaymentRequestConfig config; protected CustomerInfo customerInfo; @@ -255,6 +259,46 @@ public T setSessionId(String sessionId) { return (T)this; } + public String getRiskManagerPolicyGroup() { + return riskManagerPolicyGroup; + } + + @SuppressWarnings("unchecked") + public T setRiskManagerPolicyGroup(String riskManagerPolicyGroup) { + this.riskManagerPolicyGroup = riskManagerPolicyGroup; + return (T)this; + } + + public String getRiskManagerPolicy() { + return riskManagerPolicy; + } + + @SuppressWarnings("unchecked") + public T setRiskManagerPolicy(String riskManagerPolicy) { + this.riskManagerPolicy = riskManagerPolicy; + return (T)this; + } + + public String getMaxConversionPolicyGroup() { + return maxConversionPolicyGroup; + } + + @SuppressWarnings("unchecked") + public T setMaxConversionPolicyGroup(String maxConversionPolicyGroup) { + this.maxConversionPolicyGroup = maxConversionPolicyGroup; + return (T)this; + } + + public String getMaxConversionPolicy() { + return maxConversionPolicy; + } + + @SuppressWarnings("unchecked") + public T setMaxConversionPolicy(String maxConversionPolicy) { + this.maxConversionPolicy = maxConversionPolicy; + return (T)this; + } + public List getOrderLines() { return orderLines; From 73a9c416b896541fc7fa8eb0144cbe612e7dd70d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Rasmussen?= Date: Wed, 29 Jul 2026 13:16:11 +0200 Subject: [PATCH 2/3] COREP-5570 Add API configuration for RMA and Maximum Conversion --- .../com/pensio/api/PensioMerchantAPI.java | 24 +++++----- .../request/CreateCheckoutSessionRequest.java | 40 +++++++++++++++++ .../pensio/api/request/PaymentRequest.java | 44 ------------------ ...hantApi_CheckoutSessionParameterTests.java | 45 +++++++++++++++++++ 4 files changed, 97 insertions(+), 56 deletions(-) create mode 100644 src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java diff --git a/src/main/java/com/pensio/api/PensioMerchantAPI.java b/src/main/java/com/pensio/api/PensioMerchantAPI.java index b22ffd4..02659d6 100644 --- a/src/main/java/com/pensio/api/PensioMerchantAPI.java +++ b/src/main/java/com/pensio/api/PensioMerchantAPI.java @@ -380,18 +380,6 @@ protected void setPaymentRequestParameters( if (paymentRequest.getSessionId() != null) { addParam(params, "session_id", paymentRequest.getSessionId()); } - if (paymentRequest.getRiskManagerPolicyGroup() != null) { - addParam(params, "risk_manager_policy_group", paymentRequest.getRiskManagerPolicyGroup()); - } - if (paymentRequest.getRiskManagerPolicy() != null) { - addParam(params, "risk_manager_policy", paymentRequest.getRiskManagerPolicy()); - } - if (paymentRequest.getMaxConversionPolicyGroup() != null) { - addParam(params, "max_conversion_policy_group", paymentRequest.getMaxConversionPolicyGroup()); - } - if (paymentRequest.getMaxConversionPolicy() != null) { - addParam(params, "max_conversion_policy", paymentRequest.getMaxConversionPolicy()); - } } protected void setInvoiceReservationRequestParameters( @@ -758,6 +746,18 @@ public CheckoutSessionResponse createCheckoutSession(CreateCheckoutSessionReques if (createCheckoutSessionRequest.getTerminals() != null) { addTerminals(params, createCheckoutSessionRequest.getTerminals()); } + if (createCheckoutSessionRequest.getRiskManagerPolicyGroup() != null) { + addParam(params, "risk_manager_policy_group", createCheckoutSessionRequest.getRiskManagerPolicyGroup()); + } + if (createCheckoutSessionRequest.getRiskManagerPolicy() != null) { + addParam(params, "risk_manager_policy", createCheckoutSessionRequest.getRiskManagerPolicy()); + } + if (createCheckoutSessionRequest.getMaxConversionPolicyGroup() != null) { + addParam(params, "max_conversion_policy_group", createCheckoutSessionRequest.getMaxConversionPolicyGroup()); + } + if (createCheckoutSessionRequest.getMaxConversionPolicy() != null) { + addParam(params, "max_conversion_policy", createCheckoutSessionRequest.getMaxConversionPolicy()); + } return checkoutSession(apiUrl, params); } diff --git a/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java b/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java index d02d7ae..5811a2d 100644 --- a/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java +++ b/src/main/java/com/pensio/api/request/CreateCheckoutSessionRequest.java @@ -5,6 +5,10 @@ public class CreateCheckoutSessionRequest extends PaymentRequest { private List terminals; + private String riskManagerPolicyGroup; + private String riskManagerPolicy; + private String maxConversionPolicyGroup; + private String maxConversionPolicy; public List getTerminals() { return terminals; @@ -13,4 +17,40 @@ public List getTerminals() { public void setTerminals(List terminals) { this.terminals = terminals; } + + public String getRiskManagerPolicyGroup() { + return riskManagerPolicyGroup; + } + + public CreateCheckoutSessionRequest setRiskManagerPolicyGroup(String riskManagerPolicyGroup) { + this.riskManagerPolicyGroup = riskManagerPolicyGroup; + return this; + } + + public String getRiskManagerPolicy() { + return riskManagerPolicy; + } + + public CreateCheckoutSessionRequest setRiskManagerPolicy(String riskManagerPolicy) { + this.riskManagerPolicy = riskManagerPolicy; + return this; + } + + public String getMaxConversionPolicyGroup() { + return maxConversionPolicyGroup; + } + + public CreateCheckoutSessionRequest setMaxConversionPolicyGroup(String maxConversionPolicyGroup) { + this.maxConversionPolicyGroup = maxConversionPolicyGroup; + return this; + } + + public String getMaxConversionPolicy() { + return maxConversionPolicy; + } + + public CreateCheckoutSessionRequest setMaxConversionPolicy(String maxConversionPolicy) { + this.maxConversionPolicy = maxConversionPolicy; + return this; + } } diff --git a/src/main/java/com/pensio/api/request/PaymentRequest.java b/src/main/java/com/pensio/api/request/PaymentRequest.java index 756ebbb..096b6bc 100644 --- a/src/main/java/com/pensio/api/request/PaymentRequest.java +++ b/src/main/java/com/pensio/api/request/PaymentRequest.java @@ -21,10 +21,6 @@ public class PaymentRequest> private String giftCardToken; private String dynamicDescriptor; private String sessionId; - private String riskManagerPolicyGroup; - private String riskManagerPolicy; - private String maxConversionPolicyGroup; - private String maxConversionPolicy; protected PaymentRequestConfig config; protected CustomerInfo customerInfo; @@ -259,46 +255,6 @@ public T setSessionId(String sessionId) { return (T)this; } - public String getRiskManagerPolicyGroup() { - return riskManagerPolicyGroup; - } - - @SuppressWarnings("unchecked") - public T setRiskManagerPolicyGroup(String riskManagerPolicyGroup) { - this.riskManagerPolicyGroup = riskManagerPolicyGroup; - return (T)this; - } - - public String getRiskManagerPolicy() { - return riskManagerPolicy; - } - - @SuppressWarnings("unchecked") - public T setRiskManagerPolicy(String riskManagerPolicy) { - this.riskManagerPolicy = riskManagerPolicy; - return (T)this; - } - - public String getMaxConversionPolicyGroup() { - return maxConversionPolicyGroup; - } - - @SuppressWarnings("unchecked") - public T setMaxConversionPolicyGroup(String maxConversionPolicyGroup) { - this.maxConversionPolicyGroup = maxConversionPolicyGroup; - return (T)this; - } - - public String getMaxConversionPolicy() { - return maxConversionPolicy; - } - - @SuppressWarnings("unchecked") - public T setMaxConversionPolicy(String maxConversionPolicy) { - this.maxConversionPolicy = maxConversionPolicy; - return (T)this; - } - public List getOrderLines() { return orderLines; diff --git a/src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java b/src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java new file mode 100644 index 0000000..5c2090f --- /dev/null +++ b/src/test/java/com/pensio/api/MerchantApi_CheckoutSessionParameterTests.java @@ -0,0 +1,45 @@ +package com.pensio.api; + +import com.pensio.Amount; +import com.pensio.Currency; +import com.pensio.api.generated.APIResponse; +import com.pensio.api.generated.Body; +import com.pensio.api.request.CreateCheckoutSessionRequest; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class MerchantApi_CheckoutSessionParameterTests { + + @Test + void createCheckoutSessionEmitsRiskManagerAndMaxConversionParams() throws PensioAPIException { + final var api = new PensioMerchantAPI("http://base", "user", "pass") { + @Override + protected APIResponse getAPIResponse(String method, HttpMethod httpMethod, Map requestVars) { + assertEquals("checkoutSession", method); + assertEquals(HttpMethod.POST, httpMethod); + assertEquals("group_rm_1", requestVars.get("risk_manager_policy_group")); + assertEquals("policy_rm_1", requestVars.get("risk_manager_policy")); + assertEquals("group_mc_1", requestVars.get("max_conversion_policy_group")); + assertEquals("policy_mc_1", requestVars.get("max_conversion_policy")); + + APIResponse response = new APIResponse(); + response.setBody(new Body()); + return response; + } + }; + + CreateCheckoutSessionRequest request = new CreateCheckoutSessionRequest() + .setTerminal("Terminal") + .setAmount(Amount.get(100, Currency.DKK)) + .setShopOrderId("order123") + .setRiskManagerPolicyGroup("group_rm_1") + .setRiskManagerPolicy("policy_rm_1") + .setMaxConversionPolicyGroup("group_mc_1") + .setMaxConversionPolicy("policy_mc_1"); + + api.createCheckoutSession(request); + } +} From 2e7e5a7b7513621ca095a9212051cc169a414a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Rasmussen?= Date: Wed, 29 Jul 2026 13:18:58 +0200 Subject: [PATCH 3/3] COREP-5570 Add API configuration for RMA and Maximum Conversion --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a8246c..a39bcd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. ## [3.1.21] -- Added `riskManager` and `maxConversion` objects to `configuration` in API request. +- Added `riskManager` and `maxConversion` objects to `configuration` to /createCheckoutSession endpoint. ## [3.1.20] - Added `MerchantErrorMessage` and `MerchantErrorCode` fields to `Transaction` in API response, exposing the failure reason and error code for failed/declined payments.