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
@@ -13,6 +13,13 @@ module PaypalServerSdk
13
13
  # @return [ShippingName]
14
14
  attr_accessor :name
15
15
 
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.
20
+ # @return [String]
21
+ attr_accessor :email_address
22
+
16
23
  # The phone number in its canonical international [E.164 numbering plan
17
24
  # format](https://www.itu.int/rec/T-REC-E.164/en).
18
25
  # @return [PhoneNumberWithCountryCode]
@@ -42,6 +49,7 @@ module PaypalServerSdk
42
49
  def self.names
43
50
  @_hash = {} if @_hash.nil?
44
51
  @_hash['name'] = 'name'
52
+ @_hash['email_address'] = 'email_address'
45
53
  @_hash['phone_number'] = 'phone_number'
46
54
  @_hash['type'] = 'type'
47
55
  @_hash['options'] = 'options'
@@ -53,6 +61,7 @@ module PaypalServerSdk
53
61
  def self.optionals
54
62
  %w[
55
63
  name
64
+ email_address
56
65
  phone_number
57
66
  type
58
67
  options
@@ -65,9 +74,10 @@ module PaypalServerSdk
65
74
  []
66
75
  end
67
76
 
68
- def initialize(name: SKIP, phone_number: SKIP, type: SKIP, options: SKIP,
69
- address: SKIP)
77
+ def initialize(name: SKIP, email_address: SKIP, phone_number: SKIP,
78
+ type: SKIP, options: SKIP, address: SKIP)
70
79
  @name = name unless name == SKIP
80
+ @email_address = email_address unless email_address == SKIP
71
81
  @phone_number = phone_number unless phone_number == SKIP
72
82
  @type = type unless type == SKIP
73
83
  @options = options unless options == SKIP
@@ -80,6 +90,7 @@ module PaypalServerSdk
80
90
 
81
91
  # Extract variables from the hash.
82
92
  name = ShippingName.from_hash(hash['name']) if hash['name']
93
+ email_address = hash.key?('email_address') ? hash['email_address'] : SKIP
83
94
  phone_number = PhoneNumberWithCountryCode.from_hash(hash['phone_number']) if
84
95
  hash['phone_number']
85
96
  type = hash.key?('type') ? hash['type'] : SKIP
@@ -97,10 +108,26 @@ module PaypalServerSdk
97
108
 
98
109
  # Create object from extracted values.
99
110
  ShippingDetails.new(name: name,
111
+ email_address: email_address,
100
112
  phone_number: phone_number,
101
113
  type: type,
102
114
  options: options,
103
115
  address: address)
104
116
  end
117
+
118
+ # Provides a human-readable string representation of the object.
119
+ def to_s
120
+ class_name = self.class.name.split('::').last
121
+ "<#{class_name} name: #{@name}, email_address: #{@email_address}, phone_number:"\
122
+ " #{@phone_number}, type: #{@type}, options: #{@options}, address: #{@address}>"
123
+ end
124
+
125
+ # Provides a debugging-friendly string with detailed object information.
126
+ def inspect
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} name: #{@name.inspect}, email_address: #{@email_address.inspect},"\
129
+ " phone_number: #{@phone_number.inspect}, type: #{@type.inspect}, options:"\
130
+ " #{@options.inspect}, address: #{@address.inspect}>"
131
+ end
105
132
  end
106
133
  end
@@ -46,5 +46,17 @@ module PaypalServerSdk
46
46
  # Create object from extracted values.
47
47
  ShippingName.new(full_name: full_name)
48
48
  end
49
+
50
+ # Provides a human-readable string representation of the object.
51
+ def to_s
52
+ class_name = self.class.name.split('::').last
53
+ "<#{class_name} full_name: #{@full_name}>"
54
+ end
55
+
56
+ # Provides a debugging-friendly string with detailed object information.
57
+ def inspect
58
+ class_name = self.class.name.split('::').last
59
+ "<#{class_name} full_name: #{@full_name.inspect}>"
60
+ end
49
61
  end
50
62
  end
@@ -90,5 +90,19 @@ module PaypalServerSdk
90
90
  type: type,
91
91
  amount: amount)
92
92
  end
