braintree 2.98.0 → 4.23.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 (308) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/braintree.gemspec +7 -4
  4. data/lib/braintree/account_updater_daily_report.rb +4 -4
  5. data/lib/braintree/ach_mandate.rb +1 -1
  6. data/lib/braintree/add_on_gateway.rb +1 -1
  7. data/lib/braintree/address.rb +7 -27
  8. data/lib/braintree/address_gateway.rb +8 -7
  9. data/lib/braintree/advanced_search.rb +11 -12
  10. data/lib/braintree/apple_pay.rb +4 -4
  11. data/lib/braintree/apple_pay_card.rb +18 -4
  12. data/lib/braintree/apple_pay_options.rb +4 -4
  13. data/lib/braintree/authorization_adjustment.rb +4 -4
  14. data/lib/braintree/base_module.rb +11 -1
  15. data/lib/braintree/bin_data.rb +10 -3
  16. data/lib/braintree/client_token.rb +1 -1
  17. data/lib/braintree/client_token_gateway.rb +4 -3
  18. data/lib/braintree/configuration.rb +35 -35
  19. data/lib/braintree/connected_merchant_paypal_status_changed.rb +2 -2
  20. data/lib/braintree/connected_merchant_status_transitioned.rb +2 -2
  21. data/lib/braintree/credit_card.rb +40 -86
  22. data/lib/braintree/credit_card_gateway.rb +58 -44
  23. data/lib/braintree/credit_card_verification.rb +39 -20
  24. data/lib/braintree/credit_card_verification_gateway.rb +35 -5
  25. data/lib/braintree/credit_card_verification_search.rb +2 -2
  26. data/lib/braintree/customer.rb +23 -88
  27. data/lib/braintree/customer_gateway.rb +17 -32
  28. data/lib/braintree/customer_search.rb +2 -2
  29. data/lib/braintree/descriptor.rb +1 -1
  30. data/lib/braintree/digest.rb +1 -1
  31. data/lib/braintree/disbursement.rb +7 -7
  32. data/lib/braintree/discount_gateway.rb +1 -1
  33. data/lib/braintree/dispute/evidence.rb +1 -1
  34. data/lib/braintree/{transaction/coinbase_details.rb → dispute/paypal_message.rb} +5 -6
  35. data/lib/braintree/dispute/{history_event.rb → status_history.rb} +3 -1
  36. data/lib/braintree/dispute/transaction.rb +3 -1
  37. data/lib/braintree/dispute/transaction_details.rb +1 -1
  38. data/lib/braintree/dispute.rb +47 -6
  39. data/lib/braintree/dispute_gateway.rb +5 -10
  40. data/lib/braintree/dispute_search.rb +8 -4
  41. data/lib/braintree/document_upload.rb +3 -3
  42. data/lib/braintree/document_upload_gateway.rb +3 -3
  43. data/lib/braintree/enriched_customer_data.rb +21 -0
  44. data/lib/braintree/error_codes.rb +217 -175
  45. data/lib/braintree/error_result.rb +2 -3
  46. data/lib/braintree/errors.rb +3 -3
  47. data/lib/braintree/exceptions.rb +6 -5
  48. data/lib/braintree/exchange_rate.rb +13 -0
  49. data/lib/braintree/exchange_rate_quote.rb +24 -0
  50. data/lib/braintree/exchange_rate_quote_gateway.rb +35 -0
  51. data/lib/braintree/exchange_rate_quote_input.rb +21 -0
  52. data/lib/braintree/exchange_rate_quote_request.rb +18 -0
  53. data/lib/braintree/exchange_rate_quote_response.rb +18 -0
  54. data/lib/braintree/facilitated_details.rb +1 -1
  55. data/lib/braintree/facilitator_details.rb +1 -1
  56. data/lib/braintree/gateway.rb +6 -12
  57. data/lib/braintree/{android_pay_card.rb → google_pay_card.rb} +18 -5
  58. data/lib/braintree/granted_payment_instrument_update.rb +2 -2
  59. data/lib/braintree/graphql_client.rb +14 -8
  60. data/lib/braintree/http.rb +9 -10
  61. data/lib/braintree/local_payment_completed/blik_alias.rb +23 -0
  62. data/lib/braintree/local_payment_completed.rb +10 -5
  63. data/lib/braintree/local_payment_expired.rb +21 -0
  64. data/lib/braintree/local_payment_funded.rb +22 -0
  65. data/lib/braintree/local_payment_reversed.rb +19 -0
  66. data/lib/braintree/merchant.rb +4 -4
  67. data/lib/braintree/merchant_account.rb +3 -3
  68. data/lib/braintree/merchant_account_gateway.rb +10 -8
  69. data/lib/braintree/merchant_gateway.rb +1 -1
  70. data/lib/braintree/meta_checkout_card.rb +89 -0
  71. data/lib/braintree/meta_checkout_token.rb +88 -0
  72. data/lib/braintree/modification.rb +4 -4
  73. data/lib/braintree/oauth_credentials.rb +4 -4
  74. data/lib/braintree/oauth_gateway.rb +5 -5
  75. data/lib/braintree/paginated_collection.rb +2 -2
  76. data/lib/braintree/paginated_result.rb +1 -1
  77. data/lib/braintree/payment_instrument_type.rb +14 -13
  78. data/lib/braintree/payment_method_customer_data_updated_metadata.rb +24 -0
  79. data/lib/braintree/payment_method_gateway.rb +52 -22
  80. data/lib/braintree/payment_method_nonce.rb +12 -7
  81. data/lib/braintree/payment_method_nonce_details.rb +40 -0
  82. data/lib/braintree/payment_method_nonce_details_payer_info.rb +32 -0
  83. data/lib/braintree/payment_method_nonce_gateway.rb +14 -3
  84. data/lib/braintree/payment_method_parser.rb +4 -7
  85. data/lib/braintree/paypal_account.rb +3 -2
  86. data/lib/braintree/paypal_account_gateway.rb +5 -5
  87. data/lib/braintree/plan.rb +22 -2
  88. data/lib/braintree/plan_gateway.rb +101 -1
  89. data/lib/braintree/processor_response_types.rb +3 -3
  90. data/lib/braintree/resource_collection.rb +10 -5
  91. data/lib/braintree/revoked_payment_method_metadata.rb +2 -2
  92. data/lib/braintree/risk_data/liability_shift.rb +22 -0
  93. data/lib/braintree/risk_data.rb +10 -3
  94. data/lib/braintree/samsung_pay_card.rb +8 -6
  95. data/lib/braintree/sepa_direct_debit_account.rb +60 -0
  96. data/lib/braintree/sepa_direct_debit_account_gateway.rb +25 -0
  97. data/lib/braintree/sepa_direct_debit_account_nonce_details.rb +28 -0
  98. data/lib/braintree/settlement_batch_summary.rb +2 -2
  99. data/lib/braintree/settlement_batch_summary_gateway.rb +1 -1
  100. data/lib/braintree/sha256_digest.rb +1 -1
  101. data/lib/braintree/subscription/status_details.rb +1 -1
  102. data/lib/braintree/subscription.rb +13 -13
  103. data/lib/braintree/subscription_gateway.rb +6 -6
  104. data/lib/braintree/subscription_search.rb +1 -1
  105. data/lib/braintree/successful_result.rb +5 -4
  106. data/lib/braintree/test/authentication_id.rb +21 -0
  107. data/lib/braintree/test/credit_card.rb +9 -10
  108. data/lib/braintree/test/merchant_account.rb +1 -1
  109. data/lib/braintree/test/nonce.rb +27 -20
  110. data/lib/braintree/test/transaction_amounts.rb +2 -3
  111. data/lib/braintree/test/venmo_sdk.rb +2 -0
  112. data/lib/braintree/testing_gateway.rb +1 -1
  113. data/lib/braintree/three_d_secure_info.rb +23 -11
  114. data/lib/braintree/transaction/address_details.rb +14 -1
  115. data/lib/braintree/transaction/apple_pay_details.rb +13 -10
  116. data/lib/braintree/transaction/credit_card_details.rb +8 -1
  117. data/lib/braintree/transaction/customer_details.rb +3 -2
  118. data/lib/braintree/transaction/disbursement_details.rb +2 -1
  119. data/lib/braintree/transaction/{android_pay_details.rb → google_pay_details.rb} +6 -1
  120. data/lib/braintree/transaction/installment/adjustment.rb +33 -0
  121. data/lib/braintree/transaction/installment.rb +28 -0
  122. data/lib/braintree/transaction/local_payment_details.rb +3 -0
  123. data/lib/braintree/transaction/meta_checkout_card_details.rb +52 -0
  124. data/lib/braintree/transaction/meta_checkout_token_details.rb +54 -0
  125. data/lib/braintree/transaction/package_details.rb +19 -0
  126. data/lib/braintree/transaction/payment_receipt/card_present_data.rb +36 -0
  127. data/lib/braintree/transaction/payment_receipt/merchant_address.rb +19 -0
  128. data/lib/braintree/transaction/payment_receipt.rb +31 -0
  129. data/lib/braintree/transaction/paypal_details.rb +5 -0
  130. data/lib/braintree/transaction/samsung_pay_card_details.rb +3 -1
  131. data/lib/braintree/transaction/sepa_direct_debit_account_details.rb +27 -0
  132. data/lib/braintree/transaction/status_details.rb +1 -1
  133. data/lib/braintree/transaction/subscription_details.rb +3 -1
  134. data/lib/braintree/transaction/us_bank_account_details.rb +2 -1
  135. data/lib/braintree/transaction/visa_checkout_card_details.rb +1 -1
  136. data/lib/braintree/transaction.rb +119 -128
  137. data/lib/braintree/transaction_gateway.rb +138 -64
  138. data/lib/braintree/transaction_line_item.rb +14 -11
  139. data/lib/braintree/transaction_line_item_gateway.rb +1 -1
  140. data/lib/braintree/transaction_review.rb +18 -0
  141. data/lib/braintree/transaction_search.rb +11 -7
  142. data/lib/braintree/unknown_payment_method.rb +2 -2
  143. data/lib/braintree/us_bank_account.rb +5 -5
  144. data/lib/braintree/us_bank_account_verification.rb +24 -16
  145. data/lib/braintree/us_bank_account_verification_gateway.rb +1 -1
  146. data/lib/braintree/us_bank_account_verification_search.rb +1 -1
  147. data/lib/braintree/util.rb +25 -10
  148. data/lib/braintree/validation_error.rb +1 -1
  149. data/lib/braintree/validation_error_collection.rb +3 -3
  150. data/lib/braintree/venmo_account.rb +4 -4
  151. data/lib/braintree/venmo_profile_data.rb +25 -0
  152. data/lib/braintree/version.rb +2 -2
  153. data/lib/braintree/visa_checkout_card.rb +8 -8
  154. data/lib/braintree/webhook_notification.rb +55 -33
  155. data/lib/braintree/webhook_notification_gateway.rb +9 -9
  156. data/lib/braintree/webhook_testing.rb +1 -1
  157. data/lib/braintree/webhook_testing_gateway.rb +569 -46
  158. data/lib/braintree/xml/generator.rb +6 -5
  159. data/lib/braintree/xml/libxml.rb +1 -1
  160. data/lib/braintree/xml/parser.rb +24 -37
  161. data/lib/braintree/xml/rexml.rb +6 -7
  162. data/lib/braintree/xml.rb +1 -1
  163. data/lib/braintree.rb +41 -24
  164. data/lib/ssl/api_braintreegateway_com.ca.crt +401 -168
  165. data/spec/integration/braintree/add_on_spec.rb +10 -10
  166. data/spec/integration/braintree/address_spec.rb +101 -178
  167. data/spec/integration/braintree/advanced_search_spec.rb +93 -93
  168. data/spec/integration/braintree/apple_pay_spec.rb +12 -12
  169. data/spec/integration/braintree/braintree_gateway_spec.rb +2 -1
  170. data/spec/integration/braintree/client_api/client_token_spec.rb +279 -62
  171. data/spec/integration/braintree/client_api/spec_helper.rb +99 -73
  172. data/spec/integration/braintree/credit_card_spec.rb +522 -821
  173. data/spec/integration/braintree/credit_card_verification_search_spec.rb +18 -18
  174. data/spec/integration/braintree/credit_card_verification_spec.rb +219 -30
  175. data/spec/integration/braintree/customer_search_spec.rb +28 -28
  176. data/spec/integration/braintree/customer_spec.rb +840 -757
  177. data/spec/integration/braintree/disbursement_spec.rb +2 -2
  178. data/spec/integration/braintree/discount_spec.rb +9 -9
  179. data/spec/integration/braintree/dispute_search_spec.rb +45 -9
  180. data/spec/integration/braintree/dispute_spec.rb +109 -82
  181. data/spec/integration/braintree/document_upload_spec.rb +29 -17
  182. data/spec/integration/braintree/error_codes_spec.rb +3 -3
  183. data/spec/integration/braintree/exchange_rate_quote_spec.rb +97 -0
  184. data/spec/integration/braintree/graphql_client_spec.rb +0 -2
  185. data/spec/integration/braintree/http_spec.rb +31 -33
  186. data/spec/integration/braintree/merchant_account_spec.rb +155 -156
  187. data/spec/integration/braintree/merchant_spec.rb +71 -192
  188. data/spec/integration/braintree/oauth_spec.rb +72 -72
  189. data/spec/integration/braintree/package_tracking_spec.rb +130 -0
  190. data/spec/integration/braintree/payment_method_nonce_spec.rb +173 -78
  191. data/spec/integration/braintree/payment_method_spec.rb +953 -501
  192. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +147 -234
  193. data/spec/integration/braintree/paypal_account_spec.rb +74 -72
  194. data/spec/integration/braintree/plan_spec.rb +96 -15
  195. data/spec/integration/braintree/samsung_pay_card_spec.rb +75 -73
  196. data/spec/integration/braintree/sepa_direct_debit_account_spec.rb +194 -0
  197. data/spec/integration/braintree/settlement_batch_summary_spec.rb +18 -18
  198. data/spec/integration/braintree/subscription_spec.rb +507 -513
  199. data/spec/integration/braintree/test/transaction_amounts_spec.rb +4 -4
  200. data/spec/integration/braintree/test_transaction_spec.rb +29 -29
  201. data/spec/integration/braintree/transaction_line_item_spec.rb +12 -6
  202. data/spec/integration/braintree/transaction_search_spec.rb +410 -217
  203. data/spec/integration/braintree/transaction_spec.rb +3252 -2102
  204. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +42 -278
  205. data/spec/integration/braintree/us_bank_account_spec.rb +36 -36
  206. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +25 -25
  207. data/spec/integration/braintree/us_bank_account_verification_spec.rb +41 -41
  208. data/spec/integration/braintree/visa_checkout_card_spec.rb +62 -62
  209. data/spec/integration/spec_helper.rb +22 -7
  210. data/spec/oauth_test_helper.rb +1 -1
  211. data/spec/script/httpsd.rb +6 -6
  212. data/spec/spec_helper.rb +15 -20
  213. data/spec/unit/braintree/address_spec.rb +9 -17
  214. data/spec/unit/braintree/apple_pay_card_spec.rb +110 -7
  215. data/spec/unit/braintree/base_module_spec.rb +4 -4
  216. data/spec/unit/braintree/client_token_spec.rb +6 -6
  217. data/spec/unit/braintree/configuration_spec.rb +84 -84
  218. data/spec/unit/braintree/credentials_parser_spec.rb +6 -6
  219. data/spec/unit/braintree/credit_card_spec.rb +91 -58
  220. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +56 -0
  221. data/spec/unit/braintree/credit_card_verification_search_spec.rb +10 -10
  222. data/spec/unit/braintree/credit_card_verification_spec.rb +40 -18
  223. data/spec/unit/braintree/customer_spec.rb +102 -57
  224. data/spec/unit/braintree/digest_spec.rb +5 -6
  225. data/spec/unit/braintree/disbursement_spec.rb +14 -14
  226. data/spec/unit/braintree/dispute_search_spec.rb +6 -2
  227. data/spec/unit/braintree/dispute_spec.rb +144 -66
  228. data/spec/unit/braintree/document_upload_spec.rb +8 -8
  229. data/spec/unit/braintree/enriched_customer_data_spec.rb +41 -0
  230. data/spec/unit/braintree/error_result_spec.rb +11 -11
  231. data/spec/unit/braintree/errors_spec.rb +17 -17
  232. data/spec/unit/braintree/exchange_rate_quote_input_spec.rb +42 -0
  233. data/spec/unit/braintree/exchange_rate_quote_request_spec.rb +82 -0
  234. data/spec/unit/braintree/exchange_rate_quote_response_spec.rb +52 -0
  235. data/spec/unit/braintree/exchange_rate_quote_spec.rb +42 -0
  236. data/spec/unit/braintree/exchange_rate_spec.rb +23 -0
  237. data/spec/unit/braintree/http_spec.rb +19 -17
  238. data/spec/unit/braintree/local_payment_completed_spec.rb +62 -8
  239. data/spec/unit/braintree/local_payment_expired_spec.rb +24 -0
  240. data/spec/unit/braintree/local_payment_funded_spec.rb +34 -0
  241. data/spec/unit/braintree/merchant_account_spec.rb +5 -5
  242. data/spec/unit/braintree/meta_checkout_card_details_spec.rb +60 -0
  243. data/spec/unit/braintree/meta_checkout_card_spec.rb +60 -0
  244. data/spec/unit/braintree/meta_checkout_token_details_spec.rb +63 -0
  245. data/spec/unit/braintree/meta_checkout_token_spec.rb +63 -0
  246. data/spec/unit/braintree/modification_spec.rb +1 -1
  247. data/spec/unit/braintree/package_tracking_spec.rb +77 -0
  248. data/spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb +45 -0
  249. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  250. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +51 -0
  251. data/spec/unit/braintree/payment_method_nonce_spec.rb +40 -0
  252. data/spec/unit/braintree/payment_method_spec.rb +20 -20
  253. data/spec/unit/braintree/paypal_account_spec.rb +16 -7
  254. data/spec/unit/braintree/resource_collection_spec.rb +34 -5
  255. data/spec/unit/braintree/risk_data/liability_shift.rb +26 -0
  256. data/spec/unit/braintree/risk_data_spec.rb +38 -8
  257. data/spec/unit/braintree/sepa_debit_account_nonce_details_spec.rb +29 -0
  258. data/spec/unit/braintree/sepa_debit_account_spec.rb +86 -0
  259. data/spec/unit/braintree/sha256_digest_spec.rb +1 -1
  260. data/spec/unit/braintree/signature_service_spec.rb +2 -2
  261. data/spec/unit/braintree/subscription_search_spec.rb +18 -18
  262. data/spec/unit/braintree/subscription_spec.rb +8 -8
  263. data/spec/unit/braintree/successful_result_spec.rb +6 -6
  264. data/spec/unit/braintree/three_d_secure_info_spec.rb +37 -17
  265. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +22 -6
  266. data/spec/unit/braintree/transaction/customer_details_spec.rb +3 -2
  267. data/spec/unit/braintree/transaction/deposit_details_spec.rb +4 -4
  268. data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
  269. data/spec/unit/braintree/transaction/local_payment_details_spec.rb +36 -0
  270. data/spec/unit/braintree/transaction/payment_receipt_spec.rb +73 -0
  271. data/spec/unit/braintree/transaction/paypal_details_spec.rb +63 -0
  272. data/spec/unit/braintree/transaction/sepa_direct_debit_account_details_spec.rb +33 -0
  273. data/spec/unit/braintree/transaction_gateway_spec.rb +150 -0
  274. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  275. data/spec/unit/braintree/transaction_spec.rb +221 -124
  276. data/spec/unit/braintree/unknown_payment_method_spec.rb +4 -4
  277. data/spec/unit/braintree/us_bank_account_spec.rb +2 -2
  278. data/spec/unit/braintree/us_bank_account_verification_search_spec.rb +7 -7
  279. data/spec/unit/braintree/us_bank_account_verification_spec.rb +12 -7
  280. data/spec/unit/braintree/util_spec.rb +78 -44
  281. data/spec/unit/braintree/validation_error_collection_spec.rb +62 -62
  282. data/spec/unit/braintree/validation_error_spec.rb +4 -4
  283. data/spec/unit/braintree/venmo_profile_data_spec.rb +43 -0
  284. data/spec/unit/braintree/webhook_notification_spec.rb +434 -197
  285. data/spec/unit/braintree/xml/libxml_spec.rb +5 -5
  286. data/spec/unit/braintree/xml/parser_spec.rb +27 -22
  287. data/spec/unit/braintree/xml/rexml_spec.rb +5 -5
  288. data/spec/unit/braintree/xml_spec.rb +38 -38
  289. data/spec/unit/braintree_spec.rb +2 -2
  290. metadata +91 -30
  291. data/lib/braintree/amex_express_checkout_card.rb +0 -38
  292. data/lib/braintree/coinbase_account.rb +0 -34
  293. data/lib/braintree/europe_bank_account.rb +0 -36
  294. data/lib/braintree/europe_bank_account_gateway.rb +0 -17
  295. data/lib/braintree/ideal_payment.rb +0 -61
  296. data/lib/braintree/ideal_payment_gateway.rb +0 -19
  297. data/lib/braintree/masterpass_card.rb +0 -81
  298. data/lib/braintree/settlement_batch.rb +0 -0
  299. data/lib/braintree/transaction/amex_express_checkout_details.rb +0 -21
  300. data/lib/braintree/transaction/ideal_payment_details.rb +0 -19
  301. data/lib/braintree/transaction/masterpass_card_details.rb +0 -47
  302. data/lib/braintree/transparent_redirect.rb +0 -40
  303. data/lib/braintree/transparent_redirect_gateway.rb +0 -105
  304. data/spec/hacks/tcp_socket.rb +0 -18
  305. data/spec/integration/braintree/coinbase_spec.rb +0 -34
  306. data/spec/integration/braintree/masterpass_card_spec.rb +0 -97
  307. data/spec/integration/braintree/transparent_redirect_spec.rb +0 -268
  308. data/spec/unit/braintree/transparent_redirect_spec.rb +0 -223
