"Transaction Approved", "A2008" => "Honour With Identification", "A2010" => "Approved For Partial Amount", "A2011" => "Approved, VIP", "A2016" => "Approved, Update Track 3", ]; private static $failure = [ "D4401" => "Refer to Issuer", "D4402" => "Refer to Issuer, special", "D4403" => "No Merchant", "D4404" => "Pick Up Card", "D4405" => "Do Not Honour", "D4406" => "Error", "D4407" => "Pick Up Card, Special", "D4409" => "Request In Progress", "D4412" => "Invalid Transaction", "D4413" => "Invalid Amount", "D4414" => "Invalid Card Number", "D4415" => "No Issuer", "D4417" => "3D Secure Error", "D4419" => "Re-enter Last Transaction", "D4421" => "No Action Taken", "D4422" => "Suspected Malfunction", "D4423" => "Unacceptable Transaction Fee", "D4425" => "Unable to Locate Record On File", "D4430" => "Format Error", "D4431" => "Bank Not Supported By Switch", "D4433" => "Expired Card, Capture", "D4434" => "Suspected Fraud, Retain Card", "D4435" => "Card Acceptor, Contact Acquirer, Retain Card", "D4436" => "Restricted Card, Retain Card", "D4437" => "Contact Acquirer Security Department, Retain Card", "D4438" => "PIN Tries Exceeded, Capture", "D4439" => "No Credit Account", "D4440" => "Function Not Supported", "D4441" => "Lost Card", "D4442" => "No Universal Account", "D4443" => "Stolen Card", "D4444" => "No Investment Account", "D4450" => "Click-to-Pay (Visa Checkout) Transaction", "D4451" => "Insufficient Funds", "D4452" => "No Cheque Account", "D4453" => "No Savings Account", "D4454" => "Expired Card", "D4455" => "Incorrect PIN", "D4456" => "No Card Record", "D4457" => "Function Not Permitted to Cardholder", "D4458" => "Function Not Permitted to Terminal", "D4459" => "Suspected Fraud", "D4460" => "Acceptor Contact Acquirer", "D4461" => "Exceeds Withdrawal Limit", "D4462" => "Restricted Card", "D4463" => "Security Violation", "D4464" => "Original Amount Incorrect", "D4466" => "Acceptor Contact Acquirer, Security", "D4467" => "Capture Card", "D4475" => "PIN Tries Exceeded", "D4476" => "Invalidate Txn Reference", "D4481" => "Accumulated Transaction Counter (Amount) Exceeded", "D4482" => "CVV Validation Error", "D4483" => "Acquirer Is Not Accepting Transactions From You At This Time", "D4484" => "Acquirer Is Not Accepting This Transaction", "D4490" => "Cut off In Progress", "D4491" => "Card Issuer Unavailable", "D4492" => "Unable To Route Transaction", "D4493" => "Cannot Complete, Violation Of The Law", "D4494" => "Duplicate Transaction", "D4495" => "Amex Declined", "D4496" => "System Error", "D4497" => "MasterPass Error", "D4498" => "PayPal Create Transaction Error", "D4499" => "Invalid Transaction for Auth/Void", ]; public static function getStatus($code) { if(array_key_exists($code, self::$success)) return ['success' => true, 'message' => self::$success[$code]]; if(array_key_exists($code, self::$failure)) return ['success' => false, 'message' => self::$failure[$code]]; return ['success' => false, 'message' => "Unknown error message code - {$code}"]; } }