From c78f013e86df6724a272231a278b957e401b592f Mon Sep 17 00:00:00 2001 From: Jleagle Date: Thu, 10 Jul 2025 17:46:20 +0100 Subject: [PATCH 1/6] New codes --- .../Chargeback/ChargebackReasonHelper.php | 25 ++++ .../Reasons/AccelChargebackReason.php | 109 ++++++++++++++++++ .../Reasons/DiscoverCardChargebackReason.php | 4 + 3 files changed, 138 insertions(+) create mode 100644 src/Finance/Chargeback/Reasons/AccelChargebackReason.php diff --git a/src/Finance/Chargeback/ChargebackReasonHelper.php b/src/Finance/Chargeback/ChargebackReasonHelper.php index c0446c3..9af5a18 100644 --- a/src/Finance/Chargeback/ChargebackReasonHelper.php +++ b/src/Finance/Chargeback/ChargebackReasonHelper.php @@ -1,6 +1,7 @@ description = "Warning Bulletin File"; + $reason->category = ChargebackCategory::PROCESSING; + break; + case self::RSN_8: + $reason->description = "Requested/Required Authorization Not Obtained"; + $reason->category = ChargebackCategory::PROCESSING; + break; + case self::RSN_12: + $reason->description = "Account Number Not on File"; + $reason->category = ChargebackCategory::PROCESSING; + break; + case self::RSN_31: + $reason->description = "Transaction Amount Differs"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_34: + $reason->description = "Point of Interaction"; + $reason->category = ChargebackCategory::PROCESSING; + break; + case self::RSN_37: + $reason->description = "No Cardholder Authorization"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_41: + $reason->description = "Cancelled Recurring Transaction"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_42: + $reason->description = "Late Presentment"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_46: + $reason->description = "Correct Currency Code Not Provided"; + $reason->category = ChargebackCategory::PROCESSING; + break; + case self::RSN_49: + $reason->description = "Questionable Client Activity"; + $reason->category = ChargebackCategory::PROCESSING; + break; + case self::RSN_50: + $reason->description = "Credit Posted as a Purchase"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_53: + $reason->description = "Not As Described"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_54: + $reason->description = "Cardholder Dispute — Not Elsewhere Classified"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_55: + $reason->description = "Goods or Services Not Provided"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_59: + $reason->description = "No-Show, Addendum, or ATM Dispute"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_60: + $reason->description = "Credit Not Processed"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_70: + $reason->description = "Chip Liability Shift"; + $reason->category = ChargebackCategory::CONSUMER; + break; + case self::RSN_71: + $reason->description = "Chip/PIN Liability Shift"; + $reason->category = ChargebackCategory::CONSUMER; + break; + } + return $reason; + } +} \ No newline at end of file diff --git a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php index 11e0728..aad09a2 100644 --- a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php +++ b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php @@ -12,10 +12,14 @@ class DiscoverCardChargebackReason extends ChargebackReason const RSN_3041 = '3041'; const RSN_4534 = '4534'; const RSN_4541 = '4541'; + const RSN_4542 = '4542'; const RSN_4553 = '4553'; const RSN_4555 = '4555'; + const RSN_4586 = '4586'; const RSN_4752 = '4752'; + const RSN_4753 = '4753'; const RSN_4755 = '4755'; + const RSN_4865 = '4865'; const RSN_4866 = '4866'; const RSN_5621 = '5621'; const RSN_6005 = '6005'; From 4ae244fad481ad18dce5c91321ba97e4875d8337 Mon Sep 17 00:00:00 2001 From: Jleagle Date: Thu, 10 Jul 2025 17:47:40 +0100 Subject: [PATCH 2/6] New line --- src/Finance/Chargeback/Reasons/AccelChargebackReason.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Finance/Chargeback/Reasons/AccelChargebackReason.php b/src/Finance/Chargeback/Reasons/AccelChargebackReason.php index 74e042a..1bfea08 100644 --- a/src/Finance/Chargeback/Reasons/AccelChargebackReason.php +++ b/src/Finance/Chargeback/Reasons/AccelChargebackReason.php @@ -106,4 +106,4 @@ public static function create($code, $description = '', $category = ChargebackCa } return $reason; } -} \ No newline at end of file +} From 236d1baacd3e5dfb2101e48af13c0e48ad8d993e Mon Sep 17 00:00:00 2001 From: Jleagle Date: Thu, 10 Jul 2025 18:01:28 +0100 Subject: [PATCH 3/6] Remove others --- .../Chargeback/ChargebackReasonHelper.php | 17 ---- .../Reasons/AccelChargebackReason.php | 89 +------------------ 2 files changed, 2 insertions(+), 104 deletions(-) diff --git a/src/Finance/Chargeback/ChargebackReasonHelper.php b/src/Finance/Chargeback/ChargebackReasonHelper.php index 9af5a18..34c96b8 100644 --- a/src/Finance/Chargeback/ChargebackReasonHelper.php +++ b/src/Finance/Chargeback/ChargebackReasonHelper.php @@ -290,24 +290,7 @@ public static function fromCode($value) case StarChargebackReason::RSN_6500: return StarChargebackReason::create($value); - case AccelChargebackReason::RSN_7: - case AccelChargebackReason::RSN_8: - case AccelChargebackReason::RSN_12: - case AccelChargebackReason::RSN_31: - case AccelChargebackReason::RSN_34: - case AccelChargebackReason::RSN_37: case AccelChargebackReason::RSN_41: - case AccelChargebackReason::RSN_42: - case AccelChargebackReason::RSN_46: - case AccelChargebackReason::RSN_49: - case AccelChargebackReason::RSN_50: - case AccelChargebackReason::RSN_53: - case AccelChargebackReason::RSN_54: - case AccelChargebackReason::RSN_55: - case AccelChargebackReason::RSN_59: - case AccelChargebackReason::RSN_60: - case AccelChargebackReason::RSN_70: - case AccelChargebackReason::RSN_71: return AccelChargebackReason::create($value); } diff --git a/src/Finance/Chargeback/Reasons/AccelChargebackReason.php b/src/Finance/Chargeback/Reasons/AccelChargebackReason.php index 1bfea08..99b4536 100644 --- a/src/Finance/Chargeback/Reasons/AccelChargebackReason.php +++ b/src/Finance/Chargeback/Reasons/AccelChargebackReason.php @@ -7,101 +7,16 @@ class AccelChargebackReason extends ChargebackReason { - const RSN_7 = "7"; - const RSN_8 = "8"; - const RSN_12 = "12"; - const RSN_31 = "31"; - const RSN_34 = "34"; - const RSN_37 = "37"; const RSN_41 = "41"; - const RSN_42 = "42"; - const RSN_46 = "46"; - const RSN_49 = "49"; - const RSN_50 = "50"; - const RSN_53 = "53"; - const RSN_54 = "54"; - const RSN_55 = "55"; - const RSN_59 = "59"; - const RSN_60 = "60"; - const RSN_70 = "70"; - const RSN_71 = "71"; public static function create($code, $description = '', $category = ChargebackCategory::OTHER) { $reason = parent::create($code, $description, $category); switch($code) { - case self::RSN_7: - $reason->description = "Warning Bulletin File"; - $reason->category = ChargebackCategory::PROCESSING; - break; - case self::RSN_8: - $reason->description = "Requested/Required Authorization Not Obtained"; - $reason->category = ChargebackCategory::PROCESSING; - break; - case self::RSN_12: - $reason->description = "Account Number Not on File"; - $reason->category = ChargebackCategory::PROCESSING; - break; - case self::RSN_31: - $reason->description = "Transaction Amount Differs"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_34: - $reason->description = "Point of Interaction"; - $reason->category = ChargebackCategory::PROCESSING; - break; - case self::RSN_37: - $reason->description = "No Cardholder Authorization"; - $reason->category = ChargebackCategory::CONSUMER; - break; case self::RSN_41: - $reason->description = "Cancelled Recurring Transaction"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_42: - $reason->description = "Late Presentment"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_46: - $reason->description = "Correct Currency Code Not Provided"; - $reason->category = ChargebackCategory::PROCESSING; - break; - case self::RSN_49: - $reason->description = "Questionable Client Activity"; - $reason->category = ChargebackCategory::PROCESSING; - break; - case self::RSN_50: - $reason->description = "Credit Posted as a Purchase"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_53: - $reason->description = "Not As Described"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_54: - $reason->description = "Cardholder Dispute — Not Elsewhere Classified"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_55: - $reason->description = "Goods or Services Not Provided"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_59: - $reason->description = "No-Show, Addendum, or ATM Dispute"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_60: - $reason->description = "Credit Not Processed"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_70: - $reason->description = "Chip Liability Shift"; - $reason->category = ChargebackCategory::CONSUMER; - break; - case self::RSN_71: - $reason->description = "Chip/PIN Liability Shift"; - $reason->category = ChargebackCategory::CONSUMER; + $reason->description = "Correction Item"; + $reason->category = ChargebackCategory::OTHER; break; } return $reason; From 913f4387e46cf495fcdf28ac84e1ff324c5f1b2d Mon Sep 17 00:00:00 2001 From: Jleagle Date: Tue, 15 Jul 2025 11:19:52 +0100 Subject: [PATCH 4/6] New codes --- .../Reasons/DiscoverCardChargebackReason.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php index aad09a2..5ddf957 100644 --- a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php +++ b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php @@ -13,6 +13,11 @@ class DiscoverCardChargebackReason extends ChargebackReason const RSN_4534 = '4534'; const RSN_4541 = '4541'; const RSN_4542 = '4542'; + const RSN_4550 = '4550'; + const RSN_4762 = '4762'; + const RSN_4863 = '4863'; + const RSN_4864 = '4864'; + const RSN_4867 = '4867'; const RSN_4553 = '4553'; const RSN_4555 = '4555'; const RSN_4586 = '4586'; @@ -356,6 +361,42 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->description = 'Not compliant and not classifiable'; $reason->category = ChargebackCategory::OTHER; break; + case self::RSN_4542: + $reason->description = 'Late Presentation'; + $reason->category = ChargebackCategory::FRAUD; + break; + case self::RSN_4586: + $reason->description = 'Failed to complete AVS'; + $reason->category = ChargebackCategory::AUTHORIZATION; + break; + case self::RSN_4753: + $reason->description = 'Merchant provided illegible documentation'; + $reason->category = ChargebackCategory::FRAUD; + break; + case self::RSN_4865: + $reason->description = 'Not compliant and not classifiable'; + $reason->category = ChargebackCategory::OTHER; + break; + case self::RSN_4550: + $reason->description = 'Not compliant and not classifiable'; + $reason->category = ChargebackCategory::OTHER; + break; + case self::RSN_4762: + $reason->description = 'Not compliant and not classifiable'; + $reason->category = ChargebackCategory::OTHER; + break; + case self::RSN_4863: + $reason->description = 'Not compliant and not classifiable'; + $reason->category = ChargebackCategory::OTHER; + break; + case self::RSN_4864: + $reason->description = 'Not compliant and not classifiable'; + $reason->category = ChargebackCategory::OTHER; + break; + case self::RSN_4867: + $reason->description = 'Not compliant and not classifiable'; + $reason->category = ChargebackCategory::OTHER; + break; } return $reason; } From 8e51e4f7c2e4d12176bd1e3b1541d8e5ad279274 Mon Sep 17 00:00:00 2001 From: Jleagle Date: Tue, 15 Jul 2025 11:20:26 +0100 Subject: [PATCH 5/6] Sort --- .../Reasons/DiscoverCardChargebackReason.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php index 5ddf957..82c06f0 100644 --- a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php +++ b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php @@ -14,18 +14,18 @@ class DiscoverCardChargebackReason extends ChargebackReason const RSN_4541 = '4541'; const RSN_4542 = '4542'; const RSN_4550 = '4550'; - const RSN_4762 = '4762'; - const RSN_4863 = '4863'; - const RSN_4864 = '4864'; - const RSN_4867 = '4867'; const RSN_4553 = '4553'; const RSN_4555 = '4555'; const RSN_4586 = '4586'; const RSN_4752 = '4752'; const RSN_4753 = '4753'; const RSN_4755 = '4755'; + const RSN_4762 = '4762'; + const RSN_4863 = '4863'; + const RSN_4864 = '4864'; const RSN_4865 = '4865'; const RSN_4866 = '4866'; + const RSN_4867 = '4867'; const RSN_5621 = '5621'; const RSN_6005 = '6005'; const RSN_6021 = '6021'; @@ -45,8 +45,8 @@ class DiscoverCardChargebackReason extends ChargebackReason const RSN_CR = 'CR'; const RSN_DA = 'DA'; const RSN_DC = 'DC'; - const RSN_DP = 'DP'; const RSN_DP1 = 'DP1'; + const RSN_DP = 'DP'; const RSN_EX = 'EX'; const RSN_IC = 'IC'; const RSN_IN = 'IN'; @@ -60,8 +60,8 @@ class DiscoverCardChargebackReason extends ChargebackReason const RSN_PM = 'PM'; const RSN_RG = 'RG'; const RSN_RM = 'RM'; - const RSN_RN = 'RN'; const RSN_RN2 = 'RN2'; + const RSN_RN = 'RN'; const RSN_SV = 'SV'; const RSN_TF = 'TF'; const RSN_TNM = 'TNM'; From 96eda53357e8b4a14062c99b1a3c6268da1fd038 Mon Sep 17 00:00:00 2001 From: Jleagle Date: Tue, 15 Jul 2025 14:48:12 +0100 Subject: [PATCH 6/6] Share cae statements --- .../Reasons/DiscoverCardChargebackReason.php | 43 +++++-------------- 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php index 82c06f0..bb7a664 100644 --- a/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php +++ b/src/Finance/Chargeback/Reasons/DiscoverCardChargebackReason.php @@ -90,6 +90,7 @@ public static function create($code, $description = '', $category = ChargebackCa switch($code) { case self::RSN_5: + case self::RSN_4762: $reason->description = 'Good Faith Investigation'; $reason->category = ChargebackCategory::CONSUMER; break; @@ -178,10 +179,12 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->category = ChargebackCategory::CONSUMER; break; case self::RSN_AT: - $reason->description = 'Authorization Noncompliance'; + case self::RSN_4863: + $reason->description = 'Authorization Non-compliance'; $reason->category = ChargebackCategory::AUTHORIZATION; break; case self::RSN_AW: + case self::RSN_4586: $reason->description = 'Altered Amount'; $reason->category = ChargebackCategory::PROCESSING; break; @@ -194,6 +197,7 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->category = ChargebackCategory::FRAUD; break; case self::RSN_CD: + case self::RSN_4550: $reason->description = 'Credit / Debit Posted Incorrectly'; $reason->category = ChargebackCategory::PROCESSING; break; @@ -250,7 +254,8 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->category = ChargebackCategory::OTHER; break; case self::RSN_NF: - $reason->description = 'Non - Receipt of Cash from ATM'; + case self::RSN_4864: + $reason->description = 'Non receipt of Cash from ATM'; $reason->category = ChargebackCategory::CONSUMER; break; case self::RSN_P: @@ -258,6 +263,7 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->category = ChargebackCategory::FRAUD; break; case self::RSN_PM: + case self::RSN_4865: $reason->description = 'Paid by Other Means'; $reason->category = ChargebackCategory::PROCESSING; break; @@ -306,6 +312,7 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->category = ChargebackCategory::FRAUD; break; case self::RSN_UA06: + case self::RSN_4867: $reason->description = 'Chip and PIN Transaction'; $reason->category = ChargebackCategory::FRAUD; break; @@ -365,37 +372,9 @@ public static function create($code, $description = '', $category = ChargebackCa $reason->description = 'Late Presentation'; $reason->category = ChargebackCategory::FRAUD; break; - case self::RSN_4586: - $reason->description = 'Failed to complete AVS'; - $reason->category = ChargebackCategory::AUTHORIZATION; - break; case self::RSN_4753: - $reason->description = 'Merchant provided illegible documentation'; - $reason->category = ChargebackCategory::FRAUD; - break; - case self::RSN_4865: - $reason->description = 'Not compliant and not classifiable'; - $reason->category = ChargebackCategory::OTHER; - break; - case self::RSN_4550: - $reason->description = 'Not compliant and not classifiable'; - $reason->category = ChargebackCategory::OTHER; - break; - case self::RSN_4762: - $reason->description = 'Not compliant and not classifiable'; - $reason->category = ChargebackCategory::OTHER; - break; - case self::RSN_4863: - $reason->description = 'Not compliant and not classifiable'; - $reason->category = ChargebackCategory::OTHER; - break; - case self::RSN_4864: - $reason->description = 'Not compliant and not classifiable'; - $reason->category = ChargebackCategory::OTHER; - break; - case self::RSN_4867: - $reason->description = 'Not compliant and not classifiable'; - $reason->category = ChargebackCategory::OTHER; + $reason->description = 'Invalid Cardholder Number'; + $reason->category = ChargebackCategory::CONSUMER; break; } return $reason;