braintree 2.10.0 → 4.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +1 -1
  3. data/braintree.gemspec +24 -0
  4. data/lib/braintree/account_updater_daily_report.rb +20 -0
  5. data/lib/braintree/ach_mandate.rb +14 -0
  6. data/lib/braintree/add_on.rb +4 -0
  7. data/lib/braintree/add_on_gateway.rb +17 -0
  8. data/lib/braintree/address/country_names.rb +4 -1
  9. data/lib/braintree/address.rb +35 -43
  10. data/lib/braintree/address_gateway.rb +24 -11
  11. data/lib/braintree/advanced_search.rb +26 -11
  12. data/lib/braintree/apple_pay.rb +29 -0
  13. data/lib/braintree/apple_pay_card.rb +66 -0
  14. data/lib/braintree/apple_pay_gateway.rb +37 -0
  15. data/lib/braintree/apple_pay_options.rb +19 -0
  16. data/lib/braintree/authorization_adjustment.rb +23 -0
  17. data/lib/braintree/base_module.rb +11 -1
  18. data/lib/braintree/bin_data.rb +34 -0
  19. data/lib/braintree/client_token.rb +11 -0
  20. data/lib/braintree/client_token_gateway.rb +45 -0
  21. data/lib/braintree/configuration.rb +231 -39
  22. data/lib/braintree/connected_merchant_paypal_status_changed.rb +22 -0
  23. data/lib/braintree/connected_merchant_status_transitioned.rb +22 -0
  24. data/lib/braintree/credentials_parser.rb +44 -0
  25. data/lib/braintree/credit_card.rb +107 -132
  26. data/lib/braintree/credit_card_gateway.rb +90 -41
  27. data/lib/braintree/credit_card_verification.rb +90 -17
  28. data/lib/braintree/credit_card_verification_gateway.rb +87 -0
  29. data/lib/braintree/credit_card_verification_search.rb +20 -0
  30. data/lib/braintree/customer.rb +80 -118
  31. data/lib/braintree/customer_gateway.rb +66 -39
  32. data/lib/braintree/customer_search.rb +5 -2
  33. data/lib/braintree/customer_session_gateway.rb +194 -0
  34. data/lib/braintree/descriptor.rb +4 -2
  35. data/lib/braintree/digest.rb +16 -3
  36. data/lib/braintree/disbursement.rb +63 -0
  37. data/lib/braintree/discount.rb +4 -0
  38. data/lib/braintree/discount_gateway.rb +17 -0
  39. data/lib/braintree/dispute/evidence.rb +24 -0
  40. data/lib/braintree/dispute/paypal_message.rb +15 -0
  41. data/lib/braintree/dispute/status_history.rb +18 -0
  42. data/lib/braintree/dispute/transaction.rb +20 -0
  43. data/lib/braintree/dispute/transaction_details.rb +15 -0
  44. data/lib/braintree/dispute.rb +165 -0
  45. data/lib/braintree/dispute_gateway.rb +142 -0
  46. data/lib/braintree/dispute_search.rb +31 -0
  47. data/lib/braintree/document_upload.rb +37 -0
  48. data/lib/braintree/document_upload_gateway.rb +38 -0
  49. data/lib/braintree/enriched_customer_data.rb +21 -0
  50. data/lib/braintree/error_codes.rb +680 -15
  51. data/lib/braintree/error_result.rb +13 -6
  52. data/lib/braintree/errors.rb +5 -5
  53. data/lib/braintree/exceptions.rb +14 -20
  54. data/lib/braintree/exchange_rate.rb +13 -0
  55. data/lib/braintree/exchange_rate_quote.rb +24 -0
  56. data/lib/braintree/exchange_rate_quote_gateway.rb +35 -0
  57. data/lib/braintree/exchange_rate_quote_input.rb +21 -0
  58. data/lib/braintree/exchange_rate_quote_request.rb +18 -0
  59. data/lib/braintree/exchange_rate_quote_response.rb +18 -0
  60. data/lib/braintree/facilitated_details.rb +21 -0
  61. data/lib/braintree/facilitator_details.rb +20 -0
  62. data/lib/braintree/gateway.rb +104 -6
  63. data/lib/braintree/google_pay_card.rb +62 -0
  64. data/lib/braintree/granted_payment_instrument_update.rb +23 -0
  65. data/lib/braintree/graphql/enums/recommendations.rb +7 -0
  66. data/lib/braintree/graphql/enums/recommended_payment_option.rb +8 -0
  67. data/lib/braintree/graphql/inputs/create_customer_session_input.rb +35 -0
  68. data/lib/braintree/graphql/inputs/customer_recommendations_input.rb +41 -0
  69. data/lib/braintree/graphql/inputs/customer_session_input.rb +39 -0
  70. data/lib/braintree/graphql/inputs/phone_input.rb +32 -0
  71. data/lib/braintree/graphql/inputs/update_customer_session_input.rb +37 -0
  72. data/lib/braintree/graphql/types/customer_recommendations_payload.rb +32 -0
  73. data/lib/braintree/graphql/types/payment_options.rb +33 -0
  74. data/lib/braintree/graphql/unions/customer_recommendations.rb +34 -0
  75. data/lib/braintree/graphql_client.rb +50 -0
  76. data/lib/braintree/http.rb +119 -25
  77. data/lib/braintree/local_payment_completed/blik_alias.rb +23 -0
  78. data/lib/braintree/local_payment_completed.rb +28 -0
  79. data/lib/braintree/local_payment_expired.rb +21 -0
  80. data/lib/braintree/local_payment_funded.rb +22 -0
  81. data/lib/braintree/local_payment_reversed.rb +19 -0
  82. data/lib/braintree/merchant.rb +34 -0
  83. data/lib/braintree/merchant_account/address_details.rb +16 -0
  84. data/lib/braintree/merchant_account/business_details.rb +17 -0
  85. data/lib/braintree/merchant_account/funding_details.rb +18 -0
  86. data/lib/braintree/merchant_account/individual_details.rb +20 -0
  87. data/lib/braintree/merchant_account.rb +76 -0
  88. data/lib/braintree/merchant_account_gateway.rb +130 -0
  89. data/lib/braintree/merchant_gateway.rb +38 -0
  90. data/lib/braintree/meta_checkout_card.rb +90 -0
  91. data/lib/braintree/meta_checkout_token.rb +89 -0
  92. data/lib/braintree/modification.rb +16 -5
  93. data/lib/braintree/oauth_credentials.rb +22 -0
  94. data/lib/braintree/oauth_gateway.rb +73 -0
  95. data/lib/braintree/paginated_collection.rb +25 -0
  96. data/lib/braintree/paginated_result.rb +15 -0
  97. data/lib/braintree/payment_instrument_type.rb +18 -0
  98. data/lib/braintree/payment_method.rb +37 -0
  99. data/lib/braintree/payment_method_customer_data_updated_metadata.rb +24 -0
  100. data/lib/braintree/payment_method_gateway.rb +221 -0
  101. data/lib/braintree/payment_method_nonce.rb +49 -0
  102. data/lib/braintree/payment_method_nonce_details.rb +40 -0
  103. data/lib/braintree/payment_method_nonce_details_payer_info.rb +32 -0
  104. data/lib/braintree/payment_method_nonce_gateway.rb +38 -0
  105. data/lib/braintree/payment_method_parser.rb +29 -0
  106. data/lib/braintree/paypal_account.rb +60 -0
  107. data/lib/braintree/paypal_account_gateway.rb +73 -0
  108. data/lib/braintree/paypal_payment_resource.rb +22 -0
  109. data/lib/braintree/paypal_payment_resource_gateway.rb +36 -0
  110. data/lib/braintree/plan.rb +62 -0
  111. data/lib/braintree/plan_gateway.rb +117 -0
  112. data/lib/braintree/processor_response_types.rb +7 -0
  113. data/lib/braintree/resource_collection.rb +12 -5
  114. data/lib/braintree/revoked_payment_method_metadata.rb +22 -0
  115. data/lib/braintree/risk_data/liability_shift.rb +22 -0
  116. data/lib/braintree/risk_data.rb +29 -0
  117. data/lib/braintree/samsung_pay_card.rb +85 -0
  118. data/lib/braintree/sepa_direct_debit_account.rb +60 -0
  119. data/lib/braintree/sepa_direct_debit_account_gateway.rb +25 -0
  120. data/lib/braintree/sepa_direct_debit_account_nonce_details.rb +28 -0
  121. data/lib/braintree/settlement_batch_summary.rb +25 -0
  122. data/lib/braintree/settlement_batch_summary_gateway.rb +27 -0
  123. data/lib/braintree/sha256_digest.rb +13 -0
  124. data/lib/braintree/signature_service.rb +19 -0
  125. data/lib/braintree/subscription/status_details.rb +20 -0
  126. data/lib/braintree/subscription.rb +67 -47
  127. data/lib/braintree/subscription_gateway.rb +43 -16
  128. data/lib/braintree/subscription_search.rb +2 -2
  129. data/lib/braintree/successful_result.rb +30 -10
  130. data/lib/braintree/test/authentication_id.rb +21 -0
  131. data/lib/braintree/test/credit_card.rb +76 -0
  132. data/lib/braintree/test/merchant_account.rb +12 -0
  133. data/lib/braintree/test/nonce.rb +81 -0
  134. data/lib/braintree/test/transaction_amounts.rb +3 -5
  135. data/lib/braintree/test/venmo_sdk.rb +21 -0
  136. data/lib/braintree/test_transaction.rb +19 -0
  137. data/lib/braintree/testing_gateway.rb +43 -0
  138. data/lib/braintree/three_d_secure_info.rb +53 -0
  139. data/lib/braintree/transaction/address_details.rb +27 -5
  140. data/lib/braintree/transaction/apple_pay_details.rb +35 -0
  141. data/lib/braintree/transaction/credit_card_details.rb +55 -4
  142. data/lib/braintree/transaction/customer_details.rb +11 -3
  143. data/lib/braintree/transaction/disbursement_details.rb +28 -0
  144. data/lib/braintree/transaction/google_pay_details.rb +42 -0
  145. data/lib/braintree/transaction/installment/adjustment.rb +33 -0
  146. data/lib/braintree/transaction/installment.rb +28 -0
  147. data/lib/braintree/transaction/local_payment_details.rb +27 -0
  148. data/lib/braintree/transaction/meta_checkout_card_details.rb +55 -0
  149. data/lib/braintree/transaction/meta_checkout_token_details.rb +58 -0
  150. data/lib/braintree/transaction/package_details.rb +19 -0
  151. data/lib/braintree/transaction/payment_receipt/card_present_data.rb +36 -0
  152. data/lib/braintree/transaction/payment_receipt/merchant_address.rb +19 -0
  153. data/lib/braintree/transaction/payment_receipt.rb +31 -0
  154. data/lib/braintree/transaction/paypal_details.rb +40 -0
  155. data/lib/braintree/transaction/paypal_here_details.rb +23 -0
  156. data/lib/braintree/transaction/samsung_pay_card_details.rb +50 -0
  157. data/lib/braintree/transaction/sepa_direct_debit_account_details.rb +27 -0
  158. data/lib/braintree/transaction/status_details.rb +6 -2
  159. data/lib/braintree/transaction/subscription_details.rb +5 -2
  160. data/lib/braintree/transaction/us_bank_account_details.rb +22 -0
  161. data/lib/braintree/transaction/venmo_account_details.rb +17 -0
  162. data/lib/braintree/transaction/visa_checkout_card_details.rb +51 -0
  163. data/lib/braintree/transaction.rb +293 -150
  164. data/lib/braintree/transaction_gateway.rb +303 -59
  165. data/lib/braintree/transaction_line_item.rb +43 -0
  166. data/lib/braintree/transaction_line_item_gateway.rb +19 -0
  167. data/lib/braintree/transaction_review.rb +18 -0
  168. data/lib/braintree/transaction_search.rb +17 -9
  169. data/lib/braintree/unknown_payment_method.rb +26 -0
  170. data/lib/braintree/us_bank_account.rb +57 -0
  171. data/lib/braintree/us_bank_account_gateway.rb +17 -0
  172. data/lib/braintree/us_bank_account_verification.rb +89 -0
  173. data/lib/braintree/us_bank_account_verification_gateway.rb +51 -0
  174. data/lib/braintree/us_bank_account_verification_search.rb +19 -0
  175. data/lib/braintree/util.rb +91 -11
  176. data/lib/braintree/validation_error.rb +14 -5
  177. data/lib/braintree/validation_error_collection.rb +5 -5
  178. data/lib/braintree/venmo_account.rb +34 -0
  179. data/lib/braintree/venmo_profile_data.rb +25 -0
  180. data/lib/braintree/version.rb +2 -2
  181. data/lib/braintree/visa_checkout_card.rb +90 -0
  182. data/lib/braintree/webhook_notification.rb +146 -0
  183. data/lib/braintree/webhook_notification_gateway.rb +46 -0
  184. data/lib/braintree/webhook_testing.rb +7 -0
  185. data/lib/braintree/webhook_testing_gateway.rb +1239 -0
  186. data/lib/braintree/xml/generator.rb +18 -10
  187. data/lib/braintree/xml/libxml.rb +1 -1
  188. data/lib/braintree/xml/parser.rb +24 -36
  189. data/lib/braintree/xml/rexml.rb +6 -7
  190. data/lib/braintree/xml.rb +1 -2
  191. data/lib/braintree.rb +186 -52
  192. data/lib/ssl/api_braintreegateway_com.ca.crt +474 -0
  193. data/spec/fixtures/files/bt_logo.png +0 -0
  194. data/spec/fixtures/files/gif_extension_bt_logo.gif +0 -0
  195. data/spec/fixtures/files/malformed_pdf.pdf +1 -0
  196. data/spec/fixtures/files/too_long.pdf +0 -0
  197. data/spec/integration/braintree/add_on_spec.rb +46 -0
  198. data/spec/integration/braintree/address_spec.rb +101 -178
  199. data/spec/integration/braintree/advanced_search_spec.rb +100 -97
  200. data/spec/integration/braintree/apple_pay_spec.rb +63 -0
  201. data/spec/integration/braintree/braintree_gateway_spec.rb +72 -0
  202. data/spec/integration/braintree/client_api/client_token_spec.rb +407 -0
  203. data/spec/integration/braintree/client_api/spec_helper.rb +300 -0
  204. data/spec/integration/braintree/credit_card_spec.rb +885 -654
  205. data/spec/integration/braintree/credit_card_verification_search_spec.rb +193 -0
  206. data/spec/integration/braintree/credit_card_verification_spec.rb +473 -0
  207. data/spec/integration/braintree/customer_search_spec.rb +69 -21
  208. data/spec/integration/braintree/customer_session_spec.rb +143 -0
  209. data/spec/integration/braintree/customer_spec.rb +1437 -518
  210. data/spec/integration/braintree/disbursement_spec.rb +31 -0
  211. data/spec/integration/braintree/discount_spec.rb +34 -0
  212. data/spec/integration/braintree/dispute_search_spec.rb +165 -0
  213. data/spec/integration/braintree/dispute_spec.rb +333 -0
  214. data/spec/integration/braintree/document_upload_spec.rb +87 -0
  215. data/spec/integration/braintree/error_codes_spec.rb +3 -3
  216. data/spec/integration/braintree/exchange_rate_quote_spec.rb +97 -0
  217. data/spec/integration/braintree/graphql_client_spec.rb +72 -0
  218. data/spec/integration/braintree/http_spec.rb +106 -56
  219. data/spec/integration/braintree/merchant_account_spec.rb +603 -0
  220. data/spec/integration/braintree/merchant_spec.rb +227 -0
  221. data/spec/integration/braintree/oauth_spec.rb +225 -0
  222. data/spec/integration/braintree/package_tracking_spec.rb +130 -0
  223. data/spec/integration/braintree/payment_method_nonce_spec.rb +345 -0
  224. data/spec/integration/braintree/payment_method_spec.rb +2146 -0
  225. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +325 -0
  226. data/spec/integration/braintree/paypal_account_spec.rb +299 -0
  227. data/spec/integration/braintree/paypal_payment_resource_spec.rb +141 -0
  228. data/spec/integration/braintree/plan_spec.rb +136 -0
  229. data/spec/integration/braintree/samsung_pay_card_spec.rb +146 -0
  230. data/spec/integration/braintree/sepa_direct_debit_account_spec.rb +194 -0
  231. data/spec/integration/braintree/settlement_batch_summary_spec.rb +62 -0
  232. data/spec/integration/braintree/subscription_spec.rb +785 -431
  233. data/spec/integration/braintree/test/transaction_amounts_spec.rb +4 -4
  234. data/spec/integration/braintree/test_transaction_spec.rb +145 -0
  235. data/spec/integration/braintree/transaction_line_item_spec.rb +44 -0
  236. data/spec/integration/braintree/transaction_search_spec.rb +745 -156
  237. data/spec/integration/braintree/transaction_spec.rb +7452 -1288
  238. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +196 -0
  239. data/spec/integration/braintree/us_bank_account_spec.rb +113 -0
  240. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +178 -0
  241. data/spec/integration/braintree/us_bank_account_verification_spec.rb +240 -0
  242. data/spec/integration/braintree/visa_checkout_card_spec.rb +110 -0
  243. data/spec/integration/spec_helper.rb +61 -5
  244. data/spec/oauth_test_helper.rb +17 -0
  245. data/spec/script/httpsd.rb +6 -6
  246. data/spec/spec.opts +4 -0
  247. data/spec/spec_helper.rb +77 -21
  248. data/spec/ssl/certificate.crt +17 -0
  249. data/spec/ssl/geotrust_global.crt +20 -0
  250. data/spec/ssl/privateKey.key +15 -0
  251. data/spec/unit/braintree/address_spec.rb +27 -16
  252. data/spec/unit/braintree/apple_pay_card_spec.rb +133 -0
  253. data/spec/unit/braintree/base_module_spec.rb +4 -4
  254. data/spec/unit/braintree/client_token_spec.rb +37 -0
  255. data/spec/unit/braintree/configuration_spec.rb +293 -43
  256. data/spec/unit/braintree/credentials_parser_spec.rb +81 -0
  257. data/spec/unit/braintree/credit_card_spec.rb +138 -47
  258. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +56 -0
  259. data/spec/unit/braintree/credit_card_verification_search_spec.rb +79 -0
  260. data/spec/unit/braintree/credit_card_verification_spec.rb +132 -6
  261. data/spec/unit/braintree/customer_session_gateway_spec.rb +120 -0
  262. data/spec/unit/braintree/customer_spec.rb +196 -40
  263. data/spec/unit/braintree/digest_spec.rb +16 -3
  264. data/spec/unit/braintree/disbursement_spec.rb +131 -0
  265. data/spec/unit/braintree/dispute_search_spec.rb +66 -0
  266. data/spec/unit/braintree/dispute_spec.rb +479 -0
  267. data/spec/unit/braintree/document_upload_spec.rb +35 -0
  268. data/spec/unit/braintree/enriched_customer_data_spec.rb +41 -0
  269. data/spec/unit/braintree/error_result_spec.rb +11 -11
  270. data/spec/unit/braintree/errors_spec.rb +17 -17
  271. data/spec/unit/braintree/exchange_rate_quote_input_spec.rb +42 -0
  272. data/spec/unit/braintree/exchange_rate_quote_request_spec.rb +82 -0
  273. data/spec/unit/braintree/exchange_rate_quote_response_spec.rb +52 -0
  274. data/spec/unit/braintree/exchange_rate_quote_spec.rb +42 -0
  275. data/spec/unit/braintree/exchange_rate_spec.rb +23 -0
  276. data/spec/unit/braintree/google_pay_card_spec.rb +8 -0
  277. data/spec/unit/braintree/graphql/create_customer_session_input_spec.rb +81 -0
  278. data/spec/unit/braintree/graphql/customer_recommendations_input_spec.rb +110 -0
  279. data/spec/unit/braintree/graphql/customer_session_input_spec.rb +81 -0
  280. data/spec/unit/braintree/graphql/phone_input_spec.rb +51 -0
  281. data/spec/unit/braintree/graphql/update_customer_session_input_spec.rb +93 -0
  282. data/spec/unit/braintree/graphql_client_spec.rb +37 -0
  283. data/spec/unit/braintree/http_spec.rb +164 -2
  284. data/spec/unit/braintree/local_payment_completed_spec.rb +90 -0
  285. data/spec/unit/braintree/local_payment_expired_spec.rb +24 -0
  286. data/spec/unit/braintree/local_payment_funded_spec.rb +34 -0
  287. data/spec/unit/braintree/merchant_account_spec.rb +33 -0
  288. data/spec/unit/braintree/meta_checkout_card_details_spec.rb +60 -0
  289. data/spec/unit/braintree/meta_checkout_card_spec.rb +62 -0
  290. data/spec/unit/braintree/meta_checkout_token_details_spec.rb +63 -0
  291. data/spec/unit/braintree/meta_checkout_token_spec.rb +65 -0
  292. data/spec/unit/braintree/modification_spec.rb +7 -0
  293. data/spec/unit/braintree/package_tracking_spec.rb +77 -0
  294. data/spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb +45 -0
  295. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  296. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +51 -0
  297. data/spec/unit/braintree/payment_method_nonce_spec.rb +43 -0
  298. data/spec/unit/braintree/payment_method_spec.rb +135 -0
  299. data/spec/unit/braintree/paypal_account_spec.rb +53 -0
  300. data/spec/unit/braintree/paypal_payment_resource_spec.rb +125 -0
  301. data/spec/unit/braintree/resource_collection_spec.rb +44 -3
  302. data/spec/unit/braintree/risk_data/liability_shift.rb +26 -0
  303. data/spec/unit/braintree/risk_data_spec.rb +55 -0
  304. data/spec/unit/braintree/sepa_debit_account_nonce_details_spec.rb +29 -0
  305. data/spec/unit/braintree/sepa_debit_account_spec.rb +86 -0
  306. data/spec/unit/braintree/sha256_digest_spec.rb +11 -0
  307. data/spec/unit/braintree/signature_service_spec.rb +23 -0
  308. data/spec/unit/braintree/subscription_search_spec.rb +25 -18
  309. data/spec/unit/braintree/subscription_spec.rb +34 -7
  310. data/spec/unit/braintree/successful_result_spec.rb +9 -9
  311. data/spec/unit/braintree/three_d_secure_info_spec.rb +69 -0
  312. data/spec/unit/braintree/transaction/apple_pay_details_spec.rb +8 -0
  313. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +34 -6
  314. data/spec/unit/braintree/transaction/customer_details_spec.rb +3 -2
  315. data/spec/unit/braintree/transaction/deposit_details_spec.rb +18 -0
  316. data/spec/unit/braintree/transaction/google_pay_details_spec.rb +8 -0
  317. data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
  318. data/spec/unit/braintree/transaction/local_payment_details_spec.rb +36 -0
  319. data/spec/unit/braintree/transaction/meta_checkout_card_details_spec.rb +8 -0
  320. data/spec/unit/braintree/transaction/meta_checkout_token_details_spec.rb +8 -0
  321. data/spec/unit/braintree/transaction/payment_receipt_spec.rb +73 -0
  322. data/spec/unit/braintree/transaction/paypal_details_spec.rb +68 -0
  323. data/spec/unit/braintree/transaction/sepa_direct_debit_account_details_spec.rb +33 -0
  324. data/spec/unit/braintree/transaction/visa_checkout_card_details_spec.rb +8 -0
  325. data/spec/unit/braintree/transaction_gateway_spec.rb +150 -0
  326. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  327. data/spec/unit/braintree/transaction_spec.rb +366 -52
  328. data/spec/unit/braintree/unknown_payment_method_spec.rb +33 -0
  329. data/spec/unit/braintree/us_bank_account_spec.rb +13 -0
  330. data/spec/unit/braintree/us_bank_account_verification_search_spec.rb +60 -0
  331. data/spec/unit/braintree/us_bank_account_verification_spec.rb +98 -0
  332. data/spec/unit/braintree/util_spec.rb +199 -39
  333. data/spec/unit/braintree/validation_error_collection_spec.rb +336 -133
  334. data/spec/unit/braintree/validation_error_spec.rb +4 -4
  335. data/spec/unit/braintree/venmo_profile_data_spec.rb +43 -0
  336. data/spec/unit/braintree/visa_checkout_card_spec.rb +8 -0
  337. data/spec/unit/braintree/webhook_notification_spec.rb +977 -0
  338. data/spec/unit/braintree/xml/libxml_spec.rb +5 -5
  339. data/spec/unit/braintree/xml/parser_spec.rb +39 -5
  340. data/spec/unit/braintree/xml/rexml_spec.rb +5 -5
  341. data/spec/unit/braintree/xml_spec.rb +39 -32
  342. data/spec/unit/braintree_spec.rb +3 -2
  343. data/spec/unit/credit_card_details_spec.rb +8 -0
  344. metadata +314 -73
  345. data/README.rdoc +0 -80
  346. data/lib/braintree/test/credit_card_numbers.rb +0 -52
  347. data/lib/braintree/transparent_redirect.rb +0 -51
  348. data/lib/braintree/transparent_redirect_gateway.rb +0 -105
  349. data/lib/ssl/sandbox_braintreegateway_com.ca.crt +0 -19
  350. data/lib/ssl/www_braintreegateway_com.ca.crt +0 -202
  351. data/spec/hacks/tcp_socket.rb +0 -18
  352. data/spec/integration/braintree/transparent_redirect_spec.rb +0 -236
  353. data/spec/unit/braintree/transparent_redirect_spec.rb +0 -160