93
+
94
+ # Provides a human-readable string representation of the object.
95
+ def to_s
96
+ class_name = self.class.name.split('::').last
97
+ "<#{class_name} id: #{@id}, label: #{@label}, type: #{@type}, amount: #{@amount}, selected:"\
98
+ " #{@selected}>"
99
+ end
100
+
101
+ # Provides a debugging-friendly string with detailed object information.
102
+ def inspect
103
+ class_name = self.class.name.split('::').last
104
+ "<#{class_name} id: #{@id.inspect}, label: #{@label.inspect}, type: #{@type.inspect},"\
105
+ " amount: #{@amount.inspect}, selected: #{@selected.inspect}>"
106
+ end
93
107
  end
94
108
  end
@@ -0,0 +1,102 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # This would contain shipping option and amount data at purchase unit level.
8
+ class ShippingOptionsPurchaseUnit < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The API caller-provided external ID for the purchase unit. Required for
13
+ # multiple purchase units when you must update the order through `PATCH`. If
14
+ # you omit this value and the order contains only one purchase unit, PayPal
15
+ # sets this value to `default`. Note: If there are multiple purchase units,
16
+ # reference_id is required for each purchase unit.
17
+ # @return [String]
18
+ attr_accessor :reference_id
19
+
20
+ # The total order amount with an optional breakdown that provides details,
21
+ # such as the total item amount, total tax amount, shipping, handling,
22
+ # insurance, and discounts, if any. If you specify `amount.breakdown`, the
23
+ # amount equals `item_total` plus `tax_total` plus `shipping` plus
24
+ # `handling` plus `insurance` minus `shipping_discount` minus discount. The
25
+ # amount must be a positive number. For listed of supported currencies and
26
+ # decimal precision, see the PayPal REST APIs Currency Codes.
27
+ # @return [AmountWithBreakdown]
28
+ attr_accessor :amount
29
+
30
+ # An array of shipping options that the payee or merchant offers to the
31
+ # payer to ship or pick up their items.
32
+ # @return [Array[ShippingOption]]
33
+ attr_accessor :shipping_options
34
+
35
+ # A mapping from model property names to API property names.
36
+ def self.names
37
+ @_hash = {} if @_hash.nil?
38
+ @_hash['reference_id'] = 'reference_id'
39
+ @_hash['amount'] = 'amount'
40
+ @_hash['shipping_options'] = 'shipping_options'
41
+ @_hash
42
+ end
43
+
44
+ # An array for optional fields
45
+ def self.optionals
46
+ %w[
47
+ reference_id
48
+ amount
49
+ shipping_options
50
+ ]
51
+ end
52
+
53
+ # An array for nullable fields
54
+ def self.nullables
55
+ []
56
+ end
57
+
58
+ def initialize(reference_id: SKIP, amount: SKIP, shipping_options: SKIP)
59
+ @reference_id = reference_id unless reference_id == SKIP
60
+ @amount = amount unless amount == SKIP
61
+ @shipping_options = shipping_options unless shipping_options == SKIP
62
+ end
63
+
64
+ # Creates an instance of the object from a hash.
65
+ def self.from_hash(hash)
66
+ return nil unless hash
67
+
68
+ # Extract variables from the hash.
69
+ reference_id = hash.key?('reference_id') ? hash['reference_id'] : SKIP
70
+ amount = AmountWithBreakdown.from_hash(hash['amount']) if hash['amount']
71
+ # Parameter is an array, so we need to iterate through it
72
+ shipping_options = nil
73
+ unless hash['shipping_options'].nil?
74
+ shipping_options = []
75
+ hash['shipping_options'].each do |structure|
76
+ shipping_options << (ShippingOption.from_hash(structure) if structure)
77
+ end
78
+ end
79
+
80
+ shipping_options = SKIP unless hash.key?('shipping_options')
81
+
82
+ # Create object from extracted values.
83
+ ShippingOptionsPurchaseUnit.new(reference_id: reference_id,
84
+ amount: amount,
85
+ shipping_options: shipping_options)
86
+ end
87
+
88
+ # Provides a human-readable string representation of the object.
89
+ def to_s
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} reference_id: #{@reference_id}, amount: #{@amount}, shipping_options:"\
92
+ " #{@shipping_options}>"
93
+ end
94
+
95
+ # Provides a debugging-friendly string with detailed object information.
96
+ def inspect
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} reference_id: #{@reference_id.inspect}, amount: #{@amount.inspect},"\
99
+ " shipping_options: #{@shipping_options.inspect}>"
100
+ end
101
+ end
102
+ end
@@ -7,13 +7,16 @@ module PaypalServerSdk
7
7
  # The location from which the shipping address is derived.
