paypal-server-sdk 0.6.1 → 0.7.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 (291) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +34 -34
  3. data/README.md +19 -30
  4. data/lib/paypal_server_sdk/controllers/base_controller.rb +1 -1
  5. data/lib/paypal_server_sdk/controllers/orders_controller.rb +103 -148
  6. data/lib/paypal_server_sdk/controllers/payments_controller.rb +94 -73
  7. data/lib/paypal_server_sdk/controllers/vault_controller.rb +12 -12
  8. data/lib/paypal_server_sdk/exceptions/api_exception.rb +11 -0
  9. data/lib/paypal_server_sdk/exceptions/error_exception.rb +14 -0
  10. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +14 -0
  11. data/lib/paypal_server_sdk/models/activity_timestamps.rb +17 -6
  12. data/lib/paypal_server_sdk/models/address.rb +24 -9
  13. data/lib/paypal_server_sdk/models/amount_breakdown.rb +17 -0
  14. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +22 -9
  15. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +12 -0
  16. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +12 -0
  17. data/lib/paypal_server_sdk/models/apple_pay_card.rb +14 -0
  18. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +48 -6
  19. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +16 -0
  20. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +14 -0
  21. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +6 -2
  22. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +43 -7
  23. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +12 -0
  24. data/lib/paypal_server_sdk/models/apple_pay_request.rb +27 -13
  25. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +15 -0
  26. data/lib/paypal_server_sdk/models/assurance_details.rb +14 -0
  27. data/lib/paypal_server_sdk/models/authentication_response.rb +13 -0
  28. data/lib/paypal_server_sdk/models/authorization.rb +28 -9
  29. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +2 -2
  30. data/lib/paypal_server_sdk/models/authorization_status.rb +12 -6
  31. data/lib/paypal_server_sdk/models/authorization_status_details.rb +12 -0
  32. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +12 -0
  33. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +29 -9
  34. data/lib/paypal_server_sdk/models/avs_code.rb +102 -71
  35. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +19 -5
  36. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +18 -5
  37. data/lib/paypal_server_sdk/models/base_model.rb +76 -28
  38. data/lib/paypal_server_sdk/models/billing_cycle.rb +129 -0
  39. data/lib/paypal_server_sdk/models/bin_details.rb +18 -5
  40. data/lib/paypal_server_sdk/models/blik_experience_context.rb +17 -0
  41. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +12 -0
  42. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +12 -0
  43. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +15 -0
  44. data/lib/paypal_server_sdk/models/blik_payment_object.rb +22 -10
  45. data/lib/paypal_server_sdk/models/blik_payment_request.rb +24 -10
  46. data/lib/paypal_server_sdk/models/callback_configuration.rb +75 -0
  47. data/lib/paypal_server_sdk/models/callback_events.rb +27 -0
  48. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +22 -14
  49. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +15 -0
  50. data/lib/paypal_server_sdk/models/capture_request.rb +17 -0
  51. data/lib/paypal_server_sdk/models/capture_status.rb +10 -6
  52. data/lib/paypal_server_sdk/models/capture_status_details.rb +12 -0
  53. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +12 -0
  54. data/lib/paypal_server_sdk/models/captured_payment.rb +36 -10
  55. data/lib/paypal_server_sdk/models/card_attributes.rb +13 -0
  56. data/lib/paypal_server_sdk/models/card_attributes_response.rb +12 -0
  57. data/lib/paypal_server_sdk/models/card_authentication_response.rb +14 -2
  58. data/lib/paypal_server_sdk/models/card_brand.rb +29 -25
  59. data/lib/paypal_server_sdk/models/card_customer_information.rb +18 -5
  60. data/lib/paypal_server_sdk/models/card_experience_context.rb +12 -0
  61. data/lib/paypal_server_sdk/models/card_from_request.rb +12 -0
  62. data/lib/paypal_server_sdk/models/{card_response_entity.rb → card_payment_token_entity.rb} +37 -15
  63. data/lib/paypal_server_sdk/models/card_request.rb +32 -17
  64. data/lib/paypal_server_sdk/models/card_response.rb +43 -2
  65. data/lib/paypal_server_sdk/models/{portable_postal_address_medium_grained.rb → card_response_address.rb} +43 -23
  66. data/lib/paypal_server_sdk/models/card_stored_credential.rb +23 -7
  67. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +13 -5
  68. data/lib/paypal_server_sdk/models/card_type.rb +5 -5
  69. data/lib/paypal_server_sdk/models/card_vault_response.rb +13 -0
  70. data/lib/paypal_server_sdk/models/card_verification.rb +16 -3
  71. data/lib/paypal_server_sdk/models/card_verification_details.rb +27 -11
  72. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +12 -0
  73. data/lib/paypal_server_sdk/models/card_verification_status.rb +23 -0
  74. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +10 -2
  75. data/lib/paypal_server_sdk/models/cobranded_card.rb +13 -0
  76. data/lib/paypal_server_sdk/models/confirm_order_request.rb +15 -12
  77. data/lib/paypal_server_sdk/models/{customer_request.rb → customer.rb} +18 -4
  78. data/lib/paypal_server_sdk/models/customer_information.rb +17 -5
  79. data/lib/paypal_server_sdk/models/customer_response.rb +76 -0
  80. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +21 -4
  81. data/lib/paypal_server_sdk/models/cvv_code.rb +35 -27
  82. data/lib/paypal_server_sdk/models/disbursement_mode.rb +5 -2
  83. data/lib/paypal_server_sdk/models/dispute_category.rb +2 -2
  84. data/lib/paypal_server_sdk/models/eci_flag.rb +6 -8
  85. data/lib/paypal_server_sdk/models/enrollment_status.rb +11 -8
  86. data/lib/paypal_server_sdk/models/eps_payment_object.rb +17 -5
  87. data/lib/paypal_server_sdk/models/eps_payment_request.rb +18 -5
  88. data/lib/paypal_server_sdk/models/error_details.rb +15 -0
  89. data/lib/paypal_server_sdk/models/exchange_rate.rb +14 -0
  90. data/lib/paypal_server_sdk/models/experience_context.rb +15 -0
  91. data/lib/paypal_server_sdk/models/fulfillment_type.rb +9 -4
  92. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +17 -5
  93. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +18 -5
  94. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +8 -2
  95. data/lib/paypal_server_sdk/models/google_pay_card.rb +17 -3
  96. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +16 -0
  97. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +17 -0
  98. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +1 -1
  99. data/lib/paypal_server_sdk/models/google_pay_request.rb +22 -17
  100. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +14 -0
  101. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +18 -5
  102. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +18 -5
  103. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +18 -5
  104. data/lib/paypal_server_sdk/models/item.rb +17 -0
  105. data/lib/paypal_server_sdk/models/item_category.rb +6 -3
  106. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +12 -0
  107. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +17 -0
  108. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +3 -3
  109. data/lib/paypal_server_sdk/models/line_item.rb +21 -0
  110. data/lib/paypal_server_sdk/models/link_description.rb +12 -0
  111. data/lib/paypal_server_sdk/models/money.rb +16 -4
  112. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +18 -5
  113. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +18 -5
  114. data/lib/paypal_server_sdk/models/name.rb +12 -0
  115. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +14 -0
  116. data/lib/paypal_server_sdk/models/network_token.rb +15 -0
  117. data/lib/paypal_server_sdk/models/network_transaction_reference.rb +14 -0
  118. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +15 -3
  119. data/lib/paypal_server_sdk/models/one_time_charge.rb +118 -0
  120. data/lib/paypal_server_sdk/models/order.rb +22 -19
  121. data/lib/paypal_server_sdk/models/order_application_context.rb +40 -25
  122. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +10 -3
  123. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +14 -10
  124. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +11 -6
  125. data/lib/paypal_server_sdk/models/order_authorize_request.rb +12 -0
  126. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +20 -9
  127. data/lib/paypal_server_sdk/models/order_authorize_response.rb +22 -19
  128. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +14 -0
  129. data/lib/paypal_server_sdk/models/order_capture_request.rb +12 -0
  130. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +20 -9
  131. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +21 -8
  132. data/lib/paypal_server_sdk/models/order_request.rb +18 -4
  133. data/lib/paypal_server_sdk/models/order_status.rb +19 -6
  134. data/lib/paypal_server_sdk/models/order_tracker_item.rb +15 -0
  135. data/lib/paypal_server_sdk/models/order_tracker_request.rb +22 -5
  136. data/lib/paypal_server_sdk/models/order_tracker_response.rb +19 -6
  137. data/lib/paypal_server_sdk/models/order_tracker_status.rb +5 -2
  138. data/lib/paypal_server_sdk/models/order_update_callback_error_response.rb +89 -0
  139. data/lib/paypal_server_sdk/models/order_update_callback_error_response_details.rb +81 -0
  140. data/lib/paypal_server_sdk/models/order_update_callback_request.rb +111 -0
  141. data/lib/paypal_server_sdk/models/order_update_callback_response.rb +72 -0
  142. data/lib/paypal_server_sdk/models/order_update_callback_shipping_address.rb +107 -0
  143. data/lib/paypal_server_sdk/models/order_update_callback_shipping_option.rb +93 -0
  144. data/lib/paypal_server_sdk/models/{capture.rb → orders_capture.rb} +46 -22
  145. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +51 -0
  146. data/lib/paypal_server_sdk/models/p24_payment_object.rb +24 -10
  147. data/lib/paypal_server_sdk/models/p24_payment_request.rb +22 -10
  148. data/lib/paypal_server_sdk/models/pa_res_status.rb +16 -16
  149. data/lib/paypal_server_sdk/models/participant_metadata.rb +64 -0
  150. data/lib/paypal_server_sdk/models/patch.rb +20 -10
  151. data/lib/paypal_server_sdk/models/patch_op.rb +43 -6
  152. data/lib/paypal_server_sdk/models/payee_base.rb +17 -5
  153. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +4 -2
  154. data/lib/paypal_server_sdk/models/payer.rb +20 -5
  155. data/lib/paypal_server_sdk/models/payer_base.rb +16 -5
  156. data/lib/paypal_server_sdk/models/payment_advice_code.rb +53 -8
  157. data/lib/paypal_server_sdk/models/payment_authorization.rb +32 -11
  158. data/lib/paypal_server_sdk/models/payment_collection.rb +16 -2
  159. data/lib/paypal_server_sdk/models/payment_initiator.rb +5 -2
  160. data/lib/paypal_server_sdk/models/payment_instruction.rb +16 -0
  161. data/lib/paypal_server_sdk/models/payment_method_preference.rb +14 -0
  162. data/lib/paypal_server_sdk/models/payment_source.rb +25 -9
  163. data/lib/paypal_server_sdk/models/payment_source_response.rb +19 -0
  164. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +12 -0
  165. data/lib/paypal_server_sdk/models/payment_token_request.rb +17 -3
  166. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +17 -22
  167. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +12 -0
  168. data/lib/paypal_server_sdk/models/payment_token_response.rb +18 -3
  169. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +18 -14
  170. data/lib/paypal_server_sdk/models/payment_token_status.rb +36 -0
  171. data/lib/paypal_server_sdk/models/payments_capture.rb +252 -0
  172. data/lib/paypal_server_sdk/models/payments_payment_advice_code.rb +42 -0
  173. data/lib/paypal_server_sdk/models/payments_processor_response.rb +98 -0
  174. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +11 -3
  175. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +9 -4
  176. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +38 -8
  177. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +7 -3
  178. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +7 -3
  179. data/lib/paypal_server_sdk/models/paypal_wallet.rb +41 -11
  180. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +6 -2
  181. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +12 -0
  182. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +12 -0
  183. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +31 -0
  184. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +18 -5
  185. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +18 -5
  186. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +45 -12
  187. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +39 -7
  188. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +98 -0
  189. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +18 -1
  190. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +13 -0
  191. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +8 -3
  192. data/lib/paypal_server_sdk/models/phone.rb +14 -0
  193. data/lib/paypal_server_sdk/models/phone_number.rb +12 -0
  194. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +15 -0
  195. data/lib/paypal_server_sdk/models/phone_with_type.rb +13 -0
  196. data/lib/paypal_server_sdk/models/plan.rb +102 -0
  197. data/lib/paypal_server_sdk/models/platform_fee.rb +12 -0
  198. data/lib/paypal_server_sdk/models/pricing_model.rb +28 -0
  199. data/lib/paypal_server_sdk/models/pricing_scheme.rb +84 -0
  200. data/lib/paypal_server_sdk/models/processor_response.rb +15 -0
  201. data/lib/paypal_server_sdk/models/processor_response_code.rb +312 -308
  202. data/lib/paypal_server_sdk/models/purchase_unit.rb +43 -25
  203. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +36 -20
  204. data/lib/paypal_server_sdk/models/reauthorize_request.rb +19 -8
  205. data/lib/paypal_server_sdk/models/refund.rb +25 -6
  206. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +2 -1
  207. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +12 -0
  208. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +12 -0
  209. data/lib/paypal_server_sdk/models/refund_request.rb +17 -2
  210. data/lib/paypal_server_sdk/models/refund_status.rb +4 -4
  211. data/lib/paypal_server_sdk/models/refund_status_details.rb +12 -0
  212. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +12 -0
  213. data/lib/paypal_server_sdk/models/related_identifiers.rb +14 -0
  214. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +63 -0
  215. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +21 -0
  216. data/lib/paypal_server_sdk/models/seller_protection.rb +13 -0
  217. data/lib/paypal_server_sdk/models/seller_protection_status.rb +6 -3
  218. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +18 -0
  219. data/lib/paypal_server_sdk/models/setup_token_card_experience_context.rb +21 -5
  220. data/lib/paypal_server_sdk/models/setup_token_request.rb +17 -3
  221. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +20 -18
  222. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +13 -0
  223. data/lib/paypal_server_sdk/models/setup_token_response.rb +23 -16
  224. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +25 -3
  225. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +13 -0
  226. data/lib/paypal_server_sdk/models/shipment_carrier.rb +1377 -1402
  227. data/lib/paypal_server_sdk/models/shipping_details.rb +29 -2
  228. data/lib/paypal_server_sdk/models/shipping_name.rb +12 -0
  229. data/lib/paypal_server_sdk/models/shipping_option.rb +14 -0
  230. data/lib/paypal_server_sdk/models/shipping_options_purchase_unit.rb +102 -0
  231. data/lib/paypal_server_sdk/models/shipping_preference.rb +6 -3
  232. data/lib/paypal_server_sdk/models/shipping_type.rb +12 -4
  233. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +30 -2
  234. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +18 -5
  235. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +18 -5
  236. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +12 -4
  237. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +2 -1
  238. data/lib/paypal_server_sdk/models/stored_payment_source.rb +23 -7
  239. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +6 -3
  240. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +6 -3
  241. data/lib/paypal_server_sdk/models/supplementary_data.rb +25 -7
  242. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +13 -0
  243. data/lib/paypal_server_sdk/models/tax_id_type.rb +2 -2
  244. data/lib/paypal_server_sdk/models/tax_info.rb +12 -0
  245. data/lib/paypal_server_sdk/models/tenure_type.rb +28 -0
  246. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +14 -0
  247. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +89 -0
  248. data/lib/paypal_server_sdk/models/token.rb +12 -0
  249. data/lib/paypal_server_sdk/models/token_type.rb +2 -1
  250. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +31 -6
  251. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +30 -6
  252. data/lib/paypal_server_sdk/models/universal_product_code.rb +12 -0
  253. data/lib/paypal_server_sdk/models/upc_type.rb +14 -14
  254. data/lib/paypal_server_sdk/models/usage_pattern.rb +72 -0
  255. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +39 -0
  256. data/lib/paypal_server_sdk/models/vault_customer.rb +12 -0
  257. data/lib/paypal_server_sdk/models/vault_experience_context.rb +26 -7
  258. data/lib/paypal_server_sdk/models/vault_instruction.rb +12 -0
  259. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +26 -0
  260. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +12 -0
  261. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +43 -4
  262. data/lib/paypal_server_sdk/models/vault_response.rb +13 -0
  263. data/lib/paypal_server_sdk/models/vault_response_customer.rb +86 -0
  264. data/lib/paypal_server_sdk/models/vault_status.rb +8 -3
  265. data/lib/paypal_server_sdk/models/vault_token_request.rb +13 -1
  266. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +20 -0
  267. data/lib/paypal_server_sdk/models/vault_venmo_experience_context.rb +24 -6
  268. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +31 -3
  269. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +29 -3
  270. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +26 -1
  271. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +37 -8
  272. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +4 -2
  273. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +12 -6
  274. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +5 -2
  275. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +12 -0
  276. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +12 -0
  277. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +16 -5
  278. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +34 -5
  279. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +21 -8
  280. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +21 -5
  281. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +17 -0
  282. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +14 -2
  283. data/lib/paypal_server_sdk.rb +43 -14
  284. metadata +40 -15
  285. data/lib/paypal_server_sdk/models/address_details.rb +0 -160
  286. data/lib/paypal_server_sdk/models/card_payment_token.rb +0 -166
  287. data/lib/paypal_server_sdk/models/card_verification_method.rb +0 -29
  288. data/lib/paypal_server_sdk/models/google_pay_card_attributes.rb +0 -51
  289. data/lib/paypal_server_sdk/models/payee.rb +0 -65
  290. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_pattern.rb +0 -35
  291. data/lib/paypal_server_sdk/models/token_request_type.rb +0 -23