@@ -3,88 +3,260 @@ module Braintree
3
3
  # The constants should be used to check for a specific validation error in a ValidationErrorCollection.
4
4
  # The error messages returned from the server may change, but the codes will remain the same.
5
5
  module ErrorCodes
6
- # See http://www.braintreepaymentsolutions.com/docs/ruby/addresses/validations
7
6
  module Address
8
7
  CannotBeBlank = "81801"
8
+ CompanyIsInvalid = "91821"
9
9
  CompanyIsTooLong = "81802"
10
- CountryCodeAlpha2IsNotAccepted = "91814"
11
- CountryCodeAlpha3IsNotAccepted = "91816"
10
+ CountryCodeAlpha2IsNotAccepted = "91814"
11
+ CountryCodeAlpha3IsNotAccepted = "91816"
12
12
  CountryCodeNumericIsNotAccepted = "91817"
13
13
  CountryNameIsNotAccepted = "91803"
14
+ ExtendedAddressIsInvalid = "91823"
14
15
  ExtendedAddressIsTooLong = "81804"
16
+ FirstNameIsInvalid = "91819"
15
17
  FirstNameIsTooLong = "81805"
16
18
  InconsistentCountry = "91815"
19
+ IsInvalid = "91828"
20
+ LastNameIsInvalid = "91820"
17
21
  LastNameIsTooLong = "81806"