8
8
  class ShippingPreference
9
9
  SHIPPING_PREFERENCE = [
10
- # TODO: Write general description for GET_FROM_FILE
10
+ # Get the customer-provided shipping address on the PayPal site.
11
11
  GET_FROM_FILE = 'GET_FROM_FILE'.freeze,
12
12
 
13
- # TODO: Write general description for NO_SHIPPING
13
+ # Redacts the shipping address from the PayPal site. Recommended for
14
+ # digital goods.
14
15
  NO_SHIPPING = 'NO_SHIPPING'.freeze,
15
16
 
16
- # TODO: Write general description for SET_PROVIDED_ADDRESS
17
+ # Get the merchant-provided address. The customer cannot change this
18
+ # address on the PayPal site. If merchant does not pass an address,
19
+ # customer can choose the address on PayPal pages.
17
20
  SET_PROVIDED_ADDRESS = 'SET_PROVIDED_ADDRESS'.freeze
18
21
  ].freeze
19
22
 
@@ -7,16 +7,24 @@ module PaypalServerSdk
7
7
  # A classification for the method of purchase fulfillment.
8
8
  class ShippingType
9
9
  SHIPPING_TYPE = [
10
- # TODO: Write general description for SHIPPING
10
+ # The payer intends to receive the items at a specified address.
11
11
  SHIPPING = 'SHIPPING'.freeze,
12
12
 
13
- # TODO: Write general description for PICKUP
13
+ # DEPRECATED. To ensure that seller protection is correctly assigned,
14
+ # please use 'PICKUP_IN_STORE' or 'PICKUP_FROM_PERSON' instead. Currently,
15
+ # this field indicates that the payer intends to pick up the items at a
16
+ # specified address (ie. a store address).
14
17
  PICKUP = 'PICKUP'.freeze,
15
18
 
16
- # TODO: Write general description for PICKUP_IN_STORE
19
+ # The payer intends to pick up the item(s) from the payee's physical
20
+ # store. Also termed as BOPIS, "Buy Online, Pick-up in Store". Seller
21
+ # protection is provided with this option.
17
22
  PICKUP_IN_STORE = 'PICKUP_IN_STORE'.freeze,
18
23
 
19
- # TODO: Write general description for PICKUP_FROM_PERSON
24
+ # The payer intends to pick up the item(s) from the payee in person. Also
25
+ # termed as BOPIP, "Buy Online, Pick-up in Person". Seller protection is
26
+ # not available, since the payer is receiving the item from the payee in
27
+ # person, and can validate the item prior to payment.
20
28
  PICKUP_FROM_PERSON = 'PICKUP_FROM_PERSON'.freeze
21
29
  ].freeze
22
30
 
@@ -13,6 +13,13 @@ module PaypalServerSdk
13
13
  # @return [ShippingName]
14
14
  attr_accessor :name
15
15
 
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.
20
+ # @return [String]
21
+ attr_accessor :email_address
22
+
16
23
  # The phone number in its canonical international [E.164 numbering plan
17
24
  # format](https://www.itu.int/rec/T-REC-E.164/en).
18
25
  # @return [PhoneNumberWithCountryCode]
@@ -46,6 +53,7 @@ module PaypalServerSdk
46
53
  def self.names
47
54
  @_hash = {} if @_hash.nil?
48
55
  @_hash['name'] = 'name'
56
+ @_hash['email_address'] = 'email_address'
49
57
  @_hash['phone_number'] = 'phone_number'
50
58
  @_hash['type'] = 'type'
51
59
  @_hash['options'] = 'options'
@@ -58,6 +66,7 @@ module PaypalServerSdk
58
66
  def self.optionals