@@ -0,0 +1,51 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The method used for card verification.
8
+ class OrdersCardVerificationMethod
9
+ ORDERS_CARD_VERIFICATION_METHOD = [
10
+ # Selecting this option will attempt to force a strong customer
11
+ # authentication for the authorization/transaction. In countries where SCA
12
+ # has been defined and implemented it will result in a contingency and
13
+ # HATEOAS link being returned. The API caller should redirect the payer
14
+ # to that link so that they can authenticate themselves against their
15
+ # issuing bank or other entity. As noted, the HATEOAS link is only
16
+ # available in all regions where strong authentication is supported, (e.g.
17
+ # in European countries where 3DS is live). Merchants can use this setting
18
+ # as an additional layer of security if they choose to. In all cases, when
19
+ # an authorization is requested the AVS/CVV results will be returned in
20
+ # the response.
21
+ SCA_ALWAYS = 'SCA_ALWAYS'.freeze,
22
+
23
+ # This is the default. When an authorization or transaction is attempted
24
+ # this option will return a contingency and HATEOAS link only when local
25
+ # regulations require strong customer authentication, (e.g. 3DS in
26
+ # countries and use cases where it is mandated). The API caller should
27
+ # redirect the payer to the link so that they can authenticate themselves.
28
+ # In all cases, when an authorization is requested the AVS/CVV results
29
+ # will be returned in the response.
30
+ SCA_WHEN_REQUIRED = 'SCA_WHEN_REQUIRED'.freeze,
31
+
32
+ # The contingency surfaced as an additional security layer that helps
33
+ # prevent unauthorized card-not-present transactions and protects the
34
+ # merchant from exposure to fraud.
35
+ ENUM_3D_SECURE = '3D_SECURE'.freeze,
36
+
37
+ # Places a temporary hold on the card to ensure its validity. This process
38
+ # protects the merchant from exposure to fraud. This verification method
39
+ # will confirm that the address information or CVV included matches what
40
+ # the issuing bank has on file for the associated card, ensuring that only
41
+ # authorized card users are able to make purchases from you.
42
+ AVS_CVV = 'AVS_CVV'.freeze
43
+ ].freeze
44
+
45
+ def self.validate(value)
46
+ return false if value.nil?
47
+
48
+ true
49
+ end
50
+ end
51
+ end
@@ -13,20 +13,18 @@ module PaypalServerSdk
13
13
  # @return [String]
