diff --git a/gradle.properties b/gradle.properties index b5aeb94f9..0d2846299 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # buildscript - project id projectGroup=com.generalbytes.batm.public -projectVersion=1.6.3 +projectVersion=1.7.0 # buildscript - common dependency versions bitrafaelVersion=1.0.44 diff --git a/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/INotificationListener.java b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/INotificationListener.java index 0f1036c17..ea00f8989 100644 --- a/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/INotificationListener.java +++ b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/INotificationListener.java @@ -1,5 +1,5 @@ /************************************************************************************* - * Copyright (C) 2014-2020 GENERAL BYTES s.r.o. All rights reserved. + * Copyright (C) 2014-2024 GENERAL BYTES s.r.o. All rights reserved. * * This software may be distributed and modified under the terms of the GNU * General Public License version 2 (GPL2) as published by the Free Software @@ -17,6 +17,8 @@ ************************************************************************************/ package com.generalbytes.batm.server.extensions; +import com.generalbytes.batm.server.extensions.watchlist.WatchListScanIdentityMatchesData; + import java.math.BigDecimal; import java.time.LocalDate; import java.util.Date; @@ -293,6 +295,13 @@ default void watchlistScanBan(String terminalSerialNumber) {} */ default void watchlistScanIdentityMatches(String identityPublicId) {} + /** + * Triggered if there is a match on the WatchList with the Identity. Contains detailed information. + * + * @param data Object containing detailed information about match result. + */ + default void watchlistScanIdentityMatches(WatchListScanIdentityMatchesData data) {} + default void lifetimeIdentityVolumeReached(String terminalSerialNumber, BigDecimal lifetimeVolume, String cashCurrency, BigDecimal preConditionAmount, String identityPublicId) {} default void transactionSupplyLimitReached(String terminalSerialNumber) {} diff --git a/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListScanIdentityMatchesData.java b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListScanIdentityMatchesData.java new file mode 100644 index 000000000..f20b22311 --- /dev/null +++ b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListScanIdentityMatchesData.java @@ -0,0 +1,102 @@ +/************************************************************************************* + * Copyright (C) 2014-2024 GENERAL BYTES s.r.o. All rights reserved. + * + * This software may be distributed and modified under the terms of the GNU + * General Public License version 2 (GPL2) as published by the Free Software + * Foundation and appearing in the file GPL2.TXT included in the packaging of + * this file. Please note that GPL2 Section 2[b] requires that all works based + * on this software must also be made publicly available under the terms of + * the GPL2 ("Copyleft"). + * + * Contact information + * ------------------- + * + * GENERAL BYTES s.r.o. + * Web : http://www.generalbytes.com + * + ************************************************************************************/ +package com.generalbytes.batm.server.extensions.watchlist; + +import java.io.Serializable; + +public class WatchListScanIdentityMatchesData implements Serializable { + + /** + * Public ID of identity. + */ + private String identityPublicId; + + /** + * Code of WatchList. + */ + private String watchListCode; + + /** + * Unique identifier of the matching entity. + */ + private String partyId; + + /** + * Type of WatchList trigger. + */ + private WatchListTrigger trigger; + + /** + * Result of scan. + */ + private WatchListScanResult scanResult; + + /** + * Terminal serial number. It is available if the trigger is {@link WatchListTrigger#PRE_TRANSACTION}, otherwise null. + */ + private String terminalSerialNumber; + + public String getIdentityPublicId() { + return identityPublicId; + } + + public void setIdentityPublicId(String identityPublicId) { + this.identityPublicId = identityPublicId; + } + + public String getWatchListCode() { + return watchListCode; + } + + public void setWatchListCode(String watchListCode) { + this.watchListCode = watchListCode; + } + + public String getPartyId() { + return partyId; + } + + public void setPartyId(String partyId) { + this.partyId = partyId; + } + + public WatchListTrigger getTrigger() { + return trigger; + } + + public void setTrigger(WatchListTrigger trigger) { + this.trigger = trigger; + } + + public WatchListScanResult getScanResult() { + return scanResult; + } + + public void setScanResult(WatchListScanResult scanResult) { + this.scanResult = scanResult; + } + + public String getTerminalSerialNumber() { + return terminalSerialNumber; + } + + public void setTerminalSerialNumber(String terminalSerialNumber) { + this.terminalSerialNumber = terminalSerialNumber; + } + +} diff --git a/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListScanResult.java b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListScanResult.java new file mode 100644 index 000000000..dfad5871e --- /dev/null +++ b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListScanResult.java @@ -0,0 +1,26 @@ +/************************************************************************************* + * Copyright (C) 2014-2024 GENERAL BYTES s.r.o. All rights reserved. + * + * This software may be distributed and modified under the terms of the GNU + * General Public License version 2 (GPL2) as published by the Free Software + * Foundation and appearing in the file GPL2.TXT included in the packaging of + * this file. Please note that GPL2 Section 2[b] requires that all works based + * on this software must also be made publicly available under the terms of + * the GPL2 ("Copyleft"). + * + * Contact information + * ------------------- + * + * GENERAL BYTES s.r.o. + * Web : http://www.generalbytes.com + * + ************************************************************************************/ +package com.generalbytes.batm.server.extensions.watchlist; + +public enum WatchListScanResult { + + NO_MATCH, + PARTIAL_MATCH, + FULL_MATCH + +} diff --git a/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListTrigger.java b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListTrigger.java new file mode 100644 index 000000000..25a117312 --- /dev/null +++ b/server_extensions_api/src/main/java/com/generalbytes/batm/server/extensions/watchlist/WatchListTrigger.java @@ -0,0 +1,27 @@ +/************************************************************************************* + * Copyright (C) 2014-2024 GENERAL BYTES s.r.o. All rights reserved. + * + * This software may be distributed and modified under the terms of the GNU + * General Public License version 2 (GPL2) as published by the Free Software + * Foundation and appearing in the file GPL2.TXT included in the packaging of + * this file. Please note that GPL2 Section 2[b] requires that all works based + * on this software must also be made publicly available under the terms of + * the GPL2 ("Copyleft"). + * + * Contact information + * ------------------- + * + * GENERAL BYTES s.r.o. + * Web : http://www.generalbytes.com + * + ************************************************************************************/ +package com.generalbytes.batm.server.extensions.watchlist; + +public enum WatchListTrigger { + + MANUAL, + PRE_TRANSACTION, + PERIODIC, + EXTENSION + +}