59
67
  %w[
60
68
  name
69
+ email_address
61
70
  phone_number
62
71
  type
63
72
  options
@@ -71,9 +80,10 @@ module PaypalServerSdk
71
80
  []
72
81
  end
73
82
 
74
- def initialize(name: SKIP, phone_number: SKIP, type: SKIP, options: SKIP,
75
- address: SKIP, trackers: SKIP)
83
+ def initialize(name: SKIP, email_address: SKIP, phone_number: SKIP,
84
+ type: SKIP, options: SKIP, address: SKIP, trackers: SKIP)
76
85
  @name = name unless name == SKIP
86
+ @email_address = email_address unless email_address == SKIP
77
87
  @phone_number = phone_number unless phone_number == SKIP
78
88
  @type = type unless type == SKIP
79
89
  @options = options unless options == SKIP
@@ -87,6 +97,7 @@ module PaypalServerSdk
87
97
 
88
98
  # Extract variables from the hash.
89
99
  name = ShippingName.from_hash(hash['name']) if hash['name']
100
+ email_address = hash.key?('email_address') ? hash['email_address'] : SKIP
90
101
  phone_number = PhoneNumberWithCountryCode.from_hash(hash['phone_number']) if
91
102
  hash['phone_number']
92
103
  type = hash.key?('type') ? hash['type'] : SKIP
@@ -114,11 +125,28 @@ module PaypalServerSdk
114
125
 
115
126
  # Create object from extracted values.
116
127
  ShippingWithTrackingDetails.new(name: name,
128
+ email_address: email_address,
117
129
  phone_number: phone_number,
118
130
  type: type,
119
131
  options: options,
120
132
  address: address,
121
133
  trackers: trackers)
122
134
  end
135
+
136
+ # Provides a human-readable string representation of the object.
137
+ def to_s
138
+ class_name = self.class.name.split('::').last
139
+ "<#{class_name} name: #{@name}, email_address: #{@email_address}, phone_number:"\
140
+ " #{@phone_number}, type: #{@type}, options: #{@options}, address: #{@address}, trackers:"\
141
+ " #{@trackers}>"
142
+ end
143
+
144
+ # Provides a debugging-friendly string with detailed object information.
145
+ def inspect
146
+ class_name = self.class.name.split('::').last
147
+ "<#{class_name} name: #{@name.inspect}, email_address: #{@email_address.inspect},"\
148
+ " phone_number: #{@phone_number.inspect}, type: #{@type.inspect}, options:"\
149
+ " #{@options.inspect}, address: #{@address.inspect}, trackers: #{@trackers.inspect}>"
150
+ end
123
151
  end
124
152
  end
@@ -14,11 +14,10 @@ module PaypalServerSdk
14
14
  attr_accessor :name
15
15
 
16
16
  # The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/)
17
- # that identifies the country or region.<blockquote><strong>Note:</strong>
18
- # The country code for Great Britain is <code>GB</code> and not
19
- # <code>UK</code> as used in the top-level domain names for that country.
20
- # Use the `C2` country code for China worldwide for comparable uncontrolled
21
- # price (CUP) method, bank card, and cross-border transactions.</blockquote>
17
+ # that identifies the country or region. Note: The country code for Great
18
+ # Britain is GB and not UK as used in the top-level domain names for that
19
+ # country. Use the `C2` country code for China worldwide for comparable
20
+ # uncontrolled price (CUP) method, bank card, and cross-border transactions.
22
21
  # @return [String]
23
22
  attr_accessor :country_code
24
23
 
@@ -81,5 +80,19 @@ module PaypalServerSdk
81
80
  bic: bic,
82
81
  iban_last_chars: iban_last_chars)
83
82
  end
83
+
84
+ # Provides a human-readable string representation of the object.
85
+ def to_s
86
+ class_name = self.class.name.split('::').last
87
+ "<#{class_name} name: #{@name}, country_code: #{@country_code}, bic: #{@bic},"\
88
+ " iban_last_chars: #{@iban_last_chars}>"
89
+ end
90
+
91
+ # Provides a debugging-friendly string with detailed object information.
92
+ def inspect
93
+ class_name = self.class.name.split('::').last
94
+ "<#{class_name} name: #{@name.inspect}, country_code: #{@country_code.inspect}, bic:"\
95
+ " #{@bic.inspect}, iban_last_chars: #{@iban_last_chars.inspect}>"
96
+ end
84
97
  end