22
+ LocalityIsInvalid = "91824"
18
23
  LocalityIsTooLong = "81807"
19
24
  PostalCodeInvalidCharacters = "81813"
25
+ PostalCodeIsInvalid = "91826"
20
26
  PostalCodeIsRequired = "81808"
27
+ PostalCodeIsRequiredForCardBrandAndProcessor = "81828"
21
28
  PostalCodeIsTooLong = "81809"
29
+ RegionIsInvalid = "91825"
22
30
  RegionIsTooLong = "81810"
31
+ StateIsInvalidForSellerProtection = "81827"
32
+ StreetAddressIsInvalid = "91822"
23
33
  StreetAddressIsRequired = "81811"
24
34
  StreetAddressIsTooLong = "81812"
25
35
  TooManyAddressesPerCustomer = "91818"
26
36
  end
27
37
 
28
- # See http://www.braintreepaymentsolutions.com/docs/ruby/credit_cards/validations
38
+ module ApplePay
39
+ ApplePayCardsAreNotAccepted = "83501"
40
+ CannotUpdateApplePayCardUsingPaymentMethodNonce = "93507"
41
+ CertificateInvalid = "93517"
42
+ CertificateMismatch = "93519"
43
+ CryptogramIsRequired = "93511"
44
+ CustomerIdIsRequiredForVaulting = "83502"
45
+ DecryptionFailed = "83512"
46
+ Disabled = "93513"
47
+ ExpirationMonthIsRequired = "93509"
48
+ ExpirationYearIsRequired = "93510"
49
+ InvalidToken = "83520"
50
+ KeyMismatchStoringCertificate = "93522"
51
+ MerchantKeysAlreadyConfigured = "93515"
52
+ MerchantKeysNotConfigured = "93516"
53
+ MerchantNotConfigured = "93514"
54
+ NumberIsRequired = "93508"
55
+ PaymentMethodNonceCardTypeIsNotAccepted = "83518"
56
+ PaymentMethodNonceConsumed = "93504"
57
+ PaymentMethodNonceLocked = "93506"
58
+ PaymentMethodNonceUnknown = "93505"
59
+ PrivateKeyMismatch = "93521"
60
+ TokenIsInUse = "93503"
61
+ end
62
+
29
63
  module CreditCard