14
14
  attr_accessor :name
15
15
 
16
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
17
- # to 64 characters are allowed before and 255 characters are allowed after
18
- # the <code>@</code> sign. However, the generally accepted maximum length
19
- # for an email address is 254 characters. The pattern verifies that an
20
- # unquoted <code>@</code> sign exists.</blockquote>
16
+ # The internationalized email address. Note: Up to 64 characters are allowed
17
+ # before and 255 characters are allowed after the @ sign. However, the
18
+ # generally accepted maximum length for an email address is 254 characters.
19
+ # The pattern verifies that an unquoted @ sign exists.
21
20
  # @return [String]
22
21
  attr_accessor :email
23
22
 
24
23
  # The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/)
25
- # that identifies the country or region.<blockquote><strong>Note:</strong>
26
- # The country code for Great Britain is <code>GB</code> and not
27
- # <code>UK</code> as used in the top-level domain names for that country.
28
- # Use the `C2` country code for China worldwide for comparable uncontrolled
29
- # price (CUP) method, bank card, and cross-border transactions.</blockquote>
24
+ # that identifies the country or region. Note: The country code for Great
25
+ # Britain is GB and not UK as used in the top-level domain names for that
26
+ # country. Use the `C2` country code for China worldwide for comparable
27
+ # uncontrolled price (CUP) method, bank card, and cross-border transactions.
30
28
  # @return [String]