85
98
  end
@@ -14,11 +14,10 @@ module PaypalServerSdk
14
14
  attr_accessor :name
15
15
 
16
16
  # The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/)
17
- # that identifies the country or region.<blockquote><strong>Note:</strong>
18
- # The country code for Great Britain is <code>GB</code> and not
19
- # <code>UK</code> as used in the top-level domain names for that country.
20
- # Use the `C2` country code for China worldwide for comparable uncontrolled
21
- # price (CUP) method, bank card, and cross-border transactions.</blockquote>
17
+ # that identifies the country or region. Note: The country code for Great
18
+ # Britain is GB and not UK as used in the top-level domain names for that
19
+ # country. Use the `C2` country code for China worldwide for comparable
20
+ # uncontrolled price (CUP) method, bank card, and cross-border transactions.
22
21
  # @return [String]
23
22
  attr_accessor :country_code
24
23
 
@@ -69,5 +68,19 @@ module PaypalServerSdk
69
68
  country_code: country_code,
70
69
  experience_context: experience_context)
71
70
  end
71
+
72
+ # Provides a human-readable string representation of the object.
73
+ def to_s
74
+ class_name = self.class.name.split('::').last
75
+ "<#{class_name} name: #{@name}, country_code: #{@country_code}, experience_context:"\
76
+ " #{@experience_context}>"
77
+ end
78
+
79
+ # Provides a debugging-friendly string with detailed object information.
80
+ def inspect
81
+ class_name = self.class.name.split('::').last
82
+ "<#{class_name} name: #{@name.inspect}, country_code: #{@country_code.inspect},"\
83
+ " experience_context: #{@experience_context.inspect}>"
84
+ end
72
85
  end
73
86
  end
@@ -14,16 +14,24 @@ module PaypalServerSdk
14
14
  # PayPal supports the following SEC codes.
15
15
  class StandardEntryClassCode
16
16
  STANDARD_ENTRY_CLASS_CODE = [
17
- # TODO: Write general description for TEL
17
+ # The API caller (merchant/partner) accepts authorization and payment
18
+ # information from a consumer over the telephone.
18
19
  TEL = 'TEL'.freeze,
19
20
 
20
- # TODO: Write general description for WEB
21
+ # The API caller (merchant/partner) accepts Debit transactions from a
22
+ # consumer on their website.
21
23
  WEB = 'WEB'.freeze,
22
24
 
23
- # TODO: Write general description for CCD
25
+ # Cash concentration and disbursement for corporate debit transaction.
26
+ # Used to disburse or consolidate funds. Entries are usually Optional
27
+ # high-dollar, low-volume, and time-critical. (e.g. intra-company
28
+ # transfers or invoice payments to suppliers).
24
29
  CCD = 'CCD'.freeze,
25
30
 
26
- # TODO: Write general description for PPD
31
+ # Prearranged payment and deposit entries. Used for debit payments
32
+ # authorized by a consumer account holder, and usually initiated by a
33
+ # company. These are usually recurring debits (such as insurance
34
+ # premiums).
27
35
  PPD = 'PPD'.freeze
28
36
  ].freeze
29
37
 
@@ -7,7 +7,8 @@ module PaypalServerSdk
7
7
  # Defines how and when the payment source gets vaulted.
8
8
  class StoreInVaultInstruction
9
9
  STORE_IN_VAULT_INSTRUCTION = [
10
- # TODO: Write general description for ON_SUCCESS
10
+ # Defines that the payment_source will be vaulted only when at least one
11
+ # authorization or capture using that payment_source is successful.
11
12
  ON_SUCCESS = 'ON_SUCCESS'.freeze
12
13
  ].freeze
13
14
 
@@ -6,15 +6,14 @@
6
6
  module PaypalServerSdk
7
7
  # Provides additional details to process a payment using a `payment_source`
8
8
  # that has been stored or is intended to be stored (also referred to as