30
64
  BillingAddressConflict = "91701"
65
+ BillingAddressFormatIsInvalid = "91744"
31
66
  BillingAddressIdIsInvalid = "91702"
67
+ CannotUpdateCardUsingPaymentMethodNonce = "91735"
32
68
  CardholderNameIsTooLong = "81723"
33
69
  CreditCardTypeIsNotAccepted = "81703"
34
70
  CreditCardTypeIsNotAcceptedBySubscriptionMerchantAccount = "81718"
71
+ CurrencyCodeNotSupportedByMerchantAccount = "91760"
35
72
  CustomerIdIsInvalid = "91705"
36
73
  CustomerIdIsRequired = "91704"
37
74
  CvvIsInvalid = "81707"
38
75
  CvvIsRequired = "81706"
76
+ CvvVerificationFailed = "81736"
77
+ DuplicateCardExists = "81724"
78
+ DuplicateCardExistsForCustomer = "81763"
39
79
  ExpirationDateConflict = "91708"
40
80
  ExpirationDateIsInvalid = "81710"
41
81
  ExpirationDateIsRequired = "81709"
42
82
  ExpirationDateYearIsInvalid = "81711"
43
83
  ExpirationMonthIsInvalid = "81712"
44
84
  ExpirationYearIsInvalid = "81713"
45
- NumberHasInvalidLength = "81716"
85
+ InvalidParamsForCreditCardUpdate = "91745"
86
+ InvalidVenmoSDKPaymentMethodCode = "91727"
87
+ LimitExceededforDuplicatePaymentMethodCheckForCustomer = "81764"
88
+ NetworkTokenizationAttributeCryptogramIsRequired = "81762"
46
89
  NumberIsInvalid = "81715"
90
+ NumberIsProhibited = "81750"
47
91
  NumberIsRequired = "81714"
92
+ NumberLengthIsInvalid = "81716"
48
93
  NumberMustBeTestNumber = "81717"
49
- TokenInvalid = "91718"
94
+ PaymentMethodConflict = "81725"
95
+ PaymentMethodIsNotACreditCard = "91738"
96
+ PaymentMethodNonceCardTypeIsNotAccepted = "91734"
97
+ PaymentMethodNonceConsumed = "91731"
98
+ PaymentMethodNonceLocked = "91733"
99
+ PaymentMethodNonceUnknown = "91732"
100
+ PostalCodeVerificationFailed = "81737"
101
+ TokenFormatIsInvalid = "91718"
50
102
  TokenIsInUse = "91719"
51
103
  TokenIsNotAllowed = "91721"
52
104
  TokenIsRequired = "91722"
53
105
  TokenIsTooLong = "91720"
106
+ VenmoSDKPaymentMethodCodeCardTypeIsNotAccepted = "91726"
107
+ VerificationAccountTypeIsInvalid = "91757"
108
+ VerificationAccountTypeNotSupported = "91758"
109
+ VerificationNotSupportedOnThisMerchantAccount = "91730"
54
110
 
55
111
  module Options
56
112
  UpdateExistingTokenIsInvalid = "91723"
113
+ UpdateExistingTokenNotAllowed = "91729"
114
+ UseBillingForShippingDisabled = "91572"
115
+ VerificationAmountCannotBeNegative = "91739"
116
+ VerificationAmountFormatIsInvalid = "91740"
117
+ VerificationAmountIsTooLarge = "91752"
118
+ VerificationAmountNotSupportedByProcessor = "91741"
119
+ VerificationMerchantAccountCannotBeSubMerchantAccount = "91755"
120
+ VerificationMerchantAccountIdIsInvalid = "91728"
121
+ VerificationMerchantAccountIsForbidden = "91743"
122
+ VerificationMerchantAccountIsSuspended = "91742"
57
123
  end
58
124
  end
59
125
 
60
- # See http://www.braintreepaymentsolutions.com/docs/ruby/customers/validations
61
126
  module Customer
62
127
  CompanyIsTooLong = "81601"
63
128
  CustomFieldIsInvalid = "91602"
64
129
  CustomFieldIsTooLong = "81603"
65
- EmailIsInvalid = "81604"
130
+ EmailFormatIsInvalid = "81604"
66
131
  EmailIsRequired = "81606"
67
132
  EmailIsTooLong = "81605"
68
133
  FaxIsTooLong = "81607"
69
134
  FirstNameIsTooLong = "81608"
70
135
  IdIsInUse = "91609"
71
- IdIsInvaild = "91610" # Deprecated
72
136
  IdIsInvalid = "91610"
73
137
  IdIsNotAllowed = "91611"
74
138
  IdIsRequired = "91613"
75
139
  IdIsTooLong = "91612"
76
140
  LastNameIsTooLong = "81613"
77
141
  PhoneIsTooLong = "81614"
78
- WebsiteIsInvalid = "81616"
142
+ VaultedPaymentInstrumentNonceBelongsToDifferentCustomer = "91617"
143
+ WebsiteFormatIsInvalid = "81616"
79
144
  WebsiteIsTooLong = "81615"
80
145
  end
81
146
 
82
147
  module Descriptor
83
- PhoneFormatIsInvalid = "92202"
148
+ DynamicDescriptorsDisabled = "92203"
149
+ InternationalNameFormatIsInvalid = "92204"
150
+ InternationalPhoneFormatIsInvalid = "92205"
84
151
  NameFormatIsInvalid = "92201"