31
29
  attr_accessor :country_code
32
30
 
@@ -104,5 +102,21 @@ module PaypalServerSdk
104
102
  method_id: method_id,
105
103
  method_description: method_description)
106
104
  end
105
+
106
+ # Provides a human-readable string representation of the object.
107
+ def to_s
108
+ class_name = self.class.name.split('::').last
109
+ "<#{class_name} name: #{@name}, email: #{@email}, country_code: #{@country_code},"\
110
+ " payment_descriptor: #{@payment_descriptor}, method_id: #{@method_id}, method_description:"\
111
+ " #{@method_description}>"
112
+ end
113
+
114
+ # Provides a debugging-friendly string with detailed object information.
115
+ def inspect
116
+ class_name = self.class.name.split('::').last
117
+ "<#{class_name} name: #{@name.inspect}, email: #{@email.inspect}, country_code:"\
118
+ " #{@country_code.inspect}, payment_descriptor: #{@payment_descriptor.inspect}, method_id:"\
119
+ " #{@method_id.inspect}, method_description: #{@method_description.inspect}>"
120
+ end
107
121
  end
108
122
  end
@@ -13,20 +13,18 @@ module PaypalServerSdk
13
13
  # @return [String]
14
14
  attr_accessor :name
15
15
 
16
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
17
- # to 64 characters are allowed before and 255 characters are allowed after
18
- # the <code>@</code> sign. However, the generally accepted maximum length
19
- # for an email address is 254 characters. The pattern verifies that an
20
- # unquoted <code>@</code> sign exists.</blockquote>
16
+ # The internationalized email address. Note: Up to 64 characters are allowed
17
+ # before and 255 characters are allowed after the @ sign. However, the
18
+ # generally accepted maximum length for an email address is 254 characters.
19
+ # The pattern verifies that an unquoted @ sign exists.
21
20
  # @return [String]