9
- # stored_credential or card-on-file).<br/>Parameter
10
- # compatibility:<br/><ul><li>`payment_type=ONE_TIME` is compatible only with
11
- # `payment_initiator=CUSTOMER`.</li><li>`usage=FIRST` is compatible only with
12
- # `payment_initiator=CUSTOMER`.</li><li>`previous_transaction_reference` or
9
+ # stored_credential or card-on-file). Parameter compatibility:
10
+ # `payment_type=ONE_TIME` is compatible only with
11
+ # `payment_initiator=CUSTOMER`. `usage=FIRST` is compatible only with
12
+ # `payment_initiator=CUSTOMER`. `previous_transaction_reference` or
13
13
  # `previous_network_transaction_reference` is compatible only with
14
- # `payment_initiator=MERCHANT`.</li><li>Only one of the parameters -
14
+ # `payment_initiator=MERCHANT`. Only one of the parameters -
15
15
  # `previous_transaction_reference` and
16
- # `previous_network_transaction_reference` - can be present in the
17
- # request.</li></ul>
16
+ # `previous_network_transaction_reference` - can be present in the request.
18
17
  class StoredPaymentSource < BaseModel
19
18
  SKIP = Object.new
20
19
  private_constant :SKIP
@@ -91,5 +90,22 @@ module PaypalServerSdk
91
90
  usage: usage,
92
91
  previous_network_transaction_reference: previous_network_transaction_reference)
93
92
  end
93
+
94
+ # Provides a human-readable string representation of the object.
95
+ def to_s
96
+ class_name = self.class.name.split('::').last
97
+ "<#{class_name} payment_initiator: #{@payment_initiator}, payment_type: #{@payment_type},"\
98
+ " usage: #{@usage}, previous_network_transaction_reference:"\
99
+ " #{@previous_network_transaction_reference}>"
100
+ end
101
+
102
+ # Provides a debugging-friendly string with detailed object information.
103
+ def inspect
104
+ class_name = self.class.name.split('::').last
105
+ "<#{class_name} payment_initiator: #{@payment_initiator.inspect}, payment_type:"\
106
+ " #{@payment_type.inspect}, usage: #{@usage.inspect},"\
107
+ ' previous_network_transaction_reference:'\
108
+ " #{@previous_network_transaction_reference.inspect}>"
109
+ end
94
110
  end
95
111
  end
@@ -7,13 +7,16 @@ module PaypalServerSdk
7
7
  # Indicates the type of the stored payment_source payment.
8
8
  class StoredPaymentSourcePaymentType
9
9
  STORED_PAYMENT_SOURCE_PAYMENT_TYPE = [
10
- # TODO: Write general description for ONE_TIME
10
+ # One Time payment such as online purchase or donation. (e.g. Checkout
11
+ # with one-click).
11
12
  ONE_TIME = 'ONE_TIME'.freeze,
12
13
 
13
- # TODO: Write general description for RECURRING
14
+ # Payment which is part of a series of payments with fixed or variable
15
+ # amounts, following a fixed time interval. (e.g. Subscription payments).
14
16
  RECURRING = 'RECURRING'.freeze,
15
17
 
16
- # TODO: Write general description for UNSCHEDULED
18
+ # Payment which is part of a series of payments that occur on a non-fixed
19
+ # schedule and/or have variable amounts. (e.g. Account Topup payments).
17
20
  UNSCHEDULED = 'UNSCHEDULED'.freeze
18
21
  ].freeze
19
22
 
@@ -8,13 +8,16 @@ module PaypalServerSdk
8
8
  # payment source (also referred to as stored credential or card on file).
9
9
  class StoredPaymentSourceUsageType
10
10
  STORED_PAYMENT_SOURCE_USAGE_TYPE = [
11
- # TODO: Write general description for FIRST
11
+ # Indicates the Initial/First payment with a payment_source that is
12
+ # intended to be stored upon successful processing of the payment.
12
13
  FIRST = 'FIRST'.freeze,
13
14
 
14
- # TODO: Write general description for SUBSEQUENT
15
+ # Indicates a payment using a stored payment_source which has been
16
+ # successfully used previously for a payment.
15
17
  SUBSEQUENT = 'SUBSEQUENT'.freeze,
16
18
 
17
- # TODO: Write general description for DERIVED
19
+ # Indicates that PayPal will derive the value of `FIRST` or `SUBSEQUENT`
20
+ # based on data available to PayPal.
18
21
  DERIVED = 'DERIVED'.freeze
19
22
  ].freeze