152
+ PhoneFormatIsInvalid = "92202"
153
+ UrlFormatIsInvalid = "92206"
154
+ end
155
+
156
+ module Dispute
157
+ CanOnlyAcceptOpenDispute = "95704"
158
+ CanOnlyAddEvidenceDocumentToDispute = "95703"
159
+ CanOnlyAddEvidenceToOpenDispute = "95701"
160
+ CanOnlyCreateEvidenceWithValidCategory = "95706"
161
+ CanOnlyFinalizeOpenDispute = "95705"
162
+ CanOnlyRemoveEvidenceFromOpenDispute = "95702"
163
+ DigitalGoodsMissingDownloadDate = "95721"
164
+ DigitalGoodsMissingEvidence = "95720"
165
+ EvidenceCategoryDocumentOnly = "95712"
166
+ EvidenceCategoryDuplicate = "95714"
167
+ EvidenceCategoryNotForReasonCode = "95713"
168
+ EvidenceCategoryTextOnly = "95711"
169
+ EvidenceContentARNTooLong = "95709"
170
+ EvidenceContentDateInvalid = "95707"
171
+ EvidenceContentEmailInvalid = "95715"
172
+ EvidenceContentPhoneTooLong = "95710"
173
+ EvidenceContentTooLong = "95708"
174
+ NonDisputedPriorTransactionEvidenceMissingARN = "95722"
175
+ NonDisputedPriorTransactionEvidenceMissingDate = "95723"
176
+ RecurringTransactionEvidenceMissingARN = "95725"
177
+ RecurringTransactionEvidenceMissingDate = "95724"
178
+ ValidEvidenceRequiredToFinalize = "95726"
179
+ end
180
+
181
+ module DocumentUpload
182
+ FileIsEmpty = "84906"
183
+ FileIsMalformedOrEncrypted = "84904"
184
+ FileIsTooLarge = "84902"
185
+ FileIsTooLong = "84905"
186
+ FileTypeIsInvalid = "84903"
187
+ KindIsInvalid = "84901"
188
+ end
189
+
190
+ module GooglePayCard
191
+ AndroidPayCardsAreNotAccepted = "83708"
192
+ end
193
+
194
+ module PayPalAccount
195
+ AuthExpired = "92911"
196
+ CannotHaveBothAccessTokenAndConsentCode = "82903"
197
+ CannotHaveFundingSourceWithoutAccessToken = "92912"
198
+ CannotUpdatePayPalAccountUsingPaymentMethodNonce = "92914"
199
+ CannotVaultOneTimeUsePayPalAccount = "82902"
200
+ ConsentCodeOrAccessTokenIsRequired = "82901"
201
+ CustomerIdIsRequiredForVaulting = "82905"
202
+ IncompletePayPalAccount = "82901"
203
+ InvalidFundingSourceSelection = "92913"
204
+ InvalidParamsForPayPalAccountUpdate = "92915"
205
+ PayPalAccountsAreNotAccepted = "82904"
206
+ PayPalCommunicationError = "92910"
207
+ PaymentMethodNonceConsumed = "92907"
208
+ PaymentMethodNonceLocked = "92909"
209
+ PaymentMethodNonceUnknown = "92908"
210
+ TokenIsInUse = "92906"
211
+ end
212
+
213
+ module PayPalPaymentResource
214
+ NonceExpired = "97301"
215
+ IdNotSupported = "97302"
216
+ NonceRequired = "97303"
217
+ InvalidEmail = "97304"
218
+ EmailTooLong = "97305"
219
+ ExpectedLineItemCollection = "97306"
220
+ ExpectedLineItemHash = "97307"
221
+ ExpectedLineItemDebit = "97308"
222
+ InvalidUnitAmount = "97309"
223
+ InvalidUnitTaxAmount = "97310"
224
+ IsoCodeRequired = "97311"
225
+ IsoCodeUnsupported = "97312"
226
+ ShippingFieldsMissing = "97313"
227
+ InvalidAmountBreakdown = "97314"
228
+ ExpectedShippingOptionCollection = "97315"
229
+ ShippingOptionsRequired = "97316"
230
+ ShippingOptionFieldsMissing = "97317"
231
+ InvalidShippingOptionType = "97318"
232
+ ShippingOptionIdReused = "97319"
233
+ TooManyShippingOptionsSelected = "97320"
234
+ ShippingOptionMustMatchBreakdown = "97321"
235
+ LineItemsShouldMatchTotal = "97322"
236
+ LineItemsTaxShouldMatchTotal = "97323"
237
+ PatchCallFailed = "97324"
238
+ InvalidAmount = "97325"
239
+ ShippingIdTooLong = "97326"
240
+ ShippingLabelTooLong = "97327"
241
+ ShippingFullNameTooLong = "97328"
242
+ ShippingAddressTooLong = "97329"
243
+ ShippingExtendedAddressTooLong = "97330"
244
+ ShippingLocalityTooLong = "97331"
245
+ ShippingRegionTooLong = "97332"
246
+ CountryCodeTooLong = "97333"
247
+ NationalNumberTooLong = "97334"
248
+ PostalCodeTooLong = "97335"
249
+ DescriptionTooLong = "97336"
250
+ CustomFieldTooLong = "97337"
251
+ OrderIdTooLong = "97338"
252
+ end
253
+
254
+ module SepaDirectDebitAccount
255
+ SepaDebitAccountPaymentMethodMandateTypeIsNotSupported = "87115"
256
+ SepaDebitAccountPaymentMethodCustomerIdIsInvalid = "87116"
257
+ SepaDebitAccountPaymentMethodCustomerIdIsRequired = "87117"
85
258
  end
86
259
 
87
- # See http://www.braintreepaymentsolutions.com/docs/ruby/subscriptions/validations
88
260
  module Subscription
89
261
  BillingDayOfMonthCannotBeUpdated = "91918"
90
262
  BillingDayOfMonthIsInvalid = "91914"
@@ -100,12 +272,20 @@ module Braintree
100
272
  InconsistentNumberOfBillingCycles = "91908"
101
273
  InconsistentStartDate = "91917"
102
274
  InvalidRequestFormat = "91921"
275
+ MerchantAccountDoesNotSupportInstrumentType = "91930"
103
276
  MerchantAccountIdIsInvalid = "91901"
277
+ MismatchCurrencyISOCode = "91923"
104
278
  NumberOfBillingCyclesCannotBeBlank = "91912"
105
279
  NumberOfBillingCyclesIsTooSmall = "91909"
106
280
  NumberOfBillingCyclesMustBeGreaterThanZero = "91907"
107
281
  NumberOfBillingCyclesMustBeNumeric = "91906"
282
+ PaymentMethodNonceCardTypeIsNotAccepted = "91924"
283
+ PaymentMethodNonceInstrumentTypeDoesNotSupportSubscriptions = "91929"
284
+ PaymentMethodNonceIsInvalid = "91925"
285
+ PaymentMethodNonceNotAssociatedWithCustomer = "91926"
286
+ PaymentMethodNonceUnvaultedCardIsNotAccepted = "91927"
108
287
  PaymentMethodTokenCardTypeIsNotAccepted = "91902"
288
+ PaymentMethodTokenInstrumentTypeDoesNotSupportSubscriptions = "91928"
109
289
  PaymentMethodTokenIsInvalid = "91903"
110
290
  PaymentMethodTokenNotAssociatedWithCustomer = "91905"
111
291
  PlanBillingFrequencyCannotBeUpdated = "91922"
@@ -129,10 +309,12 @@ module Braintree
129
309
  ExistingIdIsInvalid = "92011"
130
310
  ExistingIdIsRequired = "92012"
131
311
  IdToRemoveIsIncorrectKind = "92021"
312
+ IdToRemoveIsInvalid = "92025"
132
313
  IdToRemoveIsNotPresent = "92016"
133
314
  InconsistentNumberOfBillingCycles = "92018"
134
315
  InheritedFromIdIsInvalid = "92013"
135
316
  InheritedFromIdIsRequired = "92014"
317
+ Missing = "92024"
136
318
  NumberOfBillingCyclesCannotBeBlank = "92017"
137
319
  NumberOfBillingCyclesIsInvalid = "92005"
138
320
  NumberOfBillingCyclesMustBeGreaterThanZero = "92019"
@@ -142,51 +324,534 @@ module Braintree
142
324
  end
143
325
  end
144
326
 
145
- # See http://www.braintreepaymentsolutions.com/docs/ruby/transactions/validations
146
327
  module Transaction
328
+ AdjustmentAmountMustBeGreaterThanZero = "95605"
147
329
  AmountCannotBeNegative = "81501"
148
- AmountIsInvalid = "81503"
330
+ AmountDoesNotMatch3DSecureAmount = "91585"
331
+ AmountFormatIsInvalid = "81503" # Keep for backwards compatibility
332
+ AmountIsInvalid = "81503" # Keep for backwards compatibility
149
333
  AmountIsRequired = "81502"
150
334
  AmountIsTooLarge = "81528"
151
335
  AmountMustBeGreaterThanZero = "81531"
336
+ AmountNotSupportedByProcessor = "815193"
152
337
  BillingAddressConflict = "91530"
338
+ BillingPhoneNumberIsInvalid = "915206"
153
339
  CannotBeVoided = "91504"
340
+ CannotCancelRelease = "91562"
341
+ CannotCloneCredit = "91543"
342
+ CannotCloneMarketplaceTransaction = "915137"
343
+ CannotCloneTransactionWithPayPalAccount = "91573"
344
+ CannotCloneTransactionWithVaultCreditCard = "91540"
345
+ CannotCloneUnsuccessfulTransaction = "91542"
346
+ CannotCloneVoiceAuthorizations = "91541"
347
+ CannotHoldInEscrow = "91560"
348
+ CannotPartiallyRefundEscrowedTransaction = "91563"
154
349
  CannotRefundCredit = "91505"
