ach_client 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +18 -0
  3. data/.gitignore +9 -0
  4. data/.rubocop.yml +1156 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +10 -0
  7. data/Gemfile +4 -0
  8. data/README.md +388 -0
  9. data/Rakefile +10 -0
  10. data/ach_client.gemspec +58 -0
  11. data/bin/console +93 -0
  12. data/bin/setup +8 -0
  13. data/config/return_codes.yml +761 -0
  14. data/lib/ach_client/abstract/abstract_method_error.rb +3 -0
  15. data/lib/ach_client/helpers/dollars_to_cents.rb +15 -0
  16. data/lib/ach_client/logging/log_provider_job.rb +36 -0
  17. data/lib/ach_client/logging/log_providers/log_provider.rb +22 -0
  18. data/lib/ach_client/logging/log_providers/null_log_provider.rb +14 -0
  19. data/lib/ach_client/logging/log_providers/stdout_log_provider.rb +14 -0
  20. data/lib/ach_client/logging/logging.rb +76 -0
  21. data/lib/ach_client/logging/savon_observer.rb +26 -0
  22. data/lib/ach_client/objects/account_types.rb +32 -0
  23. data/lib/ach_client/objects/responses/ach_response.rb +15 -0
  24. data/lib/ach_client/objects/responses/corrected_ach_response.rb +18 -0
  25. data/lib/ach_client/objects/responses/processing_ach_response.rb +6 -0
  26. data/lib/ach_client/objects/responses/returned_ach_response.rb +16 -0
  27. data/lib/ach_client/objects/responses/settled_ach_response.rb +5 -0
  28. data/lib/ach_client/objects/return_code.rb +20 -0
  29. data/lib/ach_client/objects/return_codes.rb +33 -0
  30. data/lib/ach_client/objects/transaction_types.rb +16 -0
  31. data/lib/ach_client/providers/abstract/ach_batch.rb +23 -0
  32. data/lib/ach_client/providers/abstract/ach_status_checker.rb +21 -0
  33. data/lib/ach_client/providers/abstract/ach_transaction.rb +70 -0
  34. data/lib/ach_client/providers/abstract/company_info.rb +28 -0
  35. data/lib/ach_client/providers/abstract/response_record_processor.rb +15 -0
  36. data/lib/ach_client/providers/abstract/transformer.rb +38 -0
  37. data/lib/ach_client/providers/sftp/account_type_transformer.rb +20 -0
  38. data/lib/ach_client/providers/sftp/ach_batch.rb +97 -0
  39. data/lib/ach_client/providers/sftp/ach_status_checker.rb +146 -0
  40. data/lib/ach_client/providers/sftp/ach_transaction.rb +62 -0
  41. data/lib/ach_client/providers/sftp/nacha_provider.rb +30 -0
  42. data/lib/ach_client/providers/sftp/sftp_provider.rb +124 -0
  43. data/lib/ach_client/providers/sftp/transaction_type_transformer.rb +19 -0
  44. data/lib/ach_client/providers/soap/ach_works/account_type_transformer.rb +17 -0
  45. data/lib/ach_client/providers/soap/ach_works/ach_batch.rb +89 -0
  46. data/lib/ach_client/providers/soap/ach_works/ach_status_checker.rb +86 -0
  47. data/lib/ach_client/providers/soap/ach_works/ach_transaction.rb +80 -0
  48. data/lib/ach_client/providers/soap/ach_works/ach_works.rb +57 -0
  49. data/lib/ach_client/providers/soap/ach_works/company_info.rb +87 -0
  50. data/lib/ach_client/providers/soap/ach_works/correction_details_processor.rb +92 -0
  51. data/lib/ach_client/providers/soap/ach_works/date_formatter.rb +33 -0
  52. data/lib/ach_client/providers/soap/ach_works/response_record_processor.rb +91 -0
  53. data/lib/ach_client/providers/soap/ach_works/transaction_type_transformer.rb +18 -0
  54. data/lib/ach_client/providers/soap/i_check_gateway/account_type_transformer.rb +20 -0
  55. data/lib/ach_client/providers/soap/i_check_gateway/ach_batch.rb +12 -0
  56. data/lib/ach_client/providers/soap/i_check_gateway/ach_status_checker.rb +35 -0
  57. data/lib/ach_client/providers/soap/i_check_gateway/ach_transaction.rb +53 -0
  58. data/lib/ach_client/providers/soap/i_check_gateway/company_info.rb +51 -0
  59. data/lib/ach_client/providers/soap/i_check_gateway/i_check_gateway.rb +39 -0
  60. data/lib/ach_client/providers/soap/i_check_gateway/response_record_processor.rb +59 -0
  61. data/lib/ach_client/providers/soap/i_check_gateway/transaction_type_transformer.rb +8 -0
  62. data/lib/ach_client/providers/soap/soap_provider.rb +47 -0
  63. data/lib/ach_client/version.rb +4 -0
  64. data/lib/ach_client.rb +38 -0
  65. metadata +346 -0
