Skip to main content

Release V9.2.7

System Improvements

Comprehensive system enhancements to improve operational stability, security, and overall functionality:


Merchant Statement Processing Improvements

Enhanced merchant statement management features for better financial reporting and account management:


System Performance Improvements

Performance optimizations to enhance system stability and responsiveness:

API Improvements

Major API enhancements providing improved validation, error handling, and integration capabilities:


Bug Fixes

Critical fixes to ensure proper system operation and data accuracy:


Transaction Processing Improvements

Significant enhancements to strengthen transaction security, reliability, and processing capabilities:


IMPROVEMENT

Terminal Password Rotation Control

[GA-699]

Context: Terminals could occasionally lose connection to the gateway after months of operation due to issues with the automatic password rotation mechanism that occurs every 90 days.

Solution: Implemented a system-level setting that allows administrators to enable or disable terminal password rotation functionality through the UI, preventing connection failures caused by password rotation issues.

Impact: System administrators can now control terminal password rotation behavior from a centralized UI, allowing them to quickly disable rotation when issues arise without requiring hotfixes or server code changes.

System Changes Overview

  • Database Changes: Added new system property 'unipay.system.terminal-password-rotation-enabled' with default value 'true'
  • Configuration Changes: Added checkbox control in System Settings UI
  • Code Changes: Modified terminal credential generation logic to check the property value before performing password rotation
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

Update actions are not required for this improvement

  • All changes are implemented through standard code deployment and database delta
  • The property automatically defaults to enabled (true) for backward compatibility
  • The change doesn't alter existing system behavior unless explicitly configured
  • No manual configuration is needed after deployment

Implementation Actions

  • Access the System Settings form to configure terminal password rotation
  • Navigate to System Perspective > System > Settings > Modify Settings
  • Locate the "Terminal Password Rotation Enabled" checkbox in the General tab
  • Uncheck the box to disable password rotation, check to enable it

IMPROVEMENT

Improved Merchant Statement Hold Management

[UP-270]

Context: Previously, when remittance holds were enabled for merchants, statements were automatically generated in "Posted" status without the possibility for review or regeneration.

Solution: Implemented configurable behavior for merchant statements with active holds to allow manual review prior to posting.

Impact: Operators can now enable a system setting that forces merchant statements with active holds to be placed in "Pending" status for review instead of being automatically posted.

System Changes Overview

  • Database Changes: Added new system property unipay.business.remittance-hold-review-required to the iapp_settings table
  • Configuration Changes: Added new UI control in System Settings under "Hold Settings" section
  • Code Changes: Modified merchant statement processing logic to check hold status and configuration setting
  • Filesystem Changes: None
  • Data Migration: Added default configuration with value 'false' for backward compatibility

Update Actions Analysis

No update actions required as changes are implemented through standard deployment mechanisms.

  • Changes are applied through standard SQL delta scripts
  • Default configuration maintains backward compatibility
  • Feature is opt-in via configuration setting
  • No manual data migration required

Implementation Actions

  • Deploy standard update package
  • Configure system setting as needed via System Settings UI
  • Verify proper behavior with test merchants
  • Monitor statement processing after enabling the feature

IMPROVEMENT

Automatic Transaction Void for System Timeout

[UP-475]

Context: During system performance issues, timeout errors between UniBroker and UniPay could result in duplicate transactions when merchants retry payments after receiving error responses.

Solution: Implemented automatic void functionality for sale, sale-auth, and credit transactions that experience connection timeouts, with retry mechanisms to ensure transaction cleanup.

Impact: Merchants now receive specific timeout error messages (D41) indicating transaction was automatically voided, preventing duplicate charges and reducing chargebacks.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: Added new response code D41 and corresponding error message
  • Code Changes: Enhanced UniBroker request processing, added timeout handling with automatic void
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

Update actions are not required for this implementation.

  • All changes are implemented through standard code deployment
  • The feature uses existing void functionality with new handling logic
  • No manual configuration changes or database updates needed
  • System will automatically apply the new behavior after deployment

Implementation Actions

  • Deploy updated code to UniBroker and UniPay components
  • Verify system logs for proper operation after deployment
  • Monitor transaction processing during the initial deployment period
  • No restart of services is required as changes will take effect with normal request processing

IMPROVEMENT

Improved TSYS File Processing for Cost Calculation

[UP-554]

Context: Due to changes in TSYS file formats, the existing system incorrectly imported processing cost data. Specifically, interchange fees were imported from daily TDDF files, but other fee categories were either missing or only partially present.