350
+ CannotRefundSettlingTransaction = "91574"
155
351
  CannotRefundUnlessSettled = "91506"
352
+ CannotRefundWithPendingMerchantAccount = "91559"
156
353
  CannotRefundWithSuspendedMerchantAccount = "91538"
354
+ CannotReleaseFromEscrow = "91561"
355
+ CannotSimulateTransactionSettlement = "91575"
157
356
  CannotSubmitForSettlement = "91507"
357
+ CannotUpdateTransactionDetailsNotSubmittedForSettlement = "915129"
358
+ ChannelIsTooLong = "91550"
158
359
  CreditCardIsRequired = "91508"
360
+ CurrencyCodeNotSupportedByMerchantAccount = "915214"
159
361
  CustomFieldIsInvalid = "91526"
160
362
  CustomFieldIsTooLong = "81527"
161
363
  CustomerDefaultPaymentMethodCardTypeIsNotAccepted = "81509"
162
364
  CustomerDoesNotHaveCreditCard = "91511"
163
365
  CustomerIdIsInvalid = "91510"
366
+ DiscountAmountCannotBeNegative = "915160"
367
+ DiscountAmountFormatIsInvalid = "915159"
368
+ DiscountAmountIsTooLarge = "915161"
369
+ ExchangeRateQuoteIdTooLong = "915229"
370
+ FailedAuthAdjustmentAllowRetry = "95603"
371
+ FailedAuthAdjustmentHardDecline = "95602"
372
+ FinalAuthSubmitForSettlementForDifferentAmount = "95601"
164
373
  HasAlreadyBeenRefunded = "91512"
374
+ LineItemsExpected = "915158"
375
+ MerchantAccountDoesNotMatch3DSecureMerchantAccount = "91584"
376
+ MerchantAccountDoesNotSupportMOTO = "91558"
377
+ MerchantAccountDoesNotSupportRefunds = "91547"
378
+ MerchantAccountIdDoesNotMatchSubscription = "915180"
165
379
  MerchantAccountIdIsInvalid = "91513"
166
380
  MerchantAccountIsSuspended = "91514"
167
- MerchantAccountNameIsInvalid = "91513" # Deprecated
381
+ NoNetAmountToPerformAuthAdjustment = "95606"
168
382
  OrderIdIsTooLong = "91501"
383
+ PayPalAuthExpired = "91579"
384
+ PayPalNotEnabled = "91576"
385
+ PayPalVaultRecordMissingData = "91583"
386
+ PaymentInstrumentNotSupportedByMerchantAccount = "91577"
387
+ PaymentInstrumentTypeIsNotAccepted = "915101"
388
+ PaymentInstrumentWithExternalVaultIsInvalid = "915176"
169
389
  PaymentMethodConflict = "91515"
390
+ PaymentMethodConflictWithVenmoSDK = "91549"
170
391
  PaymentMethodDoesNotBelongToCustomer = "91516"
171
392
  PaymentMethodDoesNotBelongToSubscription = "91527"
393
+ PaymentMethodNonceCardTypeIsNotAccepted = "91567"
394
+ PaymentMethodNonceConsumed = "91564"
395
+ PaymentMethodNonceHasNoValidPaymentInstrumentType = "91569"
396
+ PaymentMethodNonceLocked = "91566"
397
+ PaymentMethodNonceUnknown = "91565"
172
398
  PaymentMethodTokenCardTypeIsNotAccepted = "91517"
173
399
  PaymentMethodTokenIsInvalid = "91518"
174
400
  ProcessorAuthorizationCodeCannotBeSet = "91519"
175
401
  ProcessorAuthorizationCodeIsInvalid = "81520"
402
+ ProcessorDoesNotSupportAuths = "915104"
403
+ ProcessorDoesNotSupportAuthAdjustment = "915222"
404
+ ProcessorDoesNotSupportCredits = "91546"
405
+ ProcessorDoesNotSupportIncrementalAuth = "915220"
406
+ ProcessorDoesNotSupportMotoForCardType = "915195"
407
+ ProcessorDoesNotSupportPartialAuthReversal = "915221"
408
+ ProcessorDoesNotSupportPartialSettlement = "915102"
409
+ ProcessorDoesNotSupportUpdatingDescriptor = "915108"
410
+ ProcessorDoesNotSupportUpdatingOrderId = "915107"
411
+ ProcessorDoesNotSupportUpdatingTransactionDetails = "915130"
412
+ ProcessorDoesNotSupportVoiceAuthorizations = "91545"
413
+ ProductSkuIsInvalid = "915202"
414
+ PurchaseOrderNumberIsInvalid = "91548"
176
415
  PurchaseOrderNumberIsTooLong = "91537"
177
416
  RefundAmountIsTooLarge = "91521"
417
+ RefundAuthHardDeclined = "915200"
418
+ RefundAuthSoftDeclined = "915201"
419
+ ScaExemptionInvalid = "915213"
420
+ ServiceFeeAmountCannotBeNegative = "91554"
421
+ ServiceFeeAmountFormatIsInvalid = "91555"
422
+ ServiceFeeAmountIsTooLarge = "91556"
423
+ ServiceFeeAmountNotAllowedOnMasterMerchantAccount = "91557"
424
+ ServiceFeeIsNotAllowedOnCredits = "91552"
425
+ ServiceFeeNotAcceptedForPayPal = "91578"
426
+ SettlementAmountIsLessThanServiceFeeAmount = "91551"
178
427
  SettlementAmountIsTooLarge = "91522"
428
+ ShippingAddressDoesntMatchCustomer = "91581"
429
+ ShippingAmountCannotBeNegative = "915163"
430
+ ShippingAmountFormatIsInvalid = "915162"
431
+ ShippingAmountIsTooLarge = "915164"
432
+ ShippingMethodIsInvalid = "915203"
433
+ ShippingPhoneNumberIsInvalid = "915204"
434
+ ShipsFromPostalCodeInvalidCharacters = "915167"
435
+ ShipsFromPostalCodeIsInvalid = "915166"
436
+ ShipsFromPostalCodeIsTooLong = "915165"
437
+ SubMerchantAccountRequiresServiceFeeAmount = "91553"
179
438
  SubscriptionDoesNotBelongToCustomer = "91529"
180
439
  SubscriptionIdIsInvalid = "91528"
181
440
  SubscriptionStatusMustBePastDue = "91531"
182
441
  TaxAmountCannotBeNegative = "81534"
183
442
  TaxAmountFormatIsInvalid = "81535"
443
+ TaxAmountIsRequiredForAibSwedish = "815224"
184
444
  TaxAmountIsTooLarge = "81536"
445
+ ThreeDSecureAuthenticationFailed = "81571"
446
+ ThreeDSecureAuthenticationIdDoesntMatchNonceThreeDSecureAuthentication = "915198"
447
+ ThreeDSecureAuthenticationIdIsInvalid = "915196"
448
+ ThreeDSecureAuthenticationIdWithThreeDSecurePassThruIsInvalid = "915199"
449
+ ThreeDSecureAuthenticationResponseIsInvalid = "915120"
450
+ ThreeDSecureCavvAlgorithmIsInvalid = "915122"
451
+ ThreeDSecureCavvIsRequired = "915116"
452
+ ThreeDSecureDirectoryResponseIsInvalid = "915121"
453
+ ThreeDSecureEciFlagIsInvalid = "915114"
454
+ ThreeDSecureEciFlagIsRequired = "915113"
455
+ ThreeDSecureMerchantAccountDoesNotSupportCardType = "915131"
456
+ ThreeDSecureThreeDSecureVersionIsInvalid = "915119"
457
+ ThreeDSecureTokenIsInvalid = "91568"
458
+ ThreeDSecureTransactionDataDoesntMatchVerify = "91570"
459
+ ThreeDSecureTransactionPaymentMethodDoesntMatchThreeDSecureAuthenticationPaymentMethod = "915197"
460
+ ThreeDSecureXidIsRequired = "915115"
461
+ TooManyLineItems = "915157"
462
+ TransactionIsNotEligibleForAdjustment = "915219"
463
+ TransactionMustBeInStateAuthorized = "915218"
464
+ TransactionSourceIsInvalid = "915133"
185
465
  TypeIsInvalid = "91523"
186
466
  TypeIsRequired = "91524"
467
+ UnsupportedVoiceAuthorization = "91539"
468
+ UsBankAccountNonceMustBePlaidVerified = "915171"
469
+ UsBankAccountNotVerified = "915172"
470
+
187
471
  module Options
472
+ SubmitForSettlementIsRequiredForCloning = "91544"
473
+ SubmitForSettlementIsRequiredForPayPalUnilateral = "91582"
188
474
  VaultIsDisabled = "91525"