@@ -0,0 +1,761 @@
1
+ ---
2
+ -
3
+ code: 'C01'
4
+ description: "ACH Change Code. Incorrect Account Number"
5
+ reason: "Incorrect Account Number"
6
+ -
7
+ code: 'C02'
8
+ description: "ACH Change Code. Incorrect Transit Route"
9
+ reason: "Incorrect Transit Route"
10
+ -
11
+ code: 'C03'
12
+ description: "ACH Change Code. Incorrect Account Number and Bank route"
13
+ reason: "Incorrect Account Number and Bank route"
14
+ -
15
+ code: 'C04'
16
+ description: "ACH Change Code. Incorrect Account Name"
17
+ reason: "Incorrect Account Name"
18
+ -
19
+ code: 'C05'
20
+ description: "Trans Code: 22=checking/credit, 27=checking/debit, 32=savings/credit, 37=savings/debit"
21
+ reason: "Incorrect Acct Type (Checking vs Savings)"
22
+ -
23
+ code: 'C06'
24
+ description: "ACH Change Code. Incorrect Acct Number and Acct Type"
25
+ reason: "Incorrect Acct Number and Acct Type"
26
+ -
27
+ code: 'C07'
28
+ description: "ACH Change Code. Incorrect Acct Number, Route and Acct Type"
29
+ reason: "Incorrect Acct Number, Route and Acct Type"
30
+ -
31
+ code: 'C09'
32
+ description: "ACH Change Code. Incorrect Individual ID"
33
+ reason: "Incorrect Individual ID"
34
+ -
35
+ code: 'C10'
36
+ description: "ACH Change Code. Incorrect Company Name"
37
+ reason: "Incorrect Company Name"
38
+ -
39
+ code: 'C11'
40
+ description: "ACH Change Code. Incorrect Company ID"
41
+ reason: "Incorrect Company ID"
42
+ -
43
+ code: 'C12'
44
+ description: "ACH Change Code. Incorrect Company Name and ID"
45
+ reason: "Incorrect Company Name and ID"
46
+ -
47
+ code: 'C13'
48
+ description: "ACH Change Code. Addenda Format Error"
49
+ reason: "Addenda Format Error"
50
+ -
51
+ code: 'R01'
52
+ description: "The available and/or cash reserve balance is not sufficient to cover the dollar value of the debit Entry."
53
+ reason: "Insufficient Funds"
54
+ -
55
+ code: 'R02'
56
+ description: "A previously active account has been closed by action of the customer or the RDFI."
57
+ reason: "Account Closed"
58
+ -
59
+ code: 'R03'
60
+ description: "The account number structure is valid and it passes the Check digit validation, but the account number does not correspond to the individual identified in the Entry, or the account number designated is not an existing account."
61
+ reason: "Bad account info/Not currently an existing account"
62
+ -
63
+ code: 'R04'
64
+ description: "The account number structure is not valid. The Entry may fail the Check digit validation or may contain an incorrect number of digits."
65
+ reason: "Invalid Account Number Structure"
66
+ -
67
+ code: 'R05'
68
+ description: "CCD or CTX debit Entry was transmitted to a Consumer Account of the Receiver and was not authorized by the Receiver."
69
+ reason: "Unauthorized CCD Debit to Consumer Account"
70
+ -
71
+ code: 'R06'
72
+ description: "The ODFI has requested that the RDFI return an Erroneous Entry."
73
+ reason: "Returned by request of Sender or ACHWorks bank"
74
+ -
75
+ code: 'R07'
76
+ description: "The RDFI's customer (the Receiver) revoked the authorization previously provided to the Originator for this debit Entry."
77
+ reason: "Authorization Revoked by Customer"
78
+ -
79
+ code: 'R08'
80
+ description: "The Receiver has placed a stop payment order on this debit Entry."
81
+ reason: "Payment Stopped"
82
+ -
83
+ code: 'R09'
84
+ description: "A sufficient ledger balance exists to satisfy the dollar value of the transaction, but the available balance is below the dollar value of the debit Entry."
85
+ reason: "Uncollected funds due to uncleared deposit"
86
+ -
87
+ code: 'R10'
88
+ description: "The RDFI has been notified by the Receiver that the Entry is unauthorized, improper, or ineligible."
89
+ reason: "Customer Says: Not Authorized/Improper/Ineligible"
90
+ -
91
+ code: 'R11'
92
+ description: "Used when returning a Check truncation Entry."
93
+ reason: "Check Truncation Entry Return"
94
+ -
95
+ code: 'R12'
96
+ description: "A financial institution received an Entry to an account that was sold to another financial institution."
97
+ reason: "Account Sold to Another Bank"
98
+ -
99
+ code: 'R13'
100
+ description: "Entry contains a Receiving DFI Identification or Gateway Identification that is not a valid ACH routing number."
101
+ reason: "Invalid ACH Routing Number"
102
+ -
103
+ code: 'R14'
104
+ description: "The representative payee is either deceased or unable to continue in that capacity. The beneficiary is not deceased."
105
+ reason: "Representative Payee Deceased or Incapacitated"
106
+ -
107
+ code: 'R15'
108
+ description: "(1) The beneficiary is deceased, or (2) The account holder is deceased."
109
+ reason: "Beneficiary/Account Holder (not Rep Payee)Deceased"
110
+ -
111
+ code: 'R16'
112
+ description: "1) Access to the account is restricted due to specific action taken by the RDFI or by legal action; or (2) OFAC has instructed the RDFI or Gateway to return the Entry."
113
+ reason: "Account Frozen/Entry Returned Per OFAC Instruction"
114
+ -
115
+ code: 'R17'
116
+ description: "Field(s) cannot be processed by RDFI."
117
+ reason: "File Record Field Errors"
118
+ -
119
+ code: 'R18'
120
+ description: "The effective Entry date for a credit Entry is more than two Banking Days after the Banking Day of processing as established by the Originating ACH Operator; or The effective Entry date for a debit Entry is more than one Banking Day after the processing d"
121
+ reason: "Improper Effective Entry Date"
122
+ -
123
+ code: 'R19'
124
+ description: "Amount field is non-numeric. Amount field is not zero in a prenotification, DNE, ENR, Notification of Change, refused Notification of Change, or zero dollar CCD, CTX, or IAT Entry. Amount field is zero in an Entry other than a Prenotification, DNE, ENR, N"
125
+ reason: "Amount Field Error"
126
+ -
127
+ code: 'R20'
128
+ description: "ACH Entry to a non-Transaction Account. Account does not accept this type of transaction."
129
+ reason: "Account doesn't accept trans type (Credit/Debit)"
130
+ -
131
+ code: 'R21'
132
+ description: "The identification number used in the Company Identification Field is not valid."
133
+ reason: "Invalid Company Identification"
134
+ -
135
+ code: 'R22'
136
+ description: "The Receiver has indicated to the RDFI that the number with which the Originator was identified is not correct."
137
+ reason: "Invalid Individual ID Number"
138
+ -
139
+ code: 'R23'
140
+ description: "Any credit Entry that is refused by the Receiver may be returned by the RDFI."
141
+ reason: "Credit Entry Refused by Receiver"
142
+ -
143
+ code: 'R24'
144
+ description: "The RDFI has received what appears to be a duplicate Entry; i.e., the trace number, date, dollar amount and/or other data matches another transaction."
145
+ reason: "Duplicate Entry"
146
+ -
147
+ code: 'R25'
148
+ description: "Addenda Record Indicator value is incorrect. Addenda Type Code is invalid, out of sequence, or missing, Number of Addenda Records exceeds allowable maximum, Addenda Sequence Number is invalid."
149
+ reason: "Addenda Error"
150
+ -
151
+ code: 'R26'
152
+ description: "Erroneous data or missing data in a mandatory field."
153
+ reason: "Mandatory Field Error"
154
+ -
155
+ code: 'R27'
156
+ description: "Original Entry Trace Number is not present in the Addenda Record on a Return or Notification of Change Entry; or Trace Number of an Addenda Record is not the same as the Trace Number of the preceding Entry Detail Record."
157
+ reason: "Trace Number Error"
158
+ -
159
+ code: 'R28'
160
+ description: "The Check digit for a routing number is not valid."
161
+ reason: "Routing Number Check Digit Error"
162
+ -
163
+ code: 'R29'
164
+ description: "The RDFI has been notified by the Receiver(non-consumer) that a specific Entry has not been authorized by the Receiver."
165
+ reason: "Corporate Customer Advises Not Authorized"
166
+ -
167
+ code: 'R30'
168
+ description: "The RDFI does not participate in a Check truncation program."
169
+ reason: "RDFI Not Participant in Check Truncation Program"
170
+ -
171
+ code: 'R31'
172
+ description: "The RDFI may return a CCD or CTX Entry that the ODFI agrees to accept."
173
+ reason: "Permissible Return Entry (CCD and CTX only)"
174
+ -
175
+ code: 'R32'
176
+ description: "The RDFI is not able to settle the Entry."
177
+ reason: "RDFI Non-Settlement"
178
+ -
179
+ code: 'R33'
180
+ description: "This Return Reason Code may only be used to return XCK Entries and is at the RDFI's sole discretion."
181
+ reason: "Return of XCK Entry"
182
+ -
183
+ code: 'R34'
184
+ description: "The RDFI's participation has been limited by a federal or state supervisor."
185
+ reason: "Limited Participation DFI"
186
+ -
187
+ code: 'R35'
188
+ description: "Debit Entries (with the exception of Reversing Entries) are not permitted for CIE Entries or to loan accounts."
189
+ reason: "Return of Improper Debit Entry"
190
+ -
191
+ code: 'R36'
192
+ description: "ACH credit Entries (with the exception of Reversing Entries) are not permitted for use with ARC, BOC, POP, RCK, TEL, WEB, and XCK."
193
+ reason: "Return of Improper Credit Entry"
194
+ -
195
+ code: 'R37'
196
+ description: "The source document to which an ARC, BOC, or POP Entry relates has been presented for payment."
197
+ reason: "Source Document Presented for Payment"
198
+ -
199
+ code: 'R38'
200
+ description: "The RDFI determines a stop payment order has been placed on the source document to which the ARC or BOC Entry relates."
201
+ reason: "Stop Payment on Source Document"
202
+ -
203
+ code: 'R39'
204
+ description: "The RDFI determines that: (1) the source document used for an ARC, BOC, or POP Entry to its Receiver's account is improper, or (2) an ARC, BOC, or POP Entry and the source document to which the Entry relates have both been presented for payment and posted"
205
+ reason: "Source Document: Improper/Presented for Payment"
206
+ -
207
+ code: 'R40'
208
+ description: "This Return Reason Code may only be used to return ENR Entries and is at the Federal Government Agency's sole discretion."
209
+ reason: "Return of ENR Entry by Federal Government Agency"
210
+ -
211
+ code: 'R41'
212
+ description: "Either the Transaction Code included in Field 3 of the Addenda Record does not conform to the ACH Record Format Specifications contained in Appendix Three (ACH Record Format Specifications) or it is not appropriate with regard to an Automated Enrollment E"
213
+ reason: "Invalid Transaction Code"
214
+ -
215
+ code: 'R42'
216
+ description: "The Routing Number and the Check Digit included in Field 3 of the Addenda Record is either not a valid number or it does not conform to the Modulus 10 formula."
217
+ reason: "Routing Number/Check Digit Error"
218
+ -
219
+ code: 'R43'
220
+ description: "The Receiver's account number included in Field 3 of the Addenda Record must include at least one alphameric character."
221
+ reason: "Invalid DFI Account Number"
222
+ -
223
+ code: 'R44'
224
+ description: "The Individual ID Number/Identification Number provided in Field 3 of the Addenda Record does not match a corresponding ID number in the Federal Government Agency's records."
225
+ reason: "Invalid Individual ID Number/Identification Number"
226
+ -
227
+ code: 'R45'
228
+ description: "The name of the consumer or company provided in Field 3 of the Addenda Record either does not match a corresponding name in the Federal Government Agency's records or fails to include at least one alphameric character."
229
+ reason: "Invalid Individual Name/Company Name"
230
+ -
231
+ code: 'R46'
232
+ description: "The Representative Payee Indicator Code included in Field 3 of the Addenda Record has been omitted or it is not consistent with the Federal Government Agency's records."
233
+ reason: "Invalid Representative Payee Indicator"
234
+ -
235
+ code: 'R47'
236
+ description: "The Entry is a duplicate of an Automated Enrollment Entry previously initiated by a DFI."
237
+ reason: "Duplicate Enrollment (ENR only)"
238
+ -
239
+ code: 'R50'
240
+ description: "The RDFI is located in a state that has not adopted Revised Article 4 of the Uniform Commercial Code (1990 Official Text) and has not revised its customer agreements to allow for Electronic presentment. OR The RDFI is located within a state that requires "
241
+ reason: "State Law Affecting RCK Acceptance"
242
+ -
243
+ code: 'R51'
244
+ description: "An RCK Entry considered to be ineligible or improper."
245
+ reason: "RCK Entry: Related Item Ineligible/Entry Improper"
246
+ -
247
+ code: 'R52'
248
+ description: "A stop payment order has been placed on the item to which the RCK Entry relates."
249
+ reason: "Stop Payment on Item Related to RCK Entry"
250
+ -
251
+ code: 'R53'
252
+ description: "In addition to an RCK Entry, the item to which the RCK Entry relates has also been presented for payment."
253
+ reason: "Item and RCK Entry Presented for Payment"
254
+ -
255
+ code: 'R61'
256
+ description: "The financial institution preparing the Return Entry (the RDFI of the original Entry) has placed the incorrect Routing Number in the Receiving DFI Identification field."
257
+ reason: "Misrouted Return"
258
+ -
259
+ code: 'R62'
260
+ description: "The Trace Number found in positions 07-21 in the Addenda Record of the return entry is different from the trace number of the original entry."
261
+ reason: "Incorrect Trace Number"
262
+ -
263
+ code: 'R63'
264
+ description: "The dollar amount in the Entry Detail Record of the return entry is different from the dollar amount of the original entry."
265
+ reason: "Incorrect Dollar Amount"
266
+ -
267
+ code: 'R64'
268
+ description: "The Individual Identification Number reflected in the Entry Detail Record of the return entry is different from the Individual Identification Number/Identification Number used in the original entry."
269
+ reason: "Incorrect Individual Identification"
270
+ -
271
+ code: 'R65'
272
+ description: "The Transaction Code in the Entry Detail Record of the return entry is not the return equivalent of the Transaction Code in the original entry."
273
+ reason: "Incorrect Transaction Code"
274
+ -
275
+ code: 'R66'
276
+ description: "The Company Identification number used in the Company/Batch Header Record of the return entry is different from the Company Identification number used in the original entry."
277
+ reason: "Incorrect Company Identification"
278
+ -
279
+ code: 'R67'
280
+ description: "The ODFI has received more than one Return for the same Entry."
281
+ reason: "Duplicate Return"
282
+ -
283
+ code: 'R68'
284
+ description: "The Return Entry has not been sent within the timeframe established by these Rules."
285
+ reason: "Untimely Return"
286
+ -
287
+ code: 'R69'
288
+ description: "One or more of the field requirements are incorrect (Individual Identification Number, Company Identification Number, Invalid Effective Entry Date)."
289
+ reason: "Field Error(s)"
290
+ -
291
+ code: 'R70'
292
+ description: "The ODFI has received a Return Entry identified by the RDFI as being returned with the permission of, or at the request of, the ODFI, but the ODFI has not agreed to accept the Entry or has not requested the return of the Entry."
293
+ reason: "Permissible Return Not Accepted/Requested by ODFI"
294
+ -
295
+ code: 'R71'
296
+ description: "The financial institution preparing the dishonored Return Entry (the ODFI of the original Entry) has placed the incorrect Routing Number in the Receiving DFI Identification field."
297
+ reason: "Misrouted Dishonored Return"
298
+ -
299
+ code: 'R72'
300
+ description: "The dishonored Return Entry has not been sent within the designated timeframe."
301
+ reason: "Untimely Dishonored Return"
302
+ -
303
+ code: 'R73'
304
+ description: "The RDFI is certifying that the original Return Entry was sent within the timeframe designated in these Rules."
305
+ reason: "Timely Original Return"
306
+ -
307
+ code: 'R74'
308
+ description: "The RDFI is correcting a previous Return Entry that was dishonored using Return Reason Code R69 (Field Errors) because it contained incomplete or incorrect information."
309
+ reason: "Corrected Return"
310
+ -
311
+ code: 'R75'
312
+ description: "The Return Entry was not a duplicate of an Entry previously returned by the RDFI."
313
+ reason: "Return Not a Duplicate"
314
+ -
315
+ code: 'R76'
316
+ description: "The original Return Entry did not contain the errors indicated by the ODFI in the dishonored Return Entry."
317
+ reason: "No Errors Found"
318
+ -
319
+ code: 'R80'
320
+ description: "The IAT Entry is being returned due to one or more of the following conditions: ¥ invalid DFI/Bank Branch Country Code ¥ invalid DFI/Bank Identification Number Qualifier ¥ invalid Foreign Exchange Indicator ¥ invalid ISO Originating Currency Code ¥ invali"
321
+ reason: "IAT Entry Coding Error"
322
+ -
323
+ code: 'R81'
324
+ description: "The IAT Entry is being returned because the Gateway does not have an agreement with either the ODFI or the Gateway's customer to transmit IAT Entries."
325
+ reason: "Non-Participant in IAT Program"
326
+ -
327
+ code: 'R82'
328
+ description: "The reference used to identify the Foreign Receiving DFI of an Outbound IAT Entry is invalid."
329
+ reason: "Invalid Foreign Receiving DFI Identification"
330
+ -
331
+ code: 'R83'
332
+ description: "The IAT Entry is being returned due to settlement problems in the foreign payment system."
333
+ reason: "Foreign Receiving DFI Unable to Settle"
334
+ -
335
+ code: 'R84'
336
+ description: "For Outbound IAT Entries, the Entry has not been processed and is being returned at the Gateway's discretion because either (1) the processing of such Entry may expose the Gateway to excessive risk, or (2) the foreign payment system does support the funct"
337
+ reason: "Entry Not Processed by Gateway"
338
+ -
339
+ code: 'R85'
340
+ description: "The RDFI/Gateway has identified the Entry as an Outbound international payment and is returning the Entry because it bears an SEC Code that lacks information required by the Gateway for OFAC compliance."
341
+ reason: "Incorrectly Coded Outbound International Payment"
342
+ -
343
+ code: 'X00'
344
+ description: "Ok for submission"
345
+ reason: "Ok for submission"
346
+ -
347
+ code: 'X02'
348
+ description: "A previously active account has been closed by action of the customer or the RDFI."
349
+ reason: "Account Closed"
350
+ -
351
+ code: 'X03'
352
+ description: "The account number structure is valid and it passes the Check digit validation, but the account number does not correspond to the individual identified in the Entry, or the account number designated is not an existing account."
353
+ reason: "Bad account info/Not currently an existing account"
354
+ -
355
+ code: 'X04'
356
+ description: "The account number structure is not valid. The Entry may fail the Check digit validation or may contain an incorrect number of digits."
357
+ reason: "Invalid Account Number Structure"
358
+ -
359
+ code: 'X05'
360
+ description: "CCD or CTX debit Entry was transmitted to a Consumer Account of the Receiver and was not authorized by the Receiver."
361
+ reason: "Unauthorized CCD Debit to Consumer Account"
362
+ -
363
+ code: 'X07'
364
+ description: "The RDFI's customer (the Receiver) revoked the authorization previously provided to the Originator for this debit Entry."
365
+ reason: "Authorization Revoked by Customer"
366
+ -
367
+ code: 'X08'
368
+ description: "The Receiver has placed a stop payment order on this debit Entry."
369
+ reason: "Payment Stopped"
370
+ -
371
+ code: 'X10'
372
+ description: "The RDFI has been notified by the Receiver that the Entry is unauthorized, improper, or ineligible."
373
+ reason: "Customer Says: Not Authorized/Improper/Ineligible"
374
+ -
375
+ code: 'X12'
376
+ description: "A financial institution received an Entry to an account that was sold to another financial institution."
377
+ reason: "Account Sold to Another Bank"
378
+ -
379
+ code: 'X13'
380
+ description: "Entry contains a Receiving DFI Identification or Gateway Identification that is not a valid ACH routing number."
381
+ reason: "Invalid ACH Routing Number"
382
+ -
383
+ code: 'X14'
384
+ description: "The representative payee is either deceased or unable to continue in that capacity. The beneficiary is not deceased."
385
+ reason: "Representative Payee Deceased or Incapacitated"
386
+ -
387
+ code: 'X15'
388
+ description: "(1) The beneficiary is deceased, or (2) The account holder is deceased."
389
+ reason: "Beneficiary/Account Holder (not Rep Payee)Deceased"
390
+ -
391
+ code: 'X16'
392
+ description: "1) Access to the account is restricted due to specific action taken by the RDFI or by legal action; or (2) OFAC has instructed the RDFI or Gateway to return the Entry."
393
+ reason: "Account Frozen/Entry Returned Per OFAC Instruction"
394
+ -
395
+ code: 'X20'
396
+ description: "ACH Entry to a non-Transaction Account. Account does not accept this type of transaction."
397
+ reason: "Account doesn't accept trans type (Credit/Debit)"
398
+ -
399
+ code: 'X22'
400
+ description: "The Receiver has indicated to the RDFI that the number with which the Originator was identified is not correct."
401
+ reason: "Invalid Individual ID Number"
402
+ -
403
+ code: 'X26'
404
+ description: "Erroneous data or missing data in a mandatory field."
405
+ reason: "Mandatory Field Error"
406
+ -
407
+ code: 'X28'
408
+ description: "The Check digit for a routing number is not valid."
409
+ reason: "Routing Number Check Digit Error"
410
+ -
411
+ code: 'X29'
412
+ description: "The RDFI has been notified by the Receiver(non-consumer) that a specific Entry has not been authorized by the Receiver."
413
+ reason: "Corporate Customer Advises Not Authorized"
414
+ -
415
+ code: 'X30'
416
+ description: "The RDFI does not participate in a Check truncation program."
417
+ reason: "RDFI Not Participant in Check Truncation Program"
418
+ -
419
+ code: 'X34'
420
+ description: "The RDFI's participation has been limited by a federal or state supervisor."
421
+ reason: "Limited Participation DFI"
422
+ -
423
+ code: 'X37'
424
+ description: "The source document to which an ARC, BOC, or POP Entry relates has been presented for payment."
425
+ reason: "Source Document Presented for Payment"
426
+ -
427
+ code: 'X38'
428
+ description: "The RDFI determines a stop payment order has been placed on the source document to which the ARC or BOC Entry relates."
429
+ reason: "Stop Payment on Source Document"
430
+ -
431
+ code: 'X40'
432
+ description: "This Return Reason Code may only be used to return ENR Entries and is at the Federal Government Agency's sole discretion."
433
+ reason: "Return of ENR Entry by Federal Government Agency"
434
+ -
435
+ code: 'X42'
436
+ description: "The Routing Number and the Check Digit included in Field 3 of the Addenda Record is either not a valid number or it does not conform to the Modulus 10 formula."
437
+ reason: "Routing Number/Check Digit Error"
438
+ -
439
+ code: 'X43'
440
+ description: "The Receiver's account number included in Field 3 of the Addenda Record must include at least one alphameric character."
441
+ reason: "Invalid DFI Account Number"
442
+ -
443
+ code: 'X50'
444
+ description: "The RDFI is located in a state that has not adopted Revised Article 4 of the Uniform Commercial Code (1990 Official Text) and has not revised its customer agreements to allow for Electronic presentment. OR The RDFI is located within a state that requires "
445
+ reason: "State Law Affecting RCK Acceptance"
446
+ -
447
+ code: 'X51'
448
+ description: "An RCK Entry considered to be ineligible or improper."
449
+ reason: "RCK Entry: Related Item Ineligible/Entry Improper"
450
+ -
451
+ code: 'X53'
452
+ description: "In addition to an RCK Entry, the item to which the RCK Entry relates has also been presented for payment."
453
+ reason: "Item and RCK Entry Presented for Payment"
454
+ -
455
+ code: 'X81'
456
+ description: "The IAT Entry is being returned because the Gateway does not have an agreement with either the ODFI or the Gateway's customer to transmit IAT Entries."
457
+ reason: "Non-Participant in IAT Program"
458
+ -
459
+ code: 'X82'
460
+ description: "The reference used to identify the Foreign Receiving DFI of an Outbound IAT Entry is invalid."
461
+ reason: "Invalid Foreign Receiving DFI Identification"
462
+ -
463
+ code: 'X83'
464
+ description: "The IAT Entry is being returned due to settlement problems in the foreign payment system."
465
+ reason: "Foreign Receiving DFI Unable to Settle"
466
+ -
467
+ code: 'X84'
468
+ description: "For Outbound IAT Entries, the Entry has not been processed and is being returned at the Gateway's discretion because either (1) the processing of such Entry may expose the Gateway to excessive risk, or (2) the foreign payment system does support the funct"
469
+ reason: "Entry Not Processed by Gateway"
470
+ -
471
+ code: 'XA0'
472
+ description: "Internal Return. Account Access is denied"
473
+ reason: "Account access is denied"
474
+ -
475
+ code: 'XA1'
476
+ description: "Internal Return. Account number has illegal characters"
477
+ reason: "Account number has illegal characters"
478
+ -
479
+ code: 'XA2'
480
+ description: "Internal Return. Amount over Admin authorized limit"
481
+ reason: "Amount over Admin authorized limit"
482
+ -
483
+ code: 'XA3'
484
+ description: "Internal Return. Amount is over the transaction dollar limit set for the SEC Code and account set."
485
+ reason: "Amount over ACHWorks single transaction limit"
486
+ -
487
+ code: 'XA4'
488
+ description: "Internal Return. Bank does not participate"
489
+ reason: "Bank does not participate"
490
+ -
491
+ code: 'XA5'
492
+ description: "Internal Return. Batch Stopped"
493
+ reason: "Batch Stopped"
494
+ -
495
+ code: 'XA6'
496
+ description: "Internal Return. Check Number missing"
497
+ reason: "Check Number missing"
498
+ -
499
+ code: 'XA7'
500
+ description: "Internal Return. Credits not allowed for this service code"
501
+ reason: "Credits not allowed for this service code"
502
+ -
503
+ code: 'XA8'
504
+ description: "Internal Return. Duplicate item"
505
+ reason: "Duplicate item"
506
+ -
507
+ code: 'XA9'
508
+ description: "Internal Return. Internal User Not Authorized for transaction"
509
+ reason: "ACHWorks User Not Authorized for transaction"
510
+ -
511
+ code: 'XB0'
512
+ description: "Internal Return. Fee amount over legal limit"
513
+ reason: "Fee amount over legal limit"
514
+ -
515
+ code: 'XB1'
516
+ description: "Internal Return. Record contains invalid character(s)"
517
+ reason: "Record contains invalid character(s)"
518
+ -
519
+ code: 'XB2'
520
+ description: "Internal Return. Invalid Account Set"
521
+ reason: "Invalid Account Set"
522
+ -
523
+ code: 'XB3'
524
+ description: "Internal Return. Invalid Acct Type"
525
+ reason: "Invalid Acct Type"
526
+ -
527
+ code: 'XB4'
528
+ description: "Internal Return. Invalid bank transit routing number"
529
+ reason: "Invalid bank transit routing number"
530
+ -
531
+ code: 'XB5'
532
+ description: "Internal Return. Invalid entry description"
533
+ reason: "Invalid entry description"
534
+ -
535
+ code: 'XB6'
536
+ description: "Internal Return. Invalid Payee"
537
+ reason: "Invalid Payee"
538
+ -
539
+ code: 'XB7'
540
+ description: "Internal Return. Invalid Check Date Format"
541
+ reason: "Invalid Check Date Format"
542
+ -
543
+ code: 'XB8'
544
+ description: "Internal Return. Invalid Send Date Format"
545
+ reason: "Invalid Send Date Format"
546
+ -
547
+ code: 'XB9'
548
+ description: "Internal Return. Invalid Service Code"
549
+ reason: "Invalid Service Code"
550
+ -
551
+ code: 'XBA'
552
+ description: "Internal Return. All subsequent activities (debits/credits) blocked"
553
+ reason: "All subsequent activities (debits/credits) blocked"
554
+ -
555
+ code: 'XBC'
556
+ description: "Internal Return. Subsequent credits blocked, allow debits only"
557
+ reason: "Subsequent credits blocked, allow debits only"
558
+ -
559
+ code: 'XBD'
560
+ description: "Internal Return. Subsequent debits blocked, allow credits only"
561
+ reason: "Subsequent debits blocked, allow credits only"
562
+ -
563
+ code: 'XBR'
564
+ description: "Internal Return. Blocks Remove, allow all transactions"
565
+ reason: "Blocks Remove, allow all transactions"
566
+ -
567
+ code: 'XC0'
568
+ description: "Internal Return. Invalid Transaction Type"
569
+ reason: "Invalid Transaction Type"
570
+ -
571
+ code: 'XC1'
572
+ description: "Internal Return. Item Cancelled"
573
+ reason: "Item Cancelled"
574
+ -
575
+ code: 'XC2'
576
+ description: "Internal Return. Item not found"
577
+ reason: "Item not found"
578
+ -
579
+ code: 'XC3'
580
+ description: "Internal Return. Maximum Resubmission Exceeded"
581
+ reason: "Maximum Resubmission Exceeded"
582
+ -
583
+ code: 'XC4'
584
+ description: "Internal Return. Missing Data"
585
+ reason: "Missing Data"
586
+ -
587
+ code: 'XC5'
588
+ description: "Internal Return. Possible Duplicate Exists"
589
+ reason: "Possible Duplicate Exists"
590
+ -
591
+ code: 'XC6'
592
+ description: "Internal Return. Post-Dated too far into the future"
593
+ reason: "Post-Dated too far into the future"
594
+ -
595
+ code: 'XC7'
596
+ description: "Internal Return. Stale Date"
597
+ reason: "Stale Date"
598
+ -
599
+ code: 'XC8'
600
+ description: "Internal Return. Stop Payment requested by Merchant"
601
+ reason: "Requested Stop Payment"
602
+ -
603
+ code: 'XC9'
604
+ description: "Internal Return. Stop Request Too Late"
605
+ reason: "Stop Request Too Late"
606
+ -
607
+ code: 'XD0'
608
+ description: "Internal Return. Stop Batch Request Too Late"
609
+ reason: "Stop Batch Request Too Late"
610
+ -
611
+ code: 'XD1'
612
+ description: "Internal Return. Invalid Length of Transaction line (EFUNDS STYLE)"
613
+ reason: "Invalid Length of Transaction line (EFUNDS STYLE)"
614
+ -
615
+ code: 'XD2'
616
+ description: "Internal Return. Invalid Location ID"
617
+ reason: "Invalid Location ID"
618
+ -
619
+ code: 'XD3'
620
+ description: "Internal Return. Invalid Amount Format"
621
+ reason: "Invalid Amount Format"
622
+ -
623
+ code: 'XD4'
624
+ description: "Internal Return. Missing/Invalid OPCode (Recurrent or Single) for WEB Trans"
625
+ reason: "Missing/Invalid OPCode (Recurrent or Single) for W"
626
+ -
627
+ code: 'XD5'
628
+ description: "Internal Return. RDFI is currently not an ACH participant"
629
+ reason: "RDFI is currently not an ACH participant"
630
+ -
631
+ code: 'XD6'
632
+ description: "Internal Return. Invalid Company Acct Type."
633
+ reason: "Invalid Company Acct Type"
634
+ -
635
+ code: 'XD7'
636
+ description: "Internal Return. RCK transactions are not allowed."
637
+ reason: "RCK transactions are not allowed"
638
+ -
639
+ code: 'XD8'
640
+ description: "Internal Return. PPD debits are not allowed."
641
+ reason: "PPD debits are not allowed"
642
+ -
643
+ code: 'XD9'
644
+ description: "Internal Return. PPD credits are not allowed."
645
+ reason: "PPD credits are not allowed"
646
+ -
647
+ code: 'XDA'
648
+ description: "Internal Return. CCD debits are not allowed."
649
+ reason: "CCD debits are not allowed"
650
+ -
651
+ code: 'XDB'
652
+ description: "Internal Return. CCD credits are not allowed."
653
+ reason: "CCD credits are not allowed"
654
+ -
655
+ code: 'XDC'
656
+ description: "Internal Return. POS transactions are not allowed."
657
+ reason: "POS transactions are not allowed"
658
+ -
659
+ code: 'XDD'
660
+ description: "Internal Return. POP transactions are not allowed."
661
+ reason: "POP transactions are not allowed"
662
+ -
663
+ code: 'XDE'
664
+ description: "Internal Return. ARC transactions are not allowed."
665
+ reason: "ARC transactions are not allowed"
666
+ -
667
+ code: 'XDF'
668
+ description: "Internal Return. TEL transactions are not allowed."
669
+ reason: "TEL transactions are not allowed"
670
+ -
671
+ code: 'XDG'
672
+ description: "Internal Return. WEB transactions are not allowed."
673
+ reason: "WEB transactions are not allowed"
674
+ -
675
+ code: 'XDH'
676
+ description: "Internal Return. Merchant exceeded the daily credit limit."
677
+ reason: "Merchant exceeded the daily credit limit"
678
+ -
679
+ code: 'XDI'
680
+ description: "Internal Return. Merchant exceeded the daily debit limit."
681
+ reason: "Merchant exceeded the daily debit limit"
682
+ -
683
+ code: 'XDZ'
684
+ description: "Internal Return. Zero amount not allowed for this service code."
685
+ reason: "Zero amount not allowed for this service code"
686
+ -
687
+ code: 'XRB'
688
+ description: "Internal Return. Not allowed to use FRB number."
689
+ reason: "Not allowed to use FRB number"
690
+ -
691
+ code: 'XSC'
692
+ description: "Internal Return. Subscription Cancelled"
693
+ reason: "Subscription Cancelled"
694
+ -
695
+ code: 'XSR'
696
+ description: "Internal Return. Subscription Restored"
697
+ reason: "Subscription Restored"
698
+ -
699
+ code: 'XST'
700
+ description: "Internal Return. Customer account temporarily suspended because of prior return."
701
+ reason: "Customer account temporarily suspended."
702
+ -
703
+ code: 'XSZ'
704
+ description: "Internal Return. Customer account permanently suspended because of prior return."
705
+ reason: "Customer account permanently suspended."
706
+ -
707
+ code: 'XU1'
708
+ description: "Internal Return. Invalid user parameter"
709
+ reason: "Invalid user parameter"
710
+ -
711
+ code: 'XU2'
712
+ description: "Internal Return. Invalid Company ID parameter"
713
+ reason: "Invalid Company ID parameter"
714
+ -
715
+ code: 'XV1'
716
+ description: "Credits in the batch file not authenticated by the VIP Processing system as required."
717
+ reason: "Credit not Authenticated by VIP System"
718
+ -
719
+ code: 'XZ1'
720
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
721
+ reason: "NOC violation. Please use corrected account number"
722
+ -
723
+ code: 'XZ2'
724
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
725
+ reason: "NOC violation. Please use corrected routing number"
726
+ -
727
+ code: 'XZ3'
728
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
729
+ reason: "NOC violation. Please use corr. acct and routing #"
730
+ -
731
+ code: 'XZ4'
732
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
733
+ reason: "NOC violation. Please use corr. acct holder name"
734
+ -
735
+ code: 'XZ5'
736
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
737
+ reason: "NOC violation. Please use corr. acct type (Ck/Sv)"
738
+ -
739
+ code: 'XZ6'
740
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
741
+ reason: "NOC violation. Please use corr. acct # and type"
742
+ -
743
+ code: 'XZ7'
744
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
745
+ reason: "NOC violation. Please use corr acct#, BTRN, type"
746
+ -
747
+ code: 'XZ9'
748
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
749
+ reason: "NOC violation. Please use corrected Individual ID"
750
+ -
751
+ code: 'XZA'
752
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
753
+ reason: "NOC violation. Please use corrected Company Name"
754
+ -
755
+ code: 'XZB'
756
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
757
+ reason: "NOC violation. Please use corrected Company ID"
758
+ -
759
+ code: 'XZC'
760
+ description: "Internal Return. Please honor the previous NOC and follow the suggested corrections before submitting the transaction."
761
+ reason: "NOC violation. Please use corr. Company Name & ID"