@@ -4,18 +4,18 @@ module Braintree
4
4
  include Braintree::Util::IdEquality
5
5
 
6
6
  module CreatedUsing
7
- FullInformation = 'full_information'
8
- Token = 'token'
9
- Unrecognized = 'unrecognized'
7
+ FullInformation = "full_information"
8
+ Token = "token"
9
+ Unrecognized = "unrecognized"
10
10
  end
11
11
 
12
12
  module EscrowStatus
13
- HoldPending = 'hold_pending'
14
- Held = 'held'
15
- ReleasePending = 'release_pending'
16
- Released = 'released'
17
- Refunded = 'refunded'
18
- Unrecognized = 'unrecognized'
13
+ HoldPending = "hold_pending"
14
+ Held = "held"
15
+ ReleasePending = "release_pending"
16
+ Released = "released"
17
+ Refunded = "refunded"
18
+ Unrecognized = "unrecognized"
19
19
  end
20
20
 
21
21
  module GatewayRejectionReason
@@ -24,27 +24,29 @@ module Braintree
24
24
  AVSAndCVV = "avs_and_cvv"
25
25
  CVV = "cvv"
26
26
  Duplicate = "duplicate"
27
+ ExcessiveRetry = "excessive_retry"
27
28
  Fraud = "fraud"