475
+
476
+ module PayPal
477
+ CustomFieldTooLong = "91580"
478
+ end
479
+
480
+ module CreditCard
481
+ AccountTypeIsInvalid = "915184"
482
+ AccountTypeNotSupported = "915185"
483
+ AccountTypeDebitDoesNotSupportAuths = "915186"
484
+ end
485
+ end
486
+
487
+ module Industry
488
+ IndustryTypeIsInvalid = "93401"
489
+
490
+ module Lodging
491
+ AdvancedDepositIndicatorIsInvalid = "93440"
492
+ CheckInDateIsInvalid = "93404"
493
+ CheckOutDateIsInvalid = "93405"
494
+ CheckOutDateMustFollowCheckInDate = "93406"
495
+ EmptyData = "93402"
496
+ FireSafetyIndicatorIsInvalid = "93441"
497
+ FolioNumberIsInvalid = "93403"
498
+ NoShowIndicatorIsInvalid = "93439"
499
+ PropertyPhoneIsInvalid = "93442"
500
+ RoomRateFormatIsInvalid = "93434"
501
+ RoomRateIsTooLarge = "93435"
502
+ RoomRateMustBeGreaterThanZero = "93433"
503
+ RoomTaxFormatIsInvalid = "93437"
504
+ RoomTaxIsTooLarge = "93438"
505
+ RoomTaxMustBeGreaterThanZero = "93436"
506
+ UnknownDataField = "93407"
507
+ end
508
+
509
+ module TravelCruise
510
+ DepartureDateIsInvalid = "93411"
511
+ EmptyData = "93408"
512
+ LodgingCheckInDateIsInvalid = "93412"
513
+ LodgingCheckOutDateIsInvalid = "93413"
514
+ TravelPackageIsInvalid = "93410"
515
+ UnknownDataField = "93409"
516
+ end
517
+
518
+ module TravelFlight
519
+ CustomerCodeIsTooLong = "93416"
520
+ EmptyData = "93414"
521
+ FareAmountCannotBeNegative = "93417"
522
+ FareAmountFormatIsInvalid = "93418"
523
+ FareAmountIsTooLarge = "93419"
524
+ FeeAmountCannotBeNegative = "93420"
525
+ FeeAmountFormatIsInvalid = "93421"
526
+ FeeAmountIsTooLarge = "93422"
527
+ IssuedDateFormatIsInvalid = "93423"
528
+ IssuingCarrierCodeIsTooLong = "93424"
529
+ LegsExpected = "93431"
530
+ PassengerMiddleInitialIsTooLong = "93425"
531
+ RestrictedTicketIsRequired = "93426"
532
+ TaxAmountCannotBeNegative = "93427"
533
+ TaxAmountFormatIsInvalid = "93428"
534
+ TaxAmountIsTooLarge = "93429"
535
+ TicketNumberIsTooLong = "93430"
536
+ TooManyLegs = "93432"
537
+ UnknownDataField = "93415"
538
+ end
539
+
540
+ module Leg
541
+ module TravelFlight
542
+ ArrivalAirportCodeIsTooLong = "96301"
543
+ ArrivalTimeFormatIsInvalid = "96302"
544
+ CarrierCodeIsTooLong = "96303"
545
+ ConjunctionTicketIsTooLong = "96304"
546
+ CouponNumberIsTooLong = "96305"
547
+ DepartureAirportCodeIsTooLong = "96306"
548
+ DepartureTimeFormatIsInvalid = "96307"
549
+ ExchangeTicketIsTooLong = "96308"
550
+ FareAmountCannotBeNegative = "96309"
551
+ FareAmountFormatIsInvalid = "96310"
552
+ FareAmountIsTooLarge = "96311"
553
+ FareBasisCodeIsTooLong = "96312"
554
+ FeeAmountCannotBeNegative = "96313"
555
+ FeeAmountFormatIsInvalid = "96314"
556
+ FeeAmountIsTooLarge = "96315"
557
+ ServiceClassIsTooLong = "96316"
558
+ TaxAmountCannotBeNegative = "96317"
559
+ TaxAmountFormatIsInvalid = "96318"
560
+ TaxAmountIsTooLarge = "96319"
561
+ TicketNumberIsTooLong = "96320"
562
+ end
563
+ end
564
+
565
+ module AdditionalCharge
566
+ AmountFormatIsInvalid = "96604"
567
+ AmountIsRequired = "96606"
568
+ AmountIsTooLarge = "96605"
569
+ AmountMustBeGreaterThanZero = "96603"
570
+ KindIsInvalid = "96601"
571
+ KindMustBeUnique = "96602"
572
+ end
573
+ end
574
+
575
+ module ExternalVault
576
+ PreviousNetworkTransactionIdIsInvalid = "915179"
577
+ StatusIsInvalid = "915175"
578
+ StatusWithPreviousNetworkTransactionIdIsInvalid = "915177"
579
+ end
580
+ end
581
+
582
+ module TransactionLineItem
583
+ CommodityCodeIsTooLong = "95801"
584
+ DescriptionIsTooLong = "95803"
585
+ DiscountAmountCannotBeNegative = "95806"
586
+ DiscountAmountFormatIsInvalid = "95804"
587
+ DiscountAmountIsTooLarge = "95805"
588
+ KindIsInvalid = "95807"
589
+ KindIsRequired = "95808"
590
+ NameIsRequired = "95822"
591
+ NameIsTooLong = "95823"
592
+ ProductCodeIsTooLong = "95809"
593
+ QuantityFormatIsInvalid = "95810"
594
+ QuantityIsRequired = "95811"
595
+ QuantityIsTooLarge = "95812"
596
+ TaxAmountCannotBeNegative = "95829"
597
+ TaxAmountFormatIsInvalid = "95827"
598
+ TaxAmountIsTooLarge = "95828"
599
+ TotalAmountFormatIsInvalid = "95813"
600
+ TotalAmountIsRequired = "95814"
601
+ TotalAmountIsTooLarge = "95815"
602
+ TotalAmountMustBeGreaterThanZero = "95816"
603
+ UnitAmountFormatIsInvalid = "95817"
604
+ UnitAmountIsRequired = "95818"
605
+ UnitAmountIsTooLarge = "95819"
606
+ UnitAmountMustBeGreaterThanZero = "95820"
607
+ UnitOfMeasureIsTooLong = "95821"
608
+ UnitTaxAmountCannotBeNegative = "95826"
609
+ UnitTaxAmountFormatIsInvalid = "95824"
610
+ UnitTaxAmountIsTooLarge = "95825"
611
+ UPCCodeIsMissing = "95830"
612
+ UPCCodeIsTooLong = "95831"
613
+ UPCTypeIsMissing = "95832"
614
+ UPCTypeIsInvalid = "95833"
615
+ end
616
+
617
+ module Merchant
618
+ CountryCannotBeBlank = "83603"
619
+ CountryCodeAlpha2IsInvalid = "93607"
620
+ CountryCodeAlpha2IsNotAccepted = "93606"
621
+ CountryCodeAlpha3IsInvalid = "93605"
622
+ CountryCodeAlpha3IsNotAccepted = "93604"
623
+ CountryCodeNumericIsInvalid = "93609"
624
+ CountryCodeNumericIsNotAccepted = "93608"
625
+ CountryNameIsInvalid = "93611"
626
+ CountryNameIsNotAccepted = "93610"
627
+ CurrenciesAreInvalid = "93614"
628
+ CurrencyIsInvalid = "93618"
629
+ CurrencyIsRequired = "93617"
630
+ EmailFormatIsInvalid = "93602"
631
+ EmailIsRequired = "83601"
632
+ InconsistentCountry = "93612"
633
+ MerchantAccountExistsForCurrency = "93616"
634
+ MerchantAccountExistsForId = "93620"
635
+ MerchantAccountNotAuthOnboarded = "93621"
636
+ NoMerchantAccounts = "93619"
637
+ PaymentMethodsAreInvalid = "93613"
638
+ PaymentMethodsAreNotAllowed = "93615"
639
+ end
640
+
641
+ module MerchantAccount
642
+ CannotBeUpdated = "82674"
643
+ Declined = "82626"
644
+ DeclinedFailedKYC = "82623"
645
+ DeclinedMasterCardMatch = "82622"
646
+ DeclinedOFAC = "82621"
647
+ DeclinedSsnInvalid = "82624"
648
+ DeclinedSsnMatchesDeceased = "82625"
649
+ IdCannotBeUpdated = "82675"
650
+ IdFormatIsInvalid = "82603"
651
+ IdIsInUse = "82604"
652
+ IdIsNotAllowed = "82605"
653
+ IdIsTooLong = "82602"
654
+ MasterMerchantAccountIdCannotBeUpdated = "82676"
655
+ MasterMerchantAccountIdIsInvalid = "82607"
656
+ MasterMerchantAccountIdIsRequired = "82606"
657
+ MasterMerchantAccountMustBeActive = "82608"
658
+ TosAcceptedIsRequired = "82610"
659
+
660
+ module ApplicantDetails
661
+ AccountNumberIsInvalid = "82670"
662
+ AccountNumberIsRequired = "82614"
663
+ CompanyNameIsInvalid = "82631"
664
+ CompanyNameIsRequiredWithTaxId = "82633"
665
+ DateOfBirthIsInvalid = "82663"
666
+ DateOfBirthIsRequired = "82612"
667
+ Declined = "82626" # Keep for backwards compatibility
668
+ DeclinedFailedKYC = "82623" # Keep for backwards compatibility
669
+ DeclinedMasterCardMatch = "82622" # Keep for backwards compatibility
670
+ DeclinedOFAC = "82621" # Keep for backwards compatibility
671
+ DeclinedSsnInvalid = "82624" # Keep for backwards compatibility
672
+ DeclinedSsnMatchesDeceased = "82625" # Keep for backwards compatibility
673
+ EmailAddressIsInvalid = "82616"
674
+ EmailAddressIsRequired = "82665"
675
+ FirstNameIsInvalid = "82627"
676
+ FirstNameIsRequired = "82609"
677
+ LastNameIsInvalid = "82628"
678
+ LastNameIsRequired = "82611"
679
+ PhoneIsInvalid = "82636"
680
+ RoutingNumberIsInvalid = "82635"
681
+ RoutingNumberIsRequired = "82613"
682
+ SsnIsInvalid = "82615"
683
+ TaxIdIsInvalid = "82632"
684
+ TaxIdIsRequiredWithCompanyName = "82634"
685
+ TaxIdMustBeBlank = "82673"
686
+
687
+ module Address
688
+ LocalityIsRequired = "82618"
689
+ PostalCodeIsInvalid = "82630"
690
+ PostalCodeIsRequired = "82619"
691
+ RegionIsInvalid = "82664"
692
+ RegionIsRequired = "82620"
693
+ StreetAddressIsInvalid = "82629"
694
+ StreetAddressIsRequired = "82617"
695
+ end
696
+ end
697
+
698
+ module Individual
699
+ DateOfBirthIsInvalid = "82666"
700
+ DateOfBirthIsRequired = "82639"
701
+ EmailIsInvalid = "82643"
702
+ EmailIsRequired = "82667"
703
+ FirstNameIsInvalid = "82644"
704
+ FirstNameIsRequired = "82637"
705
+ LastNameIsInvalid = "82645"
706
+ LastNameIsRequired = "82638"
707
+ PhoneIsInvalid = "82656"
708
+ SsnIsInvalid = "82642"
709
+
710
+ module Address
711
+ LocalityIsRequired = "82658"
712
+ PostalCodeIsInvalid = "82662"
713
+ PostalCodeIsRequired = "82659"
714
+ RegionIsInvalid = "82668"
715
+ RegionIsRequired = "82660"
716
+ StreetAddressIsInvalid = "82661"
717
+ StreetAddressIsRequired = "82657"
718
+ end
719
+ end
720
+
721
+ module Business
722
+ DbaNameIsInvalid = "82646"
723
+ LegalNameIsInvalid = "82677"
724
+ LegalNameIsRequiredWithTaxId = "82669"
725
+ TaxIdIsInvalid = "82647"
726
+ TaxIdIsRequiredWithLegalName = "82648"
727
+ TaxIdMustBeBlank = "82672"
728
+ module Address
729
+ PostalCodeIsInvalid = "82686"
730
+ RegionIsInvalid = "82684"
731
+ StreetAddressIsInvalid = "82685"
732
+ end
733
+ end
734
+
735
+ module Funding
736
+ AccountNumberIsInvalid = "82671"
737
+ AccountNumberIsRequired = "82641"
738
+ DestinationIsInvalid = "82679"
739
+ DestinationIsRequired = "82678"
740
+ EmailIsInvalid = "82681"
741
+ EmailIsRequired = "82680"
742
+ MobilePhoneIsInvalid = "82683"
743
+ MobilePhoneIsRequired = "82682"
744
+ RoutingNumberIsInvalid = "82649"
745
+ RoutingNumberIsRequired = "82640"
746
+ end
747
+ end
748
+
749
+ module SettlementBatchSummary
750
+ CustomFieldIsInvalid = "82303"
751
+ SettlementDateIsInvalid = "82302"
752
+ SettlementDateIsRequired = "82301"
753
+ end
754
+
755
+ module ClientToken
756
+ CustomerDoesNotExist = "92804"
757
+ FailOnDuplicatePaymentMethodRequiresCustomerId = "92803"
758
+ FailOnDuplicatePaymentMethodForCustomerRequiresCustomerId = "92805"
759
+ InvalidDomainFormat = "92011"
760
+ MakeDefaultRequiresCustomerId = "92801"
761
+ MerchantAccountDoesNotExist = "92807"
762
+ ProxyMerchantDoesNotExist = "92805"
763
+ TooManyDomains = "92810"
764
+ UnsupportedVersion = "92806"
765
+ VerifyCardRequiresCustomerId = "92802"
766
+ end
767
+
768
+ module PaymentMethod
769
+ CannotForwardPaymentMethodType = "93106"
770
+ CustomerIdIsInvalid = "93105"
771
+ CustomerIdIsRequired = "93104"
772
+ NonceIsInvalid = "93102"
773
+ NonceIsRequired = "93103"
774
+ PaymentMethodNoLongerSupported = "93117"
775
+ PaymentMethodNonceConsumed = "93107"
776
+ PaymentMethodNonceLocked = "93109"
777
+ PaymentMethodNonceUnknown = "93108"
778
+ PaymentMethodParamsAreRequired = "93101"
779
+
780
+ module Options
781
+ UsBankAccountVerificationMethodIsInvalid = "93121"
189
782
  end