22
21
  attr_accessor :email
23
22
 
24
23
  # The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/)
25
- # that identifies the country or region.<blockquote><strong>Note:</strong>
26
- # The country code for Great Britain is <code>GB</code> and not
27
- # <code>UK</code> as used in the top-level domain names for that country.
28
- # Use the `C2` country code for China worldwide for comparable uncontrolled
29
- # price (CUP) method, bank card, and cross-border transactions.</blockquote>
24
+ # that identifies the country or region. Note: The country code for Great
25
+ # Britain is GB and not UK as used in the top-level domain names for that
26
+ # country. Use the `C2` country code for China worldwide for comparable
27
+ # uncontrolled price (CUP) method, bank card, and cross-border transactions.
30
28
  # @return [String]
31
29
  attr_accessor :country_code
32
30
 
@@ -81,5 +79,19 @@ module PaypalServerSdk
81
79
  country_code: country_code,
82
80
  experience_context: experience_context)
83
81
  end
82
+
83
+ # Provides a human-readable string representation of the object.
84
+ def to_s
85
+ class_name = self.class.name.split('::').last
86
+ "<#{class_name} name: #{@name}, email: #{@email}, country_code: #{@country_code},"\
87
+ " experience_context: #{@experience_context}>"
88
+ end
89
+
90
+ # Provides a debugging-friendly string with detailed object information.
91
+ def inspect
92
+ class_name = self.class.name.split('::').last
93
+ "<#{class_name} name: #{@name.inspect}, email: #{@email.inspect}, country_code:"\
94
+ " #{@country_code.inspect}, experience_context: #{@experience_context.inspect}>"
95
+ end
84
96
  end
85
97
  end
@@ -8,29 +8,29 @@ module PaypalServerSdk
8
8
  # authentication.
9
9
  class PaResStatus
10
10
  PA_RES_STATUS = [
11
- # TODO: Write general description for Y
12
- Y = 'Y'.freeze,
11
+ # Successful authentication.
12
+ SUCCESSFULAUTHENTICATION = 'Y'.freeze,
13
13
 
14
- # TODO: Write general description for N
15
- N = 'N'.freeze,
14
+ # Failed authentication / account not verified / transaction denied.
15
+ FAILEDAUTHENTICATION = 'N'.freeze,
16
16
 
17
- # TODO: Write general description for U
18
- U = 'U'.freeze,
17
+ # Unable to complete authentication.
18
+ UNABLETOCOMPLETEAUTHENTICATION = 'U'.freeze,
19
19
 
20
- # TODO: Write general description for A
21
- A = 'A'.freeze,
20
+ # Successful attempts transaction.
21
+ SUCCESSFULATTEMPTSTRANSACTION = 'A'.freeze,
22
22
 
23
- # TODO: Write general description for C
24
- C = 'C'.freeze,
23
+ # Challenge required for authentication.
24
+ CHALLENGEREQUIRED = 'C'.freeze,
25
25
 
26
- # TODO: Write general description for R
27
- R = 'R'.freeze,
26
+ # Authentication rejected (merchant must not submit for authorization).
27
+ AUTHENTICATIONREJECTED = 'R'.freeze,
28
28
 
29
- # TODO: Write general description for D
30
- D = 'D'.freeze,
29
+ # Challenge required; decoupled authentication confirmed.
30
+ DECOUPLEDAUTHENTICATION = 'D'.freeze,
31
31
 
32
- # TODO: Write general description for I
33
- I = 'I'.freeze
32
+ # Informational only; 3DS requestor challenge preference acknowledged.
33
+ INFORMATIONALONLY = 'I'.freeze
34
34
  ].freeze
35
35
 
36
36
  def self.validate(value)