29
+ RiskThreshold = "risk_threshold"
28
30
  ThreeDSecure = "three_d_secure"
29
31
  TokenIssuance = "token_issuance"
30
32
  Unrecognized = "unrecognized"
31
33
  end
32
34
 
33
35
  module Status
34
- AuthorizationExpired = 'authorization_expired'
35
- Authorizing = 'authorizing'
36
- Authorized = 'authorized'
37
- GatewayRejected = 'gateway_rejected'
38
- Failed = 'failed'
39
- ProcessorDeclined = 'processor_declined'
40
- Settled = 'settled'
41
- SettlementConfirmed = 'settlement_confirmed'
42
- SettlementDeclined = 'settlement_declined'
43
- SettlementPending = 'settlement_pending'
44
- Settling = 'settling'
45
- SubmittedForSettlement = 'submitted_for_settlement'
46
- Voided = 'voided'
47
- Unrecognized = 'unrecognized'
36
+ AuthorizationExpired = "authorization_expired"
37
+ Authorizing = "authorizing"
38
+ Authorized = "authorized"
39
+ GatewayRejected = "gateway_rejected"
40
+ Failed = "failed"
41
+ ProcessorDeclined = "processor_declined"
42
+ Settled = "settled"
43
+ SettlementConfirmed = "settlement_confirmed"
44
+ SettlementDeclined = "settlement_declined"
45
+ SettlementPending = "settlement_pending"
46
+ Settling = "settling"
47
+ SubmittedForSettlement = "submitted_for_settlement"
48
+ Voided = "voided"
49
+ Unrecognized = "unrecognized"
48
50
 