190
783
  end
784
+
785
+ module AuthorizationFingerprint
786
+ InvalidCreatedAt = "93204"
787
+ InvalidFormat = "93202"
788
+ InvalidPublicKey = "93205"
789
+ InvalidSignature = "93206"
790
+ MissingFingerprint = "93201"
791
+ OptionsNotAllowedWithoutCustomer = "93207"
792
+ SignatureRevoked = "93203"
793
+ end
794
+
795
+ module OAuth
796
+ InvalidGrant = "93801";
797
+ InvalidCredentials = "93802";
798
+ InvalidScope = "93803";
799
+ InvalidRequest = "93804";
800
+ UnsupportedGrantType = "93805";
801
+ end
802
+
803
+ module Verification
804
+ module Options
805
+ AccountTypeIsInvalid = "942184"
806
+ AccountTypeNotSupported = "942185"
807
+ AmountCannotBeNegative = "94201"
808
+ AmountFormatIsInvalid = "94202"
809
+ AmountIsTooLarge = "94207"
810
+ AmountNotSupportedByProcessor = "94203"
811
+ MerchantAccountCannotBeSubMerchantAccount = "94208"
812
+ MerchantAccountIdIsInvalid = "94204"
813
+ MerchantAccountIsForbidden = "94206"
814
+ MerchantAccountIsSuspended = "94205"
815
+ end
816
+
817
+ AmountDoesNotMatch3DSecureAmount = "94285"
818
+ MerchantAccountDoesNotSupport3DSecure = "942169"
819
+ MerchantAcountDoesNotMatch3DSecureMerchantAccount = "94284"
820
+ ThreeDSecureAuthenticationFailed = "94271"
821
+ ThreeDSecureAuthenticationIdDoesntMatchNonceThreeDSecureAuthentication = "942198"
822
+ ThreeDSecureAuthenticationIdIsInvalid = "942196"
823
+ ThreeDSecureAuthenticationIdWithThreeDSecurePassThruIsInvalid = "942199"
824
+ ThreeDSecureTokenIsInvalid = "94268"
825
+ ThreeDSecureTransactionPaymentMethodDoesntMatchThreeDSecureAuthenticationPaymentMethod = "942197"
826
+ ThreeDSecureVerificationDataDoesntMatchVerify = "94270"
827
+
828
+ module ThreeDSecurePassThru
829
+ AuthenticationResponseIsInvalid = "942120"
830
+ CavvAlgorithmIsInvalid = "942122"
831
+ CavvIsRequired = "942116"
832
+ DirectoryResponseIsInvalid = "942121"
833
+ EciFlagIsInvalid = "942114"
834
+ EciFlagIsRequired = "942113"
835
+ ThreeDSecureVersionIsInvalid = "942119"
836
+ ThreeDSecureVersionIsRequired = "942117"
837
+ end
838
+ end
839
+
840
+ module UsBankAccountVerification
841
+ AmountsDoNotMatch = "96103"
842
+ InvalidDepositAmounts = "96106"
843
+ MustBeMicroTransfersVerification = "96102"
844
+ NotConfirmable = "96101"
845
+ TooManyConfirmationAttempts = "96104"
846
+ UnableToConfirmDepositAmounts = "96105"
847
+ end
848
+
849
+ module RiskData
850
+ CustomerDeviceIdIsTooLong = "94702"
851
+ CustomerLocationZipInvalidCharacters = "94703"
852
+ CustomerLocationZipIsInvalid = "94704"
853
+ CustomerLocationZipIsTooLong = "94705"
854
+ CustomerTenureIsTooLong = "94706"
855
+ end
191
856
  end
192
857
  end