20
23
 
@@ -13,18 +13,20 @@ module PaypalServerSdk
13
13
 
14
14
  # Merchants and partners can add Level 2 and 3 data to payments to reduce
15
15
  # risk and payment processing costs. For more information about processing
16
- # payments, see <a
17
- # href="https://developer.paypal.com/docs/checkout/advanced/processing/">che
18
- # ckout</a> or <a
19
- # href="https://developer.paypal.com/docs/multiparty/checkout/advanced/proce
20
- # ssing/">multiparty checkout</a>.
16
+ # payments, see checkout or multiparty checkout.
21
17
  # @return [CardSupplementaryData]
22
18
  attr_accessor :card
23
19
 
20
+ # Additional information necessary to evaluate the risk profile of a
21
+ # transaction.
22
+ # @return [RiskSupplementaryData]
23
+ attr_accessor :risk
24
+
24
25
  # A mapping from model property names to API property names.
25
26
  def self.names
26
27
  @_hash = {} if @_hash.nil?
27
28
  @_hash['card'] = 'card'
29
+ @_hash['risk'] = 'risk'
28
30
  @_hash
29
31
  end
30
32
 
@@ -32,6 +34,7 @@ module PaypalServerSdk
32
34
  def self.optionals
33
35
  %w[
34
36
  card
37
+ risk
35
38
  ]
36
39
  end
37
40
 
@@ -40,8 +43,9 @@ module PaypalServerSdk
40
43
  []
41
44
  end
42
45
 
43
- def initialize(card: SKIP)
46
+ def initialize(card: SKIP, risk: SKIP)
44
47
  @card = card unless card == SKIP
48
+ @risk = risk unless risk == SKIP
45
49
  end
46
50
 
47
51
  # Creates an instance of the object from a hash.
@@ -50,9 +54,23 @@ module PaypalServerSdk
50
54
 
51
55
  # Extract variables from the hash.
52
56
  card = CardSupplementaryData.from_hash(hash['card']) if hash['card']
57
+ risk = RiskSupplementaryData.from_hash(hash['risk']) if hash['risk']
53
58
 
54
59
  # Create object from extracted values.
55
- SupplementaryData.new(card: card)
60
+ SupplementaryData.new(card: card,
61
+ risk: risk)
62
+ end
63
+
64
+ # Provides a human-readable string representation of the object.
65
+ def to_s
66
+ class_name = self.class.name.split('::').last
67
+ "<#{class_name} card: #{@card}, risk: #{@risk}>"
68
+ end
69
+
70
+ # Provides a debugging-friendly string with detailed object information.
71
+ def inspect
72
+ class_name = self.class.name.split('::').last
73
+ "<#{class_name} card: #{@card.inspect}, risk: #{@risk.inspect}>"
56
74
  end
57
75
  end
58
76
  end
@@ -59,5 +59,18 @@ module PaypalServerSdk
59
59
  SupplementaryPurchaseData.new(invoice_id: invoice_id,
60
60
  note_to_payer: note_to_payer)
61
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} invoice_id: #{@invoice_id}, note_to_payer: #{@note_to_payer}>"
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} invoice_id: #{@invoice_id.inspect}, note_to_payer:"\
73
+ " #{@note_to_payer.inspect}>"
74
+ end
62
75
  end
63
76
  end
@@ -7,10 +7,10 @@ module PaypalServerSdk
7
7
  # The customer's tax ID type.
8
8
  class TaxIdType
9
9
  TAX_ID_TYPE = [
10
- # TODO: Write general description for BR_CPF
10
+ # The individual tax ID type, typically is 11 characters long.
11
11
  BR_CPF = 'BR_CPF'.freeze,
12
12
 
13
- # TODO: Write general description for BR_CNPJ
13
+ # The business tax ID type, typically is 14 characters long.
14
14
  BR_CNPJ = 'BR_CNPJ'.freeze
15
15
  ].freeze
16
16