49
51
  All = constants.map { |c| const_get(c) }
50
52
  end
@@ -75,9 +77,9 @@ module Braintree
75
77
  All = constants.map { |c| const_get(c) }
76
78
  end
77
79
 
78
- module Type # :nodoc:
79
- Credit = "credit" # :nodoc:
80
- Sale = "sale" # :nodoc:
80
+ module Type
81
+ Credit = "credit"
82
+ Sale = "sale"
81
83
 
82
84
  All = constants.map { |c| const_get(c) }
83
85
  end
@@ -89,11 +91,12 @@ module Braintree
89
91
  end
90
92
  end
91
93
 
94
+ attr_reader :ach_return_code
95
+ attr_reader :ach_return_responses
96
+ attr_reader :acquirer_reference_number
92
97
  attr_reader :add_ons
93
98
  attr_reader :additional_processor_response # The raw response from the processor.
94
- attr_reader :amex_express_checkout_details
95
99
  attr_reader :amount
96
- attr_reader :android_pay_details
97
100
  attr_reader :apple_pay_details
98
101
  attr_reader :authorization_adjustments
99
102
  attr_reader :authorization_expires_at
@@ -103,13 +106,13 @@ module Braintree
103
106
  attr_reader :avs_street_address_response_code
104
107
  attr_reader :billing_details