@@ -0,0 +1,64 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # Profile information of the sender or receiver.
8
+ class ParticipantMetadata < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An Internet Protocol address (IP address). This address assigns a
13
+ # numerical label to each device that is connected to a computer network
14
+ # through the Internet Protocol. Supports IPv4 and IPv6 addresses.
15
+ # @return [String]
16
+ attr_accessor :ip_address
17
+
18
+ # A mapping from model property names to API property names.
19
+ def self.names
20
+ @_hash = {} if @_hash.nil?
21
+ @_hash['ip_address'] = 'ip_address'
22
+ @_hash
23
+ end
24
+
25
+ # An array for optional fields
26
+ def self.optionals
27
+ %w[
28
+ ip_address
29
+ ]
30
+ end
31
+
32
+ # An array for nullable fields
33
+ def self.nullables
34
+ []
35
+ end
36
+
37
+ def initialize(ip_address: SKIP)
38
+ @ip_address = ip_address unless ip_address == SKIP
39
+ end
40
+
41
+ # Creates an instance of the object from a hash.
42
+ def self.from_hash(hash)
43
+ return nil unless hash
44
+
45
+ # Extract variables from the hash.
46
+ ip_address = hash.key?('ip_address') ? hash['ip_address'] : SKIP
47
+
48
+ # Create object from extracted values.
49
+ ParticipantMetadata.new(ip_address: ip_address)
50
+ end
51
+
52
+ # Provides a human-readable string representation of the object.
53
+ def to_s
54
+ class_name = self.class.name.split('::').last
55
+ "<#{class_name} ip_address: #{@ip_address}>"
56
+ end
57
+
58
+ # Provides a debugging-friendly string with detailed object information.
59
+ def inspect
60
+ class_name = self.class.name.split('::').last
61
+ "<#{class_name} ip_address: #{@ip_address.inspect}>"
62
+ end
63
+ end
64
+ end
@@ -13,22 +13,19 @@ module PaypalServerSdk
13
13
  # @return [PatchOp]
14
14
  attr_accessor :op
15
15
 
16
- # The <a href="https://tools.ietf.org/html/rfc6901">JSON Pointer</a> to the
17
- # target document location at which to complete the operation.
16
+ # The JSON Pointer to the target document location at which to complete the
17
+ # operation.
18
18
  # @return [String]
19
19
  attr_accessor :path
20
20
 
21
- # The value to apply. The <code>remove</code>, <code>copy</code>, and
22
- # <code>move</code> operations do not require a value. Since <a
23
- # href="https://www.rfc-editor.org/rfc/rfc69021">JSON Patch</a> allows any
24
- # type for <code>value</code>, the <code>type</code> property is not
25
- # specified.
21
+ # The value to apply. The remove, copy, and move operations do not require a
22
+ # value. Since JSON Patch allows any type for value, the type property is
23
+ # not specified.
26
24
  # @return [Object]
27
25
  attr_accessor :value
28
26
 
29
- # The <a href="https://tools.ietf.org/html/rfc6901">JSON Pointer</a> to the
30
- # target document location from which to move the value. Required for the
31
- # <code>move</code> operation.
27
+ # The JSON Pointer to the target document location from which to move the
28
+ # value. Required for the move operation.
32
29
  # @return [String]
33
30
  attr_accessor :from
34
31
 
@@ -79,5 +76,18 @@ module PaypalServerSdk
79
76
  value: value,
80
77
  from: from)
81
78
  end
79
+
80
+ # Provides a human-readable string representation of the object.
81
+ def to_s
82
+ class_name = self.class.name.split('::').last
83
+ "<#{class_name} op: #{@op}, path: #{@path}, value: #{@value}, from: #{@from}>"
84
+ end
85
+
86
+ # Provides a debugging-friendly string with detailed object information.
87
+ def inspect
88
+ class_name = self.class.name.split('::').last
89
+ "<#{class_name} op: #{@op.inspect}, path: #{@path.inspect}, value: #{@value.inspect}, from:"\
90
+ " #{@from.inspect}>"
91
+ end
82
92
  end
83
93
  end
@@ -7,22 +7,59 @@ module PaypalServerSdk
7
7
  # The operation.
8
8
  class PatchOp
9
9
  PATCH_OP = [
10
- # TODO: Write general description for ADD
10
+ # Depending on the target location reference, completes one of these
11
+ # functions: The target location is an array index. Inserts a new value
12
+ # into the array at the specified index. The target location is an object
13
+ # parameter that does not already exist. Adds a new parameter to the
14
+ # object. The target location is an object parameter that does exist.
15
+ # Replaces that parameter's value. The value parameter defines the value
16
+ # to add. For more information, see 4.1. add.
11
17
  ADD = 'add'.freeze,
12
18
 
13
- # TODO: Write general description for REMOVE
19
+ # Removes the value at the target location. For the operation to succeed,
20
+ # the target location must exist. For more information, see 4.2. remove.
14
21
  REMOVE = 'remove'.freeze,
15
22
 
16
- # TODO: Write general description for REPLACE
23
+ # Replaces the value at the target location with a new value. The
24
+ # operation object must contain a value parameter that defines the
25
+ # replacement value. For the operation to succeed, the target location
26
+ # must exist. For more information, see 4.3. replace.
17
27
  REPLACE = 'replace'.freeze,
18
28
 
19
- # TODO: Write general description for MOVE
29
+ # Removes the value at a specified location and adds it to the target
30
+ # location. The operation object must contain a from parameter, which is a
31
+ # string that contains a JSON pointer value that references the location
32
+ # in the target document from which to move the value. For the operation
33
+ # to succeed, the from location must exist. For more information, see 4.4.
34
+ # move.
20
35
  MOVE = 'move'.freeze,
21
36
 
22
- # TODO: Write general description for COPY
37
+ # Copies the value at a specified location to the target location. The
38
+ # operation object must contain a from parameter, which is a string that
39
+ # contains a JSON pointer value that references the location in the target
40
+ # document from which to copy the value. For the operation to succeed, the
41
+ # from location must exist. For more information, see 4.5. copy.
23
42
  COPY = 'copy'.freeze,
24
43
 
25
- # TODO: Write general description for TEST
44
+ # Tests that a value at the target location is equal to a specified value.
45
+ # The operation object must contain a value parameter that defines the
46
+ # value to compare to the target location's value. For the operation to
47
+ # succeed, the target location must be equal to the value value. For test,
48
+ # equal indicates that the value at the target location and the value that
49
+ # value defines are of the same JSON type. The data type of the value
50
+ # determines how equality is defined: Type Considered equal if both values
51
+ # strings Contain the same number of Unicode characters and their code
52
+ # points are byte-by-byte equal. numbers Are numerically equal. arrays
53
+ # Contain the same number of values, and each value is equal to the value
54
+ # at the corresponding position in the other array, by using these
55
+ # type-specific rules. objects Contain the same number of parameters, and
56
+ # each parameter is equal to a parameter in the other object, by comparing
57
+ # their keys (as strings) and their values (by using these type-specific
58
+ # rules). literals (false, true, and null) Are the same. The comparison is
59
+ # a logical comparison. For example, whitespace between the parameter
60
+ # values of an array is not significant. Also, ordering of the
61
+ # serialization of object parameters is not significant. For more
62
+ # information, see 4.6. test.
26
63
  TEST = 'test'.freeze
27
64
  ].freeze