Solution: Implemented a dual-file processing approach for TSYS reconciliation files. The system now extracts interchange fees from daily TDDF files and all other expense categories from monthly RESID files.

Impact: Merchants now receive comprehensive and accurate processing cost calculations, with all fee categories properly imported and assigned to the correct merchant accounts.

System Changes Overview

  • Database Changes: Added new tables for RESID file data storage and modified existing tables to support selective data import
  • Configuration Changes: Disabled aggregation for reconciliation/tsys provider and removed file splitter component
  • Code Changes: Refactored file processing pipeline to handle both TDDF and RESID formats
  • Filesystem Changes: No changes to filesystem structure
  • Data Migration: No data migration required for existing records

Update Actions Analysis

No Update Actions are required for this implementation.

  • All changes are implemented through standard database scripts and code modifications
  • The deployment process automatically applies the necessary configuration changes
  • No manual intervention is needed during the update process
  • Existing data remains compatible with the new processing logic

Implementation Actions

  • Ensure proper configuration of TSYS provider profiles for correct merchant identification
  • Verify that both TDDF and RESID files are being placed in the correct FTP locations
  • Confirm merchant mapping between backend merchant IDs and internal system IDs
  • Monitor initial file processing after deployment to verify correct data import

IMPROVEMENT

Selective Terminal Password Rotation Based on Version

[UP-563]

Context: Terminals with older application versions occasionally lost connection to the gateway when the system attempted to rotate passwords, particularly if power was interrupted during password update.

Solution: Implemented version-based logic that applies password rotation only to terminals with application version 5.2.3 or higher, while maintaining a consistent password for older terminal versions.

Impact: Improved system stability and eliminated connection issues for terminals with older firmware, while maintaining proper security measures for terminals with newer versions capable of handling password rotation.

System Changes Overview

  • Database Changes: No direct database schema changes required
  • Configuration Changes: No configuration property changes needed
  • Code Changes: Modified terminal password rotation logic in TmsGetCredentialsIngenicoStrategy class to check terminal version
  • Filesystem Changes: None
  • Data Migration: None required

Update Actions Analysis

Update Actions are not required for this improvement as the changes are handled entirely through code without requiring manual intervention.

  • The implementation involves only application logic changes
  • No database structure modifications are needed
  • No configuration changes required
  • The change is automatically applied during normal operation

Implementation Actions

  • Added logic to check terminal application version in terminal_diagnostics table
  • Implemented comparison against minimum required version (5.2.3)
  • Modified password handling for terminals below minimum version to return the same password
  • Maintained existing password rotation logic for terminals with version 5.2.3 and higher
  • Fixed error handling in get-credentials request processing

IMPROVEMENT

System Monitoring Enhancement for Stalled Jobs

[UP-616]

Context: The system previously lacked an automated mechanism to notify administrators about JobMessage entities stuck in processing state, leading to delayed detection and resolution of problematic jobs.

Solution: Implemented a new monitoring section in the existing 15-minute audit notification system that identifies and reports jobs remaining in the PROCESSING status for more than 15 minutes.

Impact: System administrators now receive regular notifications about stalled jobs, enabling faster detection and resolution of stuck processes without manual monitoring or intervention.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Added new section to the SystemAuditAction class for monitoring stalled JobMessage entities
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No update actions required for this change.

  • The implementation is contained within the standard application code
  • All changes can be deployed through standard deployment procedures
  • No manual configuration or database changes are needed
  • The feature activates automatically after deployment

Implementation Actions

  • Deploy the application with the standard deployment process
  • Verify that the 15-minute System Audit Notification includes the new "Stalled Jobs" section
  • Check that stalled jobs appear correctly in the notification when present
  • No additional post-deployment actions are required

IMPROVEMENT

Webhook Notification Display Optimization

[UP-617]

Context: The system previously displayed webhook notification errors grouped by merchant accounts, which was not informative for troubleshooting specific endpoint issues. Additionally, there was no time limitation, resulting in outdated notifications being displayed.

Solution: Implemented a new grouping mechanism based on webhook URLs instead of merchant accounts and added response message information to provide more context about failures. Added a one-month data retention filter to ensure only relevant notifications are displayed.

Impact: Administrators can now more effectively analyze and troubleshoot webhook notification issues by identifying problematic endpoints directly. The focused view with detailed error messages significantly improves problem resolution efficiency.