105
108
  attr_reader :channel
106
- attr_reader :coinbase_details
107
109
  attr_reader :created_at
108
110
  attr_reader :credit_card_details
109
111
  attr_reader :currency_iso_code
110
112
  attr_reader :custom_fields
111
113
  attr_reader :customer_details
112
114
  attr_reader :cvv_response_code
115
+ attr_reader :debit_network
113
116
  attr_reader :descriptor
114
117
  attr_reader :disbursement_details
115
118
  attr_reader :discount_amount
@@ -118,39 +121,57 @@ module Braintree
118
121
  attr_reader :escrow_status
119
122
  attr_reader :facilitated_details
120
123
  attr_reader :facilitator_details
124
+ attr_reader :foreign_retailer
121
125
  attr_reader :gateway_rejection_reason
126
+ attr_reader :google_pay_details
127
+ attr_reader :graphql_id
122
128
  attr_reader :id
123
- # NEXT_MAJOR_VERSION Remove this class as legacy Ideal has been removed/disabled in the Braintree Gateway
124
- # DEPRECATED If you're looking to accept iDEAL as a payment method contact accounts@braintreepayments.com for a solution.
125
- attr_reader :ideal_payment_details
129
+ attr_reader :installment_count
130
+ attr_reader :installments
126
131
  attr_reader :local_payment_details