28
65
 
@@ -10,11 +10,10 @@ module PaypalServerSdk
10
10
  SKIP = Object.new
11
11
  private_constant :SKIP
12
12
 
13
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
14
- # to 64 characters are allowed before and 255 characters are allowed after
15
- # the <code>@</code> sign. However, the generally accepted maximum length
16
- # for an email address is 254 characters. The pattern verifies that an
17
- # unquoted <code>@</code> sign exists.</blockquote>
13
+ # The internationalized email address. Note: Up to 64 characters are allowed
14
+ # before and 255 characters are allowed after the @ sign. However, the
15
+ # generally accepted maximum length for an email address is 254 characters.
16
+ # The pattern verifies that an unquoted @ sign exists.
18
17
  # @return [String]
19
18
  attr_accessor :email_address
20
19
 
@@ -60,5 +59,18 @@ module PaypalServerSdk
60
59
  PayeeBase.new(email_address: email_address,
61
60
  merchant_id: merchant_id)
62
61
  end
62
+
63
+ # Provides a human-readable string representation of the object.
64
+ def to_s
65
+ class_name = self.class.name.split('::').last
66
+ "<#{class_name} email_address: #{@email_address}, merchant_id: #{@merchant_id}>"
67
+ end
68
+
69
+ # Provides a debugging-friendly string with detailed object information.
70
+ def inspect
71
+ class_name = self.class.name.split('::').last
72
+ "<#{class_name} email_address: #{@email_address.inspect}, merchant_id:"\
73
+ " #{@merchant_id.inspect}>"
74
+ end
63
75
  end
64
76
  end
@@ -7,10 +7,12 @@ module PaypalServerSdk
7
7
  # The merchant-preferred payment methods.
8
8
  class PayeePaymentMethodPreference
9
9
  PAYEE_PAYMENT_METHOD_PREFERENCE = [
10
- # TODO: Write general description for UNRESTRICTED
10
+ # Accepts any type of payment from the customer.
11
11
  UNRESTRICTED = 'UNRESTRICTED'.freeze,
12
12
 
13
- # TODO: Write general description for IMMEDIATE_PAYMENT_REQUIRED
13
+ # Accepts only immediate payment from the customer. For example, credit
14
+ # card, PayPal balance, or instant ACH. Ensures that at the time of
15
+ # capture, the payment does not have the `pending` status.
14
16
  IMMEDIATE_PAYMENT_REQUIRED = 'IMMEDIATE_PAYMENT_REQUIRED'.freeze
15
17
  ].freeze
16
18
 
@@ -9,11 +9,10 @@ module PaypalServerSdk
9
9
  SKIP = Object.new
10
10
  private_constant :SKIP
11
11
 
12
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
13
- # to 64 characters are allowed before and 255 characters are allowed after
14
- # the <code>@</code> sign. However, the generally accepted maximum length
15
- # for an email address is 254 characters. The pattern verifies that an
16
- # unquoted <code>@</code> sign exists.</blockquote>
12
+ # The internationalized email address. Note: Up to 64 characters are allowed
13
+ # before and 255 characters are allowed after the @ sign. However, the
14
+ # generally accepted maximum length for an email address is 254 characters.
15
+ # The pattern verifies that an unquoted @ sign exists.
17
16
  # @return [String]
18
17
  attr_accessor :email_address
19
18
 
@@ -116,5 +115,21 @@ module PaypalServerSdk
116
115
  tax_info: tax_info,
117
116
  address: address)
118
117
  end
118
+
119
+ # Provides a human-readable string representation of the object.
120
+ def to_s
121
+ class_name = self.class.name.split('::').last
122
+ "<#{class_name} email_address: #{@email_address}, payer_id: #{@payer_id}, name: #{@name},"\
123
+ " phone: #{@phone}, birth_date: #{@birth_date}, tax_info: #{@tax_info}, address:"\
124
+ " #{@address}>"
125
+ end
126
+
127
+ # Provides a debugging-friendly string with detailed object information.
128
+ def inspect
129
+ class_name = self.class.name.split('::').last
130
+ "<#{class_name} email_address: #{@email_address.inspect}, payer_id: #{@payer_id.inspect},"\
131
+ " name: #{@name.inspect}, phone: #{@phone.inspect}, birth_date: #{@birth_date.inspect},"\
132
+ " tax_info: #{@tax_info.inspect}, address: #{@address.inspect}>"
133
+ end
119
134
  end
