paypal_rust/resources/enums/
response_code.rs

1use serde::{Deserialize, Serialize};
2
3/// Processor response code for the non-PayPal payment processor errors.
4#[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5pub enum ResponseCode {
6    #[serde(rename = "0000")]
7    Approved,
8    #[serde(rename = "0100")]
9    REFERRAL,
10    #[serde(rename = "0800")]
11    BadResponseReversalRequired,
12    #[serde(rename = "1000")]
13    PartialAuthorization,
14    #[serde(rename = "1300")]
15    InvalidDataFormat,
16    #[serde(rename = "1310")]
17    InvalidAmount,
18    #[serde(rename = "1312")]
19    InvalidTransactionCardIssuerAcquirer,
20    #[serde(rename = "1317")]
21    InvalidCaptureDate,
22    #[serde(rename = "1320")]
23    InvalidCurrencyCode,
24    #[serde(rename = "1330")]
25    InvalidAccount,
26    #[serde(rename = "1335")]
27    InvalidAccountRecurring,
28    #[serde(rename = "1340")]
29    InvalidTerminal,
30    #[serde(rename = "1350")]
31    InvalidMerchant,
32    #[serde(rename = "1360")]
33    BadProcessingCode,
34    #[serde(rename = "1370")]
35    InvalidMcc,
36    #[serde(rename = "1380")]
37    InvalidExpiration,
38    #[serde(rename = "1382")]
39    InvalidCardVerificationValue,
40    #[serde(rename = "1384")]
41    InvalidLifeCycleOfTransaction,
42    #[serde(rename = "1390")]
43    InvalidOrder,
44    #[serde(rename = "1393")]
45    TransactionCannotBeCompleted,
46    #[serde(rename = "0500")]
47    DoNotHonor,
48    #[serde(rename = "5100")]
49    GenericDecline,
50    #[serde(rename = "5110")]
51    CVV2Failure,
52    #[serde(rename = "5120")]
53    InsufficientFunds,
54    #[serde(rename = "5130")]
55    InvalidPin,
56    #[serde(rename = "5140")]
57    CardClosed,
58    #[serde(rename = "5150")]
59    PickupCardSpecialConditions,
60    #[serde(rename = "5160")]
61    UnauthorizedUser,
62    #[serde(rename = "5170")]
63    AVSFailure,
64    #[serde(rename = "5180")]
65    InvalidOrRestrictedCard,
66    #[serde(rename = "5190")]
67    SoftAvs,
68    #[serde(rename = "5200")]
69    DuplicateTransaction,
70    #[serde(rename = "5210")]
71    InvalidTransaction,
72    #[serde(rename = "5400")]
73    ExpiredCard,
74    #[serde(rename = "5500")]
75    IncorrectPinReentered,
76    #[serde(rename = "5700")]
77    TransactionNotPermitted,
78    #[serde(rename = "5800")]
79    ReversalRejected,
80    #[serde(rename = "5900")]
81    InvalidIssue,
82    #[serde(rename = "5910")]
83    IssuerNotAvailableNotRetriable,
84    #[serde(rename = "5920")]
85    IssuerNotAvailableRetriable,
86    #[serde(rename = "6300")]
87    AccountNotOnFile,
88    #[serde(rename = "7600")]
89    ApprovedNonCapture,
90    #[serde(rename = "7700")]
91    Error3DS,
92    #[serde(rename = "7710")]
93    AuthenticationFailed,
94    #[serde(rename = "7800")]
95    BinError,
96    #[serde(rename = "7900")]
97    PinError,
98    #[serde(rename = "8000")]
99    ProcessorSystemError,
100    #[serde(rename = "8010")]
101    HostKeyError,
102    #[serde(rename = "8020")]
103    ConfigurationError,
104    #[serde(rename = "8030")]
105    UnsupportedTransaction,
106    #[serde(rename = "8100")]
107    FatalCommunicationError,
108    #[serde(rename = "8110")]
109    RetriableCommunicationError,
110    #[serde(rename = "8220")]
111    SystemUnavailable,
112    #[serde(rename = "9100")]
113    DeclinedPleaseRetry,
114    #[serde(rename = "9500")]
115    SuspectedFraud,
116    #[serde(rename = "9510")]
117    SecurityViolation,
118    #[serde(rename = "9520")]
119    LostOrStolen,
120    #[serde(rename = "9530")]
121    HoldCallCenter,
122    #[serde(rename = "9540")]
123    RefusedCard,
124    #[serde(rename = "9600")]
125    UnrecognizedResponseCode,
126    #[serde(rename = "5930")]
127    CardNotActivated,
128    #[serde(rename = "PPMD")]
129    ProMidUndefined,
130    #[serde(rename = "PPCE")]
131    CeRegistrationIncomplete,
132    #[serde(rename = "PPNT")]
133    NetworkError,
134    #[serde(rename = "PPCN")]
135    ConnectionError,
136    #[serde(rename = "PPCT")]
137    CardTypeUnsupported,
138    #[serde(rename = "PPTT")]
139    TransactionTypeUnsupported,
140    #[serde(rename = "PPCU")]
141    CurrencyUsedInvalid,
142    #[serde(rename = "PPQC")]
143    QuasiCashUnsupported,
144    #[serde(rename = "PPVE")]
145    ValidationError,
146    #[serde(rename = "PPVT")]
147    VirtualTerminalUnsupported,
148    #[serde(rename = "PPDC")]
149    DccUnsupported,
150    #[serde(rename = "PPER")]
151    InternalSystemError,
152    #[serde(rename = "PPIM")]
153    IdMismatch,
154    #[serde(rename = "PPH1")]
155    H1Error,
156    #[serde(rename = "PPSD")]
157    StatusDescription,
158    #[serde(rename = "PPAG")]
159    AdultGamingUnsupported,
160    #[serde(rename = "PPLS")]
161    LargeStatusCode,
162    #[serde(rename = "PPCO")]
163    Country,
164    #[serde(rename = "PPAD")]
165    BillingAddress,
166    #[serde(rename = "PPAU")]
167    MCCCode,
168    #[serde(rename = "PPUC")]
169    CurrencyCodeUnsupported,
170    #[serde(rename = "PPUR")]
171    UnsupportedReversal,
172    #[serde(rename = "PPVC")]
173    ValidateCurrency,
174    #[serde(rename = "PPS0")]
175    BankAuthRowMismatch,
176    #[serde(rename = "PPS1")]
177    BankAuthRowNotFound,
178    #[serde(rename = "PPS2")]
179    BankAuthRowVoided,
180    #[serde(rename = "PPS3")]
181    BankAuthExpired,
182    #[serde(rename = "PPS4")]
183    CurrencyMismatch,
184    #[serde(rename = "PPS5")]
185    CreditCardMismatch,
186    #[serde(rename = "PPS6")]
187    AmountMismatch,
188    #[serde(rename = "PPRF")]
189    InvalidParentTransactionStatus,
190    #[serde(rename = "PPEX")]
191    ExpiryDate,
192    #[serde(rename = "PPAX")]
193    AmountExceeded,
194    #[serde(rename = "PPDV")]
195    AuthMessage,
196    #[serde(rename = "PPDI")]
197    DinersReject,
198    #[serde(rename = "PPAR")]
199    AuthResult,
200    #[serde(rename = "PPBG")]
201    BadGaming,
202    #[serde(rename = "PPGR")]
203    GamingRefundError,
204    #[serde(rename = "PPCR")]
205    CreditError,
206    #[serde(rename = "PPAI")]
207    AmountIncompatible,
208    #[serde(rename = "PPIF")]
209    IdempotencyFailure,
210    #[serde(rename = "PPMC")]
211    BlockedMastercard,
212    #[serde(rename = "PPAE")]
213    AmexDisabled,
214    #[serde(rename = "PPFV")]
215    FieldValidationFailed,
216    #[serde(rename = "PPII")]
217    InvalidInputFailure,
218    #[serde(rename = "PPPM")]
219    InvalidPaymentMethod,
220    #[serde(rename = "PPUA")]
221    UserNotAuthorized,
222    #[serde(rename = "PPFI")]
223    InvalidFundingInstrument,
224    #[serde(rename = "PPEF")]
225    ExpiredFundingInstrument,
226    #[serde(rename = "PPFR")]
227    RestrictedFundingInstrument,
228    #[serde(rename = "PPEL")]
229    ExceedsFrequencyLimit,
230    #[serde(rename = "PCVV")]
231    CVVFailure,
232    #[serde(rename = "PPTV")]
233    InvalidVerificationToken,
234    #[serde(rename = "PPTE")]
235    VerificationTokenExpired,
236    #[serde(rename = "PPPI")]
237    InvalidProduct,
238    #[serde(rename = "PPIT")]
239    InvalidTraceId,
240    #[serde(rename = "PPTF")]
241    InvalidTraceReference,
242    #[serde(rename = "PPFE")]
243    FundingSourceAlreadyExists,
244    #[serde(rename = "PPTR")]
245    VerificationTokenRevoked,
246    #[serde(rename = "PPTI")]
247    InvalidTransactionId,
248    #[serde(rename = "PPD3")]
249    SecureError3DS,
250    #[serde(rename = "PPPH")]
251    NoPhoneForDCCTransaction,
252    #[serde(rename = "PPAV")]
253    ArcAvs,
254    #[serde(rename = "PPC2")]
255    ArcCvv,
256    #[serde(rename = "PPDB")]
257    NoDobPresent,
258    #[serde(rename = "PPLR")]
259    LateReversal,
260    #[serde(rename = "PPNC")]
261    NotSupportedNrc,
262    #[serde(rename = "PPRR")]
263    MerchantNotRegistered,
264    #[serde(rename = "PPSC")]
265    ArcScore,
266    #[serde(rename = "PPSE")]
267    AmexDenied,
268    #[serde(rename = "PPUE")]
269    UnsupportEntity,
270    #[serde(rename = "PPUP")]
271    UnsupportPosFlag,
272    #[serde(rename = "PPRE")]
273    UnsupportRefundOnPendingBc,
274}
275
276impl ResponseCode {
277    pub const fn as_str(self) -> &'static str {
278        match self {
279            Self::Approved => "0000",
280            Self::REFERRAL => "0100",
281            Self::BadResponseReversalRequired => "0800",
282            Self::PartialAuthorization => "1000",
283            Self::InvalidDataFormat => "1300",
284            Self::InvalidAmount => "1310",
285            Self::InvalidTransactionCardIssuerAcquirer => "1312",
286            Self::InvalidCaptureDate => "1317",
287            Self::InvalidCurrencyCode => "1320",
288            Self::InvalidAccount => "1330",
289            Self::InvalidAccountRecurring => "1335",
290            Self::InvalidTerminal => "1340",
291            Self::InvalidMerchant => "1350",
292            Self::BadProcessingCode => "1360",
293            Self::InvalidMcc => "1370",
294            Self::InvalidExpiration => "1380",
295            Self::InvalidCardVerificationValue => "1382",
296            Self::InvalidLifeCycleOfTransaction => "1384",
297            Self::InvalidOrder => "1390",
298            Self::TransactionCannotBeCompleted => "1393",
299            Self::DoNotHonor => "0500",
300            Self::GenericDecline => "5100",
301            Self::CVV2Failure => "5110",
302            Self::InsufficientFunds => "5120",
303            Self::InvalidPin => "5130",
304            Self::CardClosed => "5140",
305            Self::PickupCardSpecialConditions => "5150",
306            Self::UnauthorizedUser => "5160",
307            Self::AVSFailure => "5170",
308            Self::InvalidOrRestrictedCard => "5180",
309            Self::SoftAvs => "5190",
310            Self::DuplicateTransaction => "5200",
311            Self::InvalidTransaction => "5210",
312            Self::ExpiredCard => "5400",
313            Self::IncorrectPinReentered => "5500",
314            Self::TransactionNotPermitted => "5700",
315            Self::ReversalRejected => "5800",
316            Self::InvalidIssue => "5900",
317            Self::IssuerNotAvailableNotRetriable => "5910",
318            Self::IssuerNotAvailableRetriable => "5920",
319            Self::AccountNotOnFile => "6300",
320            Self::ApprovedNonCapture => "7600",
321            Self::Error3DS => "7700",
322            Self::AuthenticationFailed => "7710",
323            Self::BinError => "7800",
324            Self::PinError => "7900",
325            Self::ProcessorSystemError => "8000",
326            Self::HostKeyError => "8010",
327            Self::ConfigurationError => "8020",
328            Self::UnsupportedTransaction => "8030",
329            Self::FatalCommunicationError => "8100",
330            Self::RetriableCommunicationError => "8110",
331            Self::SystemUnavailable => "8220",
332            Self::DeclinedPleaseRetry => "9100",
333            Self::SuspectedFraud => "9500",
334            Self::SecurityViolation => "9510",
335            Self::LostOrStolen => "9520",
336            Self::HoldCallCenter => "9530",
337            Self::RefusedCard => "9540",
338            Self::UnrecognizedResponseCode => "9600",
339            Self::CardNotActivated => "5930",
340            Self::ProMidUndefined => "PPMD",
341            Self::CeRegistrationIncomplete => "PPCE",
342            Self::NetworkError => "PPNT",
343            Self::ConnectionError => "PPCN",
344            Self::CardTypeUnsupported => "PPCT",
345            Self::TransactionTypeUnsupported => "PPTT",
346            Self::CurrencyUsedInvalid => "PPCU",
347            Self::QuasiCashUnsupported => "PPQC",
348            Self::ValidationError => "PPVE",
349            Self::VirtualTerminalUnsupported => "PPVT",
350            Self::DccUnsupported => "PPDC",
351            Self::InternalSystemError => "PPER",
352            Self::IdMismatch => "PPIM",
353            Self::H1Error => "PPH1",
354            Self::StatusDescription => "PPSD",
355            Self::AdultGamingUnsupported => "PPAG",
356            Self::LargeStatusCode => "PPLS",
357            Self::Country => "PPCO",
358            Self::BillingAddress => "PPAD",
359            Self::MCCCode => "PPAU",
360            Self::CurrencyCodeUnsupported => "PPUC",
361            Self::UnsupportedReversal => "PPUR",
362            Self::ValidateCurrency => "PPVC",
363            Self::BankAuthRowMismatch => "PPS0",
364            Self::BankAuthRowNotFound => "PPS1",
365            Self::BankAuthRowVoided => "PPS2",
366            Self::BankAuthExpired => "PPS3",
367            Self::CurrencyMismatch => "PPS4",
368            Self::CreditCardMismatch => "PPS5",
369            Self::AmountMismatch => "PPS6",
370            Self::InvalidParentTransactionStatus => "PPRF",
371            Self::ExpiryDate => "PPEX",
372            Self::AmountExceeded => "PPAX",
373            Self::AuthMessage => "PPDV",
374            Self::DinersReject => "PPDI",
375            Self::AuthResult => "PPAR",
376            Self::BadGaming => "PPBG",
377            Self::GamingRefundError => "PPGR",
378            Self::CreditError => "PPCR",
379            Self::AmountIncompatible => "PPAI",
380            Self::IdempotencyFailure => "PPIF",
381            Self::BlockedMastercard => "PPMC",
382            Self::AmexDisabled => "PPAE",
383            Self::FieldValidationFailed => "PPFV",
384            Self::InvalidInputFailure => "PPII",
385            Self::InvalidPaymentMethod => "PPPM",
386            Self::UserNotAuthorized => "PPUA",
387            Self::InvalidFundingInstrument => "PPFI",
388            Self::ExpiredFundingInstrument => "PPEF",
389            Self::RestrictedFundingInstrument => "PPFR",
390            Self::ExceedsFrequencyLimit => "PPEL",
391            Self::CVVFailure => "PCVV",
392            Self::InvalidVerificationToken => "PPTV",
393            Self::VerificationTokenExpired => "PPTE",
394            Self::InvalidProduct => "PPPI",
395            Self::InvalidTraceId => "PPIT",
396            Self::InvalidTraceReference => "PPTF",
397            Self::FundingSourceAlreadyExists => "PPFE",
398            Self::VerificationTokenRevoked => "PPTR",
399            Self::InvalidTransactionId => "PPTI",
400            Self::SecureError3DS => "PPD3",
401            Self::NoPhoneForDCCTransaction => "PPPH",
402            Self::ArcAvs => "PPAV",
403            Self::ArcCvv => "PPC2",
404            Self::NoDobPresent => "PPDB",
405            Self::LateReversal => "PPLR",
406            Self::NotSupportedNrc => "PPNC",
407            Self::MerchantNotRegistered => "PPRR",
408            Self::ArcScore => "PPSC",
409            Self::AmexDenied => "PPSE",
410            Self::UnsupportEntity => "PPUE",
411            Self::UnsupportPosFlag => "PPUP",
412            Self::UnsupportRefundOnPendingBc => "PPRE",
413        }
414    }
415}
416
417impl AsRef<str> for ResponseCode {
418    fn as_ref(&self) -> &str {
419        self.as_str()
420    }
421}
422
423impl std::fmt::Display for ResponseCode {
424    fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
425        self.as_str().fmt(formatter)
426    }
427}