127
- attr_reader :masterpass_card_details
128
132
  attr_reader :merchant_account_id
133
+ attr_reader :merchant_advice_code
134
+ attr_reader :merchant_advice_code_text
135
+ attr_reader :meta_checkout_card_details
136
+ attr_reader :meta_checkout_token_details
129
137
  attr_reader :network_response_code # Response code from the card network
130
138
  attr_reader :network_response_text # Response text from the card network
139
+ attr_reader :network_token_details
131
140
  attr_reader :network_transaction_id
132
141
  attr_reader :order_id
142
+ attr_reader :packages
133
143
  attr_reader :partial_settlement_transaction_ids
134
144
  attr_reader :payment_instrument_type
145
+ attr_reader :payment_receipt
135
146
  attr_reader :paypal_details
136
147
  attr_reader :paypal_here_details
137
148
  attr_reader :plan_id
138
- attr_reader :processor_authorization_code # Authorization code from the processor.
139
- attr_reader :processor_response_code # Response code from the processor.
140
- attr_reader :processor_response_text # Response text from the processor.
141
- attr_reader :processor_response_type # Response type from the processor.
142
- attr_reader :processor_settlement_response_code # Settlement response code from the processor.
143
- attr_reader :processor_settlement_response_text # Settlement response text from the processor.
149
+ attr_reader :processor_authorization_code
150
+ attr_reader :processor_response_code
151
+ attr_reader :processor_response_text
152
+ attr_reader :processor_response_type
153
+ attr_reader :processor_settlement_response_code
154
+ attr_reader :processor_settlement_response_text
155
+ attr_reader :product_sku
144
156
  attr_reader :purchase_order_number
145
157
  attr_reader :recurring
146
158
  attr_reader :refund_ids
159
+ attr_reader :refunded_installments
147
160
  attr_reader :refunded_transaction_id
161
+ attr_reader :retried
162
+ attr_reader :retried_transaction_id # the primary/parent transaction id of any retried transaction
163
+ attr_reader :retrieval_reference_number
164
+ attr_reader :retry_ids # all retried transactions ids for a primary transaction
148
165
  attr_reader :risk_data
149
166
  attr_reader :samsung_pay_card_details
167
+ attr_reader :sca_exemption_requested
168
+ attr_reader :sepa_direct_debit_account_details
169
+ attr_reader :sepa_direct_debit_return_code
150
170
  attr_reader :service_fee_amount
151
171
  attr_reader :settlement_batch_id
152
172
  attr_reader :shipping_amount
153
173
  attr_reader :shipping_details
174
+ attr_reader :shipping_tax_amount
154
175
  attr_reader :ships_from_postal_code
155
176
  attr_reader :status # See Transaction::Status
156
177
  attr_reader :status_history
@@ -159,13 +180,21 @@ module Braintree
159
180
  attr_reader :tax_amount
160
181
  attr_reader :tax_exempt
161
182
  attr_reader :three_d_secure_info
162
- attr_reader :type # Will either be "sale" or "credit"
183
+ attr_reader :type
163
184
  attr_reader :updated_at
164
185
  attr_reader :us_bank_account_details
165
186
  attr_reader :venmo_account_details
166
187
  attr_reader :visa_checkout_card_details
167
188
  attr_reader :voice_referral_number
168
189
 
190
+ def self.adjust_authorization(*args)
191
+ Configuration.gateway.transaction.adjust_authorization(*args)
192
+ end
193
+
194
+ def self.adjust_authorization!(*args)
195
+ Configuration.gateway.transaction.adjust_authorization!(*args)
196
+ end
197
+
169
198
  def self.create(*args)
170
199
  Configuration.gateway.transaction.create(*args)
171
200
  end
@@ -190,18 +219,6 @@ module Braintree
190
219
  Configuration.gateway.transaction.clone_transaction!(*args)
191
220
  end
192
221
 
193
- # Deprecated. Use Braintree::TransparentRedirect.confirm
194
- def self.create_from_transparent_redirect(*args)
195
- warn "[DEPRECATED] Transaction.create_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
196
- Configuration.gateway.transaction.create_from_transparent_redirect(*args)
197
- end
198
-
199
- # Deprecated. Use Braintree::TransparentRedirect.url
200
- def self.create_transaction_url
201
- warn "[DEPRECATED] Transaction.create_transaction_url is deprecated. Please use TransparentRedirect.url"
202
- Configuration.gateway.transaction.create_transaction_url
203
- end
204
-
205
222
  def self.credit(*args)
206
223
  Configuration.gateway.transaction.credit(*args)
207
224
  end
@@ -270,6 +287,14 @@ module Braintree
270
287
  return_object_or_raise(:transaction) { update_details(*args) }
271
288
  end
272
289
 
290
+ def self.package_tracking(*args)
291
+ Configuration.gateway.transaction.package_tracking(*args)
292
+ end
293
+
294
+ def self.package_tracking!(*args)
295
+ Configuration.gateway.transaction.package_tracking!(*args)
296
+ end
297
+
273
298
  def self.submit_for_partial_settlement(*args)
274
299
  Configuration.gateway.transaction.submit_for_partial_settlement(*args)
275
300
  end
@@ -286,46 +311,55 @@ module Braintree
286
311
  Configuration.gateway.transaction.void!(*args)
287
312
  end
288
313
 