120
135
  end
@@ -10,11 +10,10 @@ module PaypalServerSdk
10
10
  SKIP = Object.new
11
11
  private_constant :SKIP
12
12
 
13
- # The internationalized email address.<blockquote><strong>Note:</strong> Up
14
- # to 64 characters are allowed before and 255 characters are allowed after
15
- # the <code>@</code> sign. However, the generally accepted maximum length
16
- # for an email address is 254 characters. The pattern verifies that an
17
- # unquoted <code>@</code> sign exists.</blockquote>
13
+ # The internationalized email address. Note: Up to 64 characters are allowed
14
+ # before and 255 characters are allowed after the @ sign. However, the
15
+ # generally accepted maximum length for an email address is 254 characters.
16
+ # The pattern verifies that an unquoted @ sign exists.
18
17
  # @return [String]
19
18
  attr_accessor :email_address
20
19
 
@@ -60,5 +59,17 @@ module PaypalServerSdk
60
59
  PayerBase.new(email_address: email_address,
61
60
  payer_id: payer_id)
62
61
  end
62
+
63
+ # Provides a human-readable string representation of the object.
64
+ def to_s
65
+ class_name = self.class.name.split('::').last
66
+ "<#{class_name} email_address: #{@email_address}, payer_id: #{@payer_id}>"
67
+ end
68
+
69
+ # Provides a debugging-friendly string with detailed object information.
70
+ def inspect
71
+ class_name = self.class.name.split('::').last
72
+ "<#{class_name} email_address: #{@email_address.inspect}, payer_id: #{@payer_id.inspect}>"
73
+ end
63
74
  end
64
75
  end
@@ -8,17 +8,62 @@ module PaypalServerSdk
8
8
  # networks, like Visa and Mastercard, return payment advice codes.
9
9
  class PaymentAdviceCode
10
10
  PAYMENT_ADVICE_CODE = [
11
- # TODO: Write general description for ENUM_01
12
- ENUM_01 = '01'.freeze,
11
+ # For Mastercard, expired card account upgrade or portfolio sale
12
+ # conversion. Obtain new account information before next billing cycle.
13
+ PAYMENTADVICE_01 = '01'.freeze,
13
14
 
14
- # TODO: Write general description for ENUM_02
15
- ENUM_02 = '02'.freeze,
15
+ # For Mastercard, over credit limit or insufficient funds. Retry the
16
+ # transaction 72 hours later. For Visa, the card holder wants to stop only
17
+ # one specific payment in the recurring payment relationship. The merchant
18
+ # must NOT resubmit the same transaction. The merchant can continue the
19
+ # billing process in the subsequent billing period.
20
+ PAYMENTADVICE_02 = '02'.freeze,
16
21
 
17
- # TODO: Write general description for ENUM_03
18
- ENUM_03 = '03'.freeze,
22
+ # For Mastercard, account closed as fraudulent. Obtain another type of
23
+ # payment from customer due to account being closed or fraud. Possible
24
+ # reason: Account closed as fraudulent. For Visa, the card holder wants to
25
+ # stop all recurring payment transactions for a specific merchant. Stop
26
+ # recurring payment requests.
27
+ PAYMENTADVICE_03 = '03'.freeze,
19
28
 
20
- # TODO: Write general description for ENUM_21
21
- ENUM_21 = '21'.freeze
29
+ # For Mastercard, token requirements not fulfilled for this token type.
30
+ PAYMENTADVICE_04 = '04'.freeze,
31
+
32
+ # For Mastercard, the card holder has been unsuccessful at canceling
33
+ # recurring payment through merchant. Stop recurring payment requests. For
34
+ # Visa, all recurring payments were canceled for the card number
35
+ # requested. Stop recurring payment requests.
36
+ PAYMENTADVICE_21 = '21'.freeze,
37
+
38
+ # For Mastercard, merchant does not qualify for product code.
39
+ PAYMENTADVICE_22 = '22'.freeze,
40
+
41
+ # For Mastercard, retry after 1 hour.
42
+ PAYMENTADVICE_24 = '24'.freeze,
43
+
44
+ # For Mastercard, retry after 24 hours.
45
+ PAYMENTADVICE_25 = '25'.freeze,
46
+
47
+ # For Mastercard, retry after 2 days.
48
+ PAYMENTADVICE_26 = '26'.freeze,
49
+
50
+ # For Mastercard, retry after 4 days.
51
+ PAYMENTADVICE_27 = '27'.freeze,
52
+
53
+ # For Mastercard, retry after 6 days.
54
+ PAYMENTADVICE_28 = '28'.freeze,
55
+
56
+ # For Mastercard, retry after 8 days.
57
+ PAYMENTADVICE_29 = '29'.freeze,
58
+
59
+ # For Mastercard, retry after 10 days .
60
+ PAYMENTADVICE_30 = '30'.freeze,
61
+
62
+ # For Mastercard, consumer non-reloadable prepaid card.
63
+ PAYMENTADVICE_40 = '40'.freeze,
64
+
65
+ # For Mastercard, consumer multi-use virtual card number.
66
+ PAYMENTADVICE_43 = '43'.freeze
22
67
  ].freeze
23
68
 
24
69
  def self.validate(value)