System Changes Overview

  • Database Changes: No structural changes to database tables
  • Configuration Changes: None
  • Code Changes: Modified SystemAuditAction query to group webhook notifications by URL instead of merchant account
  • Filesystem Changes: None
  • Data Migration: None required

Update Actions Analysis

Update actions are not required for this implementation.

  • All changes are implemented through standard code deployment
  • The modification affects only the query and display logic
  • No configuration or database structure changes are needed
  • Existing data will be automatically displayed in the new format

Implementation Actions

  • Deploy updated code to the target environment
  • Verify section 309 of audit reports displays webhook notifications grouped by URL
  • Confirm the one-month data retention filter is working correctly
  • Test the display of response messages for failed notifications

FIX

Fixed Passthrough Fees Total Calculation in Deposit Statement

[UP-624]

Context: In the Deposit Statement on Merchant Console, the "Passthrough Fees" section was displaying incorrect total values. For example, entries with values of -0.54 and -0.42 were showing a total of -95.75 instead of the correct -0.96.

Solution: Implemented proper division logic for P4 section values in the ListboxFooterConverter class by applying an additional division factor of 100 specifically for Passthrough Fees calculations.

Impact: Merchants now see accurate total values in the Passthrough Fees section of Deposit Statements on the Merchant Console, ensuring consistency between the UI display and PDF reports.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Modified the ListboxFooterConverter class to properly handle P4 section calculations
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No update actions are required for this change.

  • The fix is implemented through standard Java code changes
  • The change affects only the UI calculation logic with no database schema modifications
  • The deployment can be executed through normal release procedures
  • The existing automatic update mechanisms fully cover the necessary changes

Implementation Actions

  • Added section type detection in the ListboxFooterConverter class
  • Implemented proper division factor (100) for P4 section values
  • Maintained compatibility with other section calculations
  • Applied division after the sum calculation to ensure accuracy

IMPROVEMENT

Increased Validation Limits for Onboarding API Estimate Fields

[GA-937]

Context: The Onboarding API had restrictive validation limits on transaction amount and volume estimate fields, preventing the creation of merchant accounts that process high-volume transactions.

Solution: Increased the maximum allowed values for estimates.annualDirectDebitVolume and estimates.maxTransactionAmount fields to support higher transaction volumes and amounts in the Onboarding API.

Impact: Merchants with high transaction volumes can now be onboarded without hitting validation limits, allowing for the creation of accounts that process larger transaction amounts and higher annual volumes.

System Changes Overview

  • Database Changes: No schema changes required; only validation logic updates
  • Configuration Changes: Updated validation limits for annualDirectDebitVolume and maxTransactionAmount fields
  • Code Changes: Modified validation logic and arithmetic operations to handle larger values and prevent overflow
  • Filesystem Changes: None
  • Data Migration: None required

Update Actions Analysis

Update Actions are not required for this improvement as changes are implemented through standard code deployment.

  • All changes are contained within the application code and do not require database schema modifications
  • The validation limit changes can be deployed through the standard release process
  • No manual configuration changes are needed as the limits are defined in the code
  • The changes maintain backward compatibility with existing data

Implementation Actions

  • Updated field validation limits in the Onboarding API
  • Modified arithmetic operations to use long type for calculations to prevent integer overflow
  • Added proper handling for combined values that might exceed integer limits
  • Implemented overflow protection in volume calculations

FIX

Volume Markup Fee Calculation Fix

[GA-1459]

Context: Volume Markup Fees were not being accurately charged to merchants with zero transaction volume, even when their fee setup included a range starting at $0.

Solution: Modified the fee calculation logic to properly apply Volume Markup Fees for merchants with no transaction volume when they have an active fee setup.

Impact: Merchants with zero transaction volume will now be correctly charged the appropriate Volume Markup Fee as defined in their fee configuration.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Modified fee calculation logic in the MerchantStatementCreator component
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

Update Actions are not required for this change.

  • The fix is implemented through standard code changes
  • No database schema modifications are needed
  • No configuration adjustments are required
  • Changes will be applied automatically during standard deployment

Implementation Actions

  • Deployed with standard release procedure
  • No manual intervention required
  • No data migration needed
  • No configuration changes required

IMPROVEMENT

Improved AVS Response Code Mapping for TSYS Integration

[GA-1058]

Context: The system was incorrectly mapping some AVS response codes received from TSYS, particularly when no address information was submitted with a transaction.