289
- def initialize(gateway, attributes) # :nodoc:
314
+ # NEXT_MAJOR_VERSION remove SamsungPayCardDetails
315
+ def initialize(gateway, attributes)
290
316
  @gateway = gateway
291
317
  set_instance_variables_from_hash(attributes)
318
+
292
319
  @amount = Util.to_big_decimal(amount)
320
+ @apple_pay_details = ApplePayDetails.new(@apple_pay)
321
+ @billing_details = AddressDetails.new(@billing)
293
322
  @credit_card_details = CreditCardDetails.new(@credit_card)
294
- @service_fee_amount = Util.to_big_decimal(service_fee_amount)
295
- @subscription_details = SubscriptionDetails.new(@subscription)
323
+ @network_token_details = CreditCardDetails.new(@network_token)
324
+ @custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
296
325
  @customer_details = CustomerDetails.new(@customer)
297
- @billing_details = AddressDetails.new(@billing)
298
- @disbursement_details = DisbursementDetails.new(@disbursement_details)
299
- @shipping_details = AddressDetails.new(@shipping)
300
- @status_history = attributes[:status_history] ? attributes[:status_history].map { |s| StatusDetails.new(s) } : []
301
- @tax_amount = Util.to_big_decimal(tax_amount)
302
326
  @descriptor = Descriptor.new(@descriptor)
327
+ @disbursement_details = DisbursementDetails.new(@disbursement_details)
328
+ @google_pay_details = GooglePayDetails.new(@google_pay_card)
303
329
  @local_payment_details = LocalPaymentDetails.new(@local_payment)
330
+ @meta_checkout_card_details = MetaCheckoutCardDetails.new(attributes[:meta_checkout_card])
331
+ @meta_checkout_token_details = MetaCheckoutTokenDetails.new(attributes[:meta_checkout_token])
332
+ @payment_instrument_type = attributes[:payment_instrument_type]
333
+ @payment_receipt = PaymentReceipt.new(attributes[:payment_receipt]) if attributes[:payment_receipt]
304
334
  @paypal_details = PayPalDetails.new(@paypal)
305
335
  @paypal_here_details = PayPalHereDetails.new(@paypal_here)
306
- @apple_pay_details = ApplePayDetails.new(@apple_pay)
307
- @android_pay_details = AndroidPayDetails.new(@android_pay_card)
308
- @amex_express_checkout_details = AmexExpressCheckoutDetails.new(@amex_express_checkout_card)
336
+ @samsung_pay_card_details = SamsungPayCardDetails.new(attributes[:samsung_pay_card]) #Deprecated
337
+ @sca_exemption_requested = attributes[:sca_exemption_requested]
338
+ @sepa_direct_debit_account_details = SepaDirectDebitAccountDetails.new(@sepa_debit_account_detail)
339
+ @service_fee_amount = Util.to_big_decimal(service_fee_amount)
340
+ @packages = attributes[:shipments] ? attributes[:shipments].map { |pd| PackageDetails.new(pd) } : []
341
+ @shipping_details = AddressDetails.new(@shipping)
342
+ @status_history = attributes[:status_history] ? attributes[:status_history].map { |s| StatusDetails.new(s) } : []
343
+ @subscription_details = SubscriptionDetails.new(@subscription)
344
+ @tax_amount = Util.to_big_decimal(tax_amount)
309
345
  @venmo_account_details = VenmoAccountDetails.new(@venmo_account)
310
- @coinbase_details = CoinbaseDetails.new(@coinbase_account)
311
- disputes.map! { |attrs| Dispute._new(attrs) } if disputes
312
- @custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
313
- add_ons.map! { |attrs| AddOn._new(attrs) } if add_ons
314
- discounts.map! { |attrs| Discount._new(attrs) } if discounts
315
- @payment_instrument_type = attributes[:payment_instrument_type]
316
- @risk_data = RiskData.new(attributes[:risk_data]) if attributes[:risk_data]
346
+ @visa_checkout_card_details = VisaCheckoutCardDetails.new(attributes[:visa_checkout_card])
347
+
317
348
  @facilitated_details = FacilitatedDetails.new(attributes[:facilitated_details]) if attributes[:facilitated_details]
318
349
  @facilitator_details = FacilitatorDetails.new(attributes[:facilitator_details]) if attributes[:facilitator_details]
350
+ @risk_data = RiskData.new(attributes[:risk_data]) if attributes[:risk_data]
319
351
  @three_d_secure_info = ThreeDSecureInfo.new(attributes[:three_d_secure_info]) if attributes[:three_d_secure_info]
320
352
  @us_bank_account_details = UsBankAccountDetails.new(attributes[:us_bank_account]) if attributes[:us_bank_account]
321
- @ideal_payment_details = IdealPaymentDetails.new(attributes[:ideal_payment]) if attributes[:ideal_payment]
322
- @visa_checkout_card_details = VisaCheckoutCardDetails.new(attributes[:visa_checkout_card])
323
- @masterpass_card_details = MasterpassCardDetails.new(attributes[:masterpass_card])
324
- @samsung_pay_card_details = SamsungPayCardDetails.new(attributes[:samsung_pay_card])
353
+
354
+ add_ons.map! { |attrs| AddOn._new(attrs) } if add_ons
325
355
  authorization_adjustments.map! { |attrs| AuthorizationAdjustment._new(attrs) } if authorization_adjustments
356
+ discounts.map! { |attrs| Discount._new(attrs) } if discounts
357
+ disputes.map! { |attrs| Dispute._new(attrs) } if disputes
358
+ installments.map! { |attrs| Installment.new(attrs) } if installments
359
+ refunded_installments.map! { |attrs| Installment.new(attrs) } if refunded_installments
326
360
  end
327
361
 
328
- def inspect # :nodoc:
362
+ def inspect
329
363
  first = [:id, :type, :amount, :status]
330
364
  order = first + (self.class._attributes - first)
331
365
  nice_attributes = order.map do |attr|
@@ -342,53 +376,19 @@ module Braintree
342
376
  @gateway.transaction_line_item.find_all(id)
343
377
  end
344
378
 
345
- # Deprecated. Use Braintree::Transaction.refund
346
- def refund(amount = nil)
347
- warn "[DEPRECATED] refund as an instance method is deprecated. Please use Transaction.refund"
348
- result = @gateway.transaction.refund(id, amount)
349
-
350
- if result.success?
351
- SuccessfulResult.new(:new_transaction => result.transaction)
352
- else
353
- result
354
- end
355
- end
356
-
357
- # Returns true if the transaction has been refunded. False otherwise.
358
379
  def refunded?
359
380
  !@refund_id.nil?
360
381
  end
361
382
 
362
- # Returns true if the transaction has been disbursed. False otherwise.
363
383
  def disbursed?
364
384
  @disbursement_details.valid?
365
385
  end
366
386
 
367
- def refund_id
368
- warn "[DEPRECATED] Transaction.refund_id is deprecated. Please use Transaction.refund_ids"
369
- @refund_id
370
- end
371
-
372
- # Deprecated. Use Braintree::Transaction.submit_for_settlement
373
- def submit_for_settlement(amount = nil)
374
- warn "[DEPRECATED] submit_for_settlement as an instance method is deprecated. Please use Transaction.submit_for_settlement"
375
- result = @gateway.transaction.submit_for_settlement(id, amount)
376
- if result.success?
377
- copy_instance_variables_from_object result.transaction
378
- end
379
- result
380
- end
381
-
382
- # Deprecated. Use Braintree::Transaction.submit_for_settlement!
383
- def submit_for_settlement!(amount = nil)
384
- warn "[DEPRECATED] submit_for_settlement! as an instance method is deprecated. Please use Transaction.submit_for_settlement!"
385
- return_object_or_raise(:transaction) { submit_for_settlement(amount) }
386
- end
387
-
388
387
  # If this transaction was stored in the vault, or created from vault records,
389
388
  # vault_billing_address will return the associated Braintree::Address. Because the
390
389
  # vault billing address can be updated after the transaction was created, the attributes
391
390
  # on vault_billing_address may not match the attributes on billing_details.
391
+ # NEXT_MAJOR_VERSION these methods are not documented in the developer docs, remove
392
392
  def vault_billing_address
393
393
  return nil if billing_details.id.nil?
394
394
  @gateway.address.find(customer_details.id, billing_details.id)
@@ -398,6 +398,7 @@ module Braintree
398
398
  # vault_credit_card will return the associated Braintree::CreditCard. Because the
399
399
  # vault credit card can be updated after the transaction was created, the attributes
400
400
  # on vault_credit_card may not match the attributes on credit_card_details.
401
+ # NEXT_MAJOR_VERSION these methods are not documented in the developer docs, remove
401
402
  def vault_credit_card
402
403
  return nil if credit_card_details.token.nil?
403
404
  @gateway.credit_card.find(credit_card_details.token)
@@ -407,6 +408,7 @@ module Braintree
407
408
  # vault_customer will return the associated Braintree::Customer. Because the
408
409
  # vault customer can be updated after the transaction was created, the attributes
409
410
  # on vault_customer may not match the attributes on customer_details.
411
+ # NEXT_MAJOR_VERSION these methods are not documented in the developer docs, remove
410
412
  def vault_customer
411
413
  return nil if customer_details.id.nil?
412
414
  @gateway.customer.find(customer_details.id)
@@ -416,36 +418,25 @@ module Braintree
416
418
  # vault_shipping_address will return the associated Braintree::Address. Because the
417
419
  # vault shipping address can be updated after the transaction was created, the attributes
418
420
  # on vault_shipping_address may not match the attributes on shipping_details.
421
+ # NEXT_MAJOR_VERSION these methods are not documented in the developer docs, remove
419
422
  def vault_shipping_address
420
423
  return nil if shipping_details.id.nil?
421
424
  @gateway.address.find(customer_details.id, shipping_details.id)
422
425
  end
423
426
 
424
- # Deprecated. Use Braintree::Transaction.void
425
- def void
426
- warn "[DEPRECATED] void as an instance method is deprecated. Please use Transaction.void"
427
- result = @gateway.transaction.void(id)
428
- if result.success?
429
- copy_instance_variables_from_object result.transaction
430
- end
431
- result
432
- end
433
-
434
- # Deprecated. Use Braintree::Transaction.void!
435
- def void!
436
- warn "[DEPRECATED] void! as an instance method is deprecated. Please use Transaction.void!"
437
- return_object_or_raise(:transaction) { void }
427
+ def processed_with_network_token?
428
+ @processed_with_network_token
438
429
  end
439
430
 
440
431
  class << self
441
432
  protected :new
442
- def _new(*args) # :nodoc:
443
- self.new *args
433
+ def _new(*args)
434
+ self.new(*args)
444
435
  end
445
436
  end
446
437
 
447
- def self._attributes # :nodoc:
448
- [:amount, :created_at, :credit_card_details, :customer_details, :id, :status, :subscription_details, :type, :updated_at]
438
+ def self._attributes
439
+ [:amount, :created_at, :credit_card_details, :customer_details, :id, :status, :subscription_details, :type, :updated_at, :processed_with_network_token?]
449
440
  end
450
441
  end
451
442
  end