Solution: Updated the mapping logic in the code_mapping database table to properly interpret and display AVS response codes from TSYS according to their official specifications.

Impact: Merchants will now receive accurate AVS response codes and descriptions, allowing for proper evaluation of address verification results during transaction processing.

System Changes Overview

  • Database Changes: Updated 18 entries in the code_mapping table to correct AVS response code mappings for TSYS integration
  • Configuration Changes: No configuration file changes required
  • Code Changes: No application code changes required
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No update actions are required as the changes can be executed through standard database delta deployment.

  • The changes are limited to mapping entries in the code_mapping table
  • The delta script handles all necessary updates through SQL UPDATE statements
  • Standard deployment mechanism covers all the necessary changes
  • No data structure modifications or complex transformations involved

Implementation Actions

  • Deploy database delta script to update code_mapping table entries
  • Verify updated mappings in production environment after deployment
  • No additional manual steps required during implementation
  • No application restart needed as mappings are loaded dynamically

Improvement

Improved Error Handling in Extended Statement Table Generation

[UP-687]

Context: Previously, the statement extended table generation process silently suppressed errors, which delayed error detection and resolution.

Solution: Modified the error handling mechanism in the SynchronizeStatementDataCuratorTask Java class to properly propagate exceptions instead of suppressing them.

Impact: System errors in extended table generation are now immediately visible, allowing faster issue detection and resolution through standard monitoring tools.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Modified error handling in SynchronizeStatementDataCuratorTask Java class
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No update actions are required for this implementation.

  • Changes were implemented through standard code modifications
  • No database schema or configuration changes were needed
  • Existing error monitoring and logging systems will capture the propagated errors
  • The implementation is fully compatible with the existing deployment process

Implementation Actions

  • Removed try-catch block that was suppressing exceptions in SynchronizeStatementDataCuratorTask
  • Simplified code by removing redundant error handling logic
  • Removed unnecessary merchantAccountCode parameter from the task constructor
  • Modified the direct service method call pattern to allow exceptions to propagate

FIX

Enhanced Error Logging in Reporting API

[UP-692]

Context: The Reporting API was generating excessive error logs due to invalid locale values in requests, causing difficulty in identifying critical system issues.

Solution: Implemented improved validation for locale parameters and extracted locale resolution logic into a dedicated method with better error handling.

Impact: Reduced error log spam ensures better system monitoring and faster identification of genuine issues.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Enhanced validation and error handling in ReportServiceHelper class
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No Update Actions are required for this change.

  • The changes are limited to code-level improvements in error handling
  • All modifications are contained within the standard deployment process
  • No database schema modifications are introduced
  • No configuration settings need to be manually updated

Implementation Actions

  • Deploy the updated code to the target environment
  • Monitor error.log file to verify reduction in locale-related errors
  • No system restart is required as the changes only affect runtime behavior
  • No additional configuration is needed

IMPROVEMENT

Enhanced TSYS Integration with Country of Origin Support

[GA-1366]

Context: TSYS began enforcing the countryOfOriginCd field for merchant onboarding applications with specific MCC codes (9211, 9222, 9311, 9399, 9402, 9405, 9406), causing application failures without proper error messaging.

Solution: Implemented support for the countryOfOriginCd field in TSYS integration by adding the field to the database structure and automatically populating it with the ISO numeric code (840) for US-based merchants.

Impact: Onboarding applications for government agencies and other merchants with specified MCC codes now process successfully through TSYS integration, eliminating the "S99 Field is required" error that previously caused application failures.

System Changes Overview

  • Database Changes: Added COUNTRY_OF_ORIGIN_CD VARCHAR(3) column to TSYS_PROVISIONING_TRANSACTION table
  • Configuration Changes: No configuration changes required
  • Code Changes: Enhanced ProvisioningTsysTransformer to populate the country code field automatically for US-based merchants
  • Filesystem Changes: None
  • Data Migration Needs: None required, as the new field is nullable

Update Actions Analysis

Update actions are not required for this implementation because:

  • The database changes are handled automatically through the standard delta mechanism
  • The new field is implemented with nullable characteristics, ensuring backward compatibility
  • The changes only enhance existing functionality without modifying core business processes
  • The automatic population of the field requires no manual input or configuration

Implementation Actions

  • Deploy the database delta script to add the COUNTRY_OF_ORIGIN_CD column
  • Deploy application code with updated TSYS integration logic
  • Monitor onboarding applications, particularly those with government agency MCC codes
  • Verify successful TSYS integration by checking for absence of S99 error messages

IMPROVEMENT

Onboarding API Validation Improvements

[GA-1446]

Context: The previous implementation of Onboarding API required unnecessary fields for Government Agency business types and Canadian merchants, forcing users to submit dummy data for these fields.

Solution: Modified the validation logic in Onboarding API to make certain fields optional based on business type and country, eliminating the need to provide irrelevant information.

Impact: Simplified the onboarding process for Government Agency businesses and Canadian merchants, reducing data entry requirements and improving the user experience.

System Changes Overview

  • Database Changes: No schema changes; only validation logic modifications
  • Configuration Changes: No configuration changes required
  • Code Changes: Modified validation logic in OnboardingIntegrityValidator and related classes
  • Filesystem Changes: None
  • Data Migration: None required

Update Actions Analysis

No update actions are required for this change as all modifications are implemented through standard code deployment.

  • Changes are contained within application code and don't require database schema modifications
  • No configuration files need to be manually updated
  • Validation logic changes are handled automatically upon deployment
  • No data migration scripts are needed

Implementation Actions

  • Deploy updated code with modified validation rules
  • Verify validation behavior in test environment
  • Update documentation to reflect new validation requirements
  • Train support staff on new validation behavior

FIX

Corrected fee charging during scheme transition

[UP-700]

Context: When merchants were switched from Demand-Demand fee scheme to Demand-Cycle scheme, the system would incorrectly regenerate Reconciliation Statements for prior periods. This resulted in duplicate fee charges being applied to merchant accounts.

Solution: Modified the fee scheme transition logic to properly set the last_statement_date field when switching from Demand-Demand to other schemes. The system now copies the last_deposit_statement_date value to the last_statement_date field during the transition.

Impact: Merchants transitioning between fee schemes will no longer experience duplicate charges for previous periods. This prevents financial discrepancies and improves the reliability of the fee processing system.

System Changes Overview

  • Database Changes: No direct schema changes, only data value updates to the last_statement_date field
  • Configuration Changes: None
  • Code Changes: Modified fee scheme transition logic in UniCoreFeesHandler
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

Update actions are not required for this implementation.

  • The fix is fully implemented through code changes
  • No database schema modifications were needed
  • No configuration changes are required
  • No manual data updates are necessary for the fix to function

Implementation Actions

  • Updated the UniCoreFeesHandler.java class to set last_statement_date when changing from Demand-Demand to cycle-based schemes
  • Added condition to detect fee scheme transitions from Demand-Demand to Demand-Cycle or Cycle-Cycle
  • Implemented copy of last_deposit_statement_date to last_statement_date during transitions
  • Added the change to both merchant creation and merchant update flows

IMPROVEMENT

Optimized Merchant Statement Extended Query Performance

[UP-709]

Context: The merchant statement generation system was performing additional database queries to retrieve submission dates from statistics tables, causing unnecessary database load and slower response times.

Solution: Added direct storage of submission dates in the extended statement details table, eliminating the need for additional queries to statistics tables.

Impact: Improved performance when viewing extended merchant statements and reduced database load during statement generation and retrieval operations.

System Changes Overview

  • Database Changes: Added submission_date column to the merchant_statement_extended_detail table
  • Configuration Changes: None
  • Code Changes: Modified query logic to use the new field instead of joining with statistics tables
  • Filesystem Changes: None
  • Data Migration: Populated the new field with data from existing submission records

Update Actions Analysis

No update actions are required for this improvement as all changes are handled through standard deployment mechanisms.

  • The database schema change is implemented through delta scripts
  • Data migration is performed automatically during deployment
  • Application code changes are deployed through standard mechanisms
  • No manual configuration changes are needed

Implementation Actions

  • Deploy database schema changes
  • Execute data migration for existing records
  • Deploy updated application code
  • Schedule deployment during off-hours due to potential database impact

FIX

Fixed Mastercard Card Type Preservation in Elavon-EU Integration

[GA-1473]

Context: In the Elavon-EU integration, Mastercard transactions were incorrectly displayed as UnionPay credit cards when void operations were performed or when E02 decline responses were received.

Solution: Modified the card type detection logic to preserve the original Mastercard card type during void operations and E02 decline responses, ensuring correct classification throughout the transaction lifecycle.

Impact: Transactions performed with Mastercard cards now correctly maintain their card type classification during all operations, allowing proper filtering, reporting, and tokenization based on the actual card type.

System Changes Overview

  • Database Changes: None required for implementation. A post-update SQL script will update existing affected transactions.
  • Configuration Changes: None
  • Code Changes: Modified conditional check in the RetailElavonEisopAuthorizationBackTransformer class to prevent brand redefinition during void operations
  • Filesystem Changes: None
  • Data Migration: Post-update SQL script to correct existing affected transactions

Update Actions Analysis

Update actions are required for this fix because existing data must be corrected:

  • The system needs to identify and correct previously affected Mastercard transactions that were incorrectly labeled as UnionPay
  • This cannot be implemented through standard code changes as it requires updating existing transaction records
  • The update must be performed with careful database modification to ensure system integrity
  • Correcting the token values requires direct database interaction which is not possible through standard deployment mechanisms

Implementation Actions

  • Modified the transaction processing logic to use more specific response code validation
  • Updated the RetailElavonEisopAuthorizationBackTransformer class to prevent Mastercard to UnionPay conversion during void/decline
  • Created a post-update SQL script to correct existing affected transactions
  • Applied conditional logic to ensure only cards beginning with '5' (Mastercard) are corrected

FIX

Fixed D48 error handling for contact cards on proxy integration

[GA-1430]

Context: The system incorrectly triggered D48 error codes for contact cards during transactions on proxy integration, causing the PIN pad to disappear from the terminal screen.

Solution: Implemented enhanced validation logic in the RetailProxyAuthorizationBackTransformer to check both card entry mode and PIN code presence before applying D48 error codes.

Impact: Contact card transactions now process correctly without unnecessary PIN verification prompts, eliminating the issue of missing PIN pad after D48 responses.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Modified RetailProxyAuthorizationBackTransformer.java to add card entry mode verification for D48 error handling
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No update actions are required as the changes can be executed through standard deployment.

  • The modification involves only Java code changes in the application logic
  • No database schema modifications are needed
  • No configuration file changes are required
  • The change is automatically applied when the system is redeployed

Implementation Actions

  • Deploy the updated application code to production environment
  • Monitor transaction processing after deployment, especially focusing on contact card transactions
  • Verify correct PIN pad behavior across different terminal types
  • No additional configuration or manual actions required post-deployment

IMPROVEMENT

Improved Error Messages for Date Validation in API

[GA-900]

Context: When freezing a subscription through the API, users needed to provide an effective date that matched the billing date, but received unclear error messages when validation failed.

Solution: Enhanced the API response with clearer error messages that explain the relationship between the effective date and billing date, including specific examples of valid dates.

Impact: API users now receive more informative error messages when date validation fails, making it easier to understand the specific requirements for subscription freeze operations.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Modified error handling for date validation in the subscription service
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No update actions are required for this implementation.

  • Changes are implemented through standard code deployment
  • New error message format is handled automatically by the system
  • No manual configuration changes needed
  • No database schema or data migrations required

Implementation Actions

  • Added new error code F32 for more descriptive date validation errors
  • Added new relationship type "must match" for improved error context
  • Implemented example date generation to show valid dates in error messages
  • Modified subscription freeze validation to use the new error format

IMPROVEMENT

Expiration Date Validation in Account Verification Requests

[GA-1403]

Context: During the COVID-19 pandemic, the system was configured to accept expired payment cards to accommodate temporary card extension policies implemented by US banks. This temporary measure was no longer necessary but remained active in the system.

Solution: Restored standard validation of payment card expiration dates for all Processing API operations, including account verification requests, ensuring expired cards are properly rejected with appropriate error messages.

Impact: The system now verifies that payment cards have not expired when processing account verification requests and other API operations, providing clearer error messages to merchants when expired cards are used.

System Changes Overview

  • Database Changes: None
  • Configuration Changes: None
  • Code Changes: Updated validation logic for card expiration dates in Processing API and UI components
  • Filesystem Changes: None
  • Data Migration: None

Update Actions Analysis

No Update Actions are required for this implementation.

  • The changes are implemented through standard code modifications
  • No database structure or configuration changes were needed
  • No existing data requires migration or transformation
  • All changes will be automatically applied during the standard deployment process

Implementation Actions

  • Modified validation logic to verify that card expiration dates are in the future
  • Added new error code V51 for expired cards with message "[ObjectName] has expired"
  • Updated UI components to calculate expiration dates based on the current year
  • Improved error handling for payment pages and redirects