checkout_sdk 1.2.2 → 1.9.1

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 (352) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +30 -0
  3. data/.rubocop.yml +15 -1
  4. data/.ruby-version +1 -0
  5. data/Gemfile +3 -1
  6. data/README.md +38 -0
  7. data/Rakefile +2 -2
  8. data/lib/checkout_sdk/accounts/account_holder.rb +10 -2
  9. data/lib/checkout_sdk/accounts/account_holder_corporate.rb +15 -0
  10. data/lib/checkout_sdk/accounts/account_holder_individual.rb +18 -0
  11. data/lib/checkout_sdk/accounts/accounts.rb +34 -1
  12. data/lib/checkout_sdk/accounts/accounts_client.rb +134 -1
  13. data/lib/checkout_sdk/accounts/additional_document.rb +11 -0
  14. data/lib/checkout_sdk/accounts/additional_info.rb +17 -0
  15. data/lib/checkout_sdk/accounts/articles_of_association_type.rb +10 -0
  16. data/lib/checkout_sdk/accounts/bank_verification.rb +14 -0
  17. data/lib/checkout_sdk/accounts/bank_verification_type.rb +9 -0
  18. data/lib/checkout_sdk/accounts/company.rb +7 -1
  19. data/lib/checkout_sdk/accounts/contact_details.rb +4 -1
  20. data/lib/checkout_sdk/accounts/date_of_incorporation.rb +14 -0
  21. data/lib/checkout_sdk/accounts/entity_files_request.rb +13 -0
  22. data/lib/checkout_sdk/accounts/entity_requirement_priority.rb +12 -0
  23. data/lib/checkout_sdk/accounts/entity_requirement_reason.rb +11 -0
  24. data/lib/checkout_sdk/accounts/entity_requirement_update_request.rb +22 -0
  25. data/lib/checkout_sdk/accounts/entity_requirement_update_status.rb +12 -0
  26. data/lib/checkout_sdk/accounts/financial_verification.rb +14 -0
  27. data/lib/checkout_sdk/accounts/financial_verification_type.rb +9 -0
  28. data/lib/checkout_sdk/accounts/instrument_details_ach.rb +21 -0
  29. data/lib/checkout_sdk/accounts/{headers.rb → invitee.rb} +3 -3
  30. data/lib/checkout_sdk/accounts/onboard_entity.rb +21 -4
  31. data/lib/checkout_sdk/accounts/onboard_sub_entity_documents.rb +31 -4
  32. data/lib/checkout_sdk/accounts/processing_details.rb +26 -0
  33. data/lib/checkout_sdk/accounts/proof_of_legality.rb +14 -0
  34. data/lib/checkout_sdk/accounts/proof_of_legality_type.rb +9 -0
  35. data/lib/checkout_sdk/accounts/proof_of_principal_address.rb +14 -0
  36. data/lib/checkout_sdk/accounts/proof_of_principal_address_type.rb +9 -0
  37. data/lib/checkout_sdk/accounts/reserve_rule_create_request.rb +14 -0
  38. data/lib/checkout_sdk/accounts/reserve_rule_holding_duration.rb +13 -0
  39. data/lib/checkout_sdk/accounts/reserve_rule_update_request.rb +15 -0
  40. data/lib/checkout_sdk/accounts/rolling_reserve_rule.rb +15 -0
  41. data/lib/checkout_sdk/accounts/schedule_frequency_daily.rb +1 -1
  42. data/lib/checkout_sdk/accounts/schedule_frequency_monthly.rb +1 -1
  43. data/lib/checkout_sdk/accounts/schedule_frequency_weekly.rb +1 -1
  44. data/lib/checkout_sdk/accounts/shareholder_structure.rb +14 -0
  45. data/lib/checkout_sdk/accounts/shareholder_structure_type.rb +9 -0
  46. data/lib/checkout_sdk/accounts/submitter.rb +13 -0
  47. data/lib/checkout_sdk/agentic_commerce/agentic_commerce.rb +8 -0
  48. data/lib/checkout_sdk/agentic_commerce/agentic_commerce_client.rb +31 -0
  49. data/lib/checkout_sdk/agentic_commerce/delegated_payment_allowance.rb +28 -0
  50. data/lib/checkout_sdk/agentic_commerce/delegated_payment_billing_address.rb +33 -0
  51. data/lib/checkout_sdk/agentic_commerce/delegated_payment_method_card.rb +64 -0
  52. data/lib/checkout_sdk/agentic_commerce/delegated_payment_request.rb +25 -0
  53. data/lib/checkout_sdk/agentic_commerce/delegated_payment_risk_signal.rb +20 -0
  54. data/lib/checkout_sdk/api_client.rb +81 -62
  55. data/lib/checkout_sdk/apm/ideal/ideal_client.rb +1 -1
  56. data/lib/checkout_sdk/apm/previous/klarna/klarna_client.rb +1 -1
  57. data/lib/checkout_sdk/apm/previous/sepa/sepa_client.rb +1 -1
  58. data/lib/checkout_sdk/balances/balance_values.rb +28 -0
  59. data/lib/checkout_sdk/balances/balances.rb +4 -0
  60. data/lib/checkout_sdk/balances/balances_query.rb +32 -0
  61. data/lib/checkout_sdk/balances/collateral_breakdown.rb +16 -0
  62. data/lib/checkout_sdk/balances/currency_account_balance.rb +26 -0
  63. data/lib/checkout_sdk/checkout_api.rb +75 -1
  64. data/lib/checkout_sdk/checkout_oauth_sdk_builder.rb +12 -1
  65. data/lib/checkout_sdk/client.rb +2 -3
  66. data/lib/checkout_sdk/common/account_change_indicator_type.rb +12 -0
  67. data/lib/checkout_sdk/common/account_holder.rb +12 -9
  68. data/lib/checkout_sdk/common/account_password_change_indicator_type.rb +13 -0
  69. data/lib/checkout_sdk/common/account_type_card_product_type.rb +11 -0
  70. data/lib/checkout_sdk/common/cardholder_account_age_indicator_type.rb +13 -0
  71. data/lib/checkout_sdk/common/common.rb +7 -0
  72. data/lib/checkout_sdk/common/customer_retry.rb +11 -0
  73. data/lib/checkout_sdk/common/destination.rb +38 -0
  74. data/lib/checkout_sdk/common/headers.rb +16 -0
  75. data/lib/checkout_sdk/common/payment_source_type.rb +9 -0
  76. data/lib/checkout_sdk/common/product.rb +4 -1
  77. data/lib/checkout_sdk/compliance_requests/compliance_request_responded_field.rb +22 -0
  78. data/lib/checkout_sdk/compliance_requests/compliance_request_responded_fields.rb +15 -0
  79. data/lib/checkout_sdk/compliance_requests/compliance_requests.rb +6 -0
  80. data/lib/checkout_sdk/compliance_requests/compliance_requests_client.rb +34 -0
  81. data/lib/checkout_sdk/compliance_requests/compliance_response_request.rb +16 -0
  82. data/lib/checkout_sdk/customers/customers_client.rb +1 -1
  83. data/lib/checkout_sdk/disputes/dispute_status.rb +1 -0
  84. data/lib/checkout_sdk/disputes/disputes_client.rb +23 -2
  85. data/lib/checkout_sdk/disputes/disputes_query_filter.rb +49 -11
  86. data/lib/checkout_sdk/environment.rb +8 -1
  87. data/lib/checkout_sdk/environment_subdomain.rb +16 -12
  88. data/lib/checkout_sdk/error.rb +24 -8
  89. data/lib/checkout_sdk/financial/financial_client.rb +1 -1
  90. data/lib/checkout_sdk/forward/create_secret_request.rb +17 -0
  91. data/lib/checkout_sdk/forward/forward.rb +5 -0
  92. data/lib/checkout_sdk/forward/forward_client.rb +52 -0
  93. data/lib/checkout_sdk/forward/update_secret_request.rb +15 -0
  94. data/lib/checkout_sdk/identities/aml_screening/aml_screening_client.rb +29 -0
  95. data/lib/checkout_sdk/identities/aml_screening/aml_search_parameters.rb +15 -0
  96. data/lib/checkout_sdk/identities/aml_screening/aml_verification_request.rb +19 -0
  97. data/lib/checkout_sdk/identities/applicants/applicants_client.rb +43 -0
  98. data/lib/checkout_sdk/identities/applicants/create_applicant_request.rb +21 -0
  99. data/lib/checkout_sdk/identities/applicants/update_applicant_request.rb +18 -0
  100. data/lib/checkout_sdk/identities/face_authentication/face_authentication_attempt_request.rb +17 -0
  101. data/lib/checkout_sdk/identities/face_authentication/face_authentication_client.rb +82 -0
  102. data/lib/checkout_sdk/identities/face_authentication/face_authentication_request.rb +21 -0
  103. data/lib/checkout_sdk/identities/id_document_verification/id_document_verification_client.rb +77 -0
  104. data/lib/checkout_sdk/identities/id_document_verification/id_document_verification_request.rb +27 -0
  105. data/lib/checkout_sdk/identities/identities.rb +27 -0
  106. data/lib/checkout_sdk/identities/identity_verification/identity_verification_attempt_request.rb +17 -0
  107. data/lib/checkout_sdk/identities/identity_verification/identity_verification_client.rb +99 -0
  108. data/lib/checkout_sdk/identities/identity_verification/identity_verification_request.rb +21 -0
  109. data/lib/checkout_sdk/identities/identity_verification/idv_client_information.rb +17 -0
  110. data/lib/checkout_sdk/identities/identity_verification/idv_declared_data.rb +15 -0
  111. data/lib/checkout_sdk/instruments/base_instruments_client.rb +9 -0
  112. data/lib/checkout_sdk/instruments/create/instrument_bank_account.rb +1 -1
  113. data/lib/checkout_sdk/instruments/create/instrument_sepa.rb +1 -1
  114. data/lib/checkout_sdk/instruments/create/instrument_token.rb +1 -1
  115. data/lib/checkout_sdk/instruments/instruments_client.rb +1 -1
  116. data/lib/checkout_sdk/instruments/previous/instruments_client.rb +1 -1
  117. data/lib/checkout_sdk/instruments/update/update_instrument_bank_account.rb +1 -1
  118. data/lib/checkout_sdk/instruments/update/update_instrument_card.rb +1 -1
  119. data/lib/checkout_sdk/instruments/update/update_instrument_token.rb +1 -1
  120. data/lib/checkout_sdk/issuing/add_control_group_request.rb +19 -0
  121. data/lib/checkout_sdk/issuing/add_control_profile_request.rb +13 -0
  122. data/lib/checkout_sdk/issuing/amend_dispute_request.rb +31 -0
  123. data/lib/checkout_sdk/issuing/cardholder_access_token_request.rb +26 -0
  124. data/lib/checkout_sdk/issuing/create_dispute_request.rb +27 -0
  125. data/lib/checkout_sdk/issuing/escalate_dispute_request.rb +23 -0
  126. data/lib/checkout_sdk/issuing/issuing.rb +27 -0
  127. data/lib/checkout_sdk/issuing/issuing_address.rb +25 -0
  128. data/lib/checkout_sdk/issuing/issuing_client.rb +274 -14
  129. data/lib/checkout_sdk/issuing/issuing_dispute_fraud_details.rb +18 -0
  130. data/lib/checkout_sdk/issuing/issuing_dispute_fraud_type.rb +21 -0
  131. data/lib/checkout_sdk/issuing/issuing_phone_number.rb +16 -0
  132. data/lib/checkout_sdk/issuing/oob_authentication_request.rb +15 -0
  133. data/lib/checkout_sdk/issuing/oob_simulate_transaction_details.rb +19 -0
  134. data/lib/checkout_sdk/issuing/simulate_refund_request.rb +13 -0
  135. data/lib/checkout_sdk/issuing/submit_dispute_request.rb +21 -0
  136. data/lib/checkout_sdk/issuing/update_card_request.rb +27 -0
  137. data/lib/checkout_sdk/issuing/update_cardholder_request.rb +29 -0
  138. data/lib/checkout_sdk/issuing/update_control_profile_request.rb +13 -0
  139. data/lib/checkout_sdk/metadata/metadata_client.rb +1 -1
  140. data/lib/checkout_sdk/metadata/source/bin_metadata_source.rb +1 -1
  141. data/lib/checkout_sdk/metadata/source/card_metadata_source.rb +1 -1
  142. data/lib/checkout_sdk/metadata/source/id_metadata_source.rb +1 -1
  143. data/lib/checkout_sdk/metadata/source/token_metadata_source.rb +1 -1
  144. data/lib/checkout_sdk/network_tokens/network_token_cryptogram_request.rb +13 -0
  145. data/lib/checkout_sdk/network_tokens/network_token_source_card.rb +25 -0
  146. data/lib/checkout_sdk/network_tokens/network_token_source_id.rb +19 -0
  147. data/lib/checkout_sdk/network_tokens/network_tokens.rb +7 -0
  148. data/lib/checkout_sdk/network_tokens/network_tokens_client.rb +51 -0
  149. data/lib/checkout_sdk/network_tokens/provision_network_token_request.rb +14 -0
  150. data/lib/checkout_sdk/oauth_access_token.rb +6 -1
  151. data/lib/checkout_sdk/oauth_scopes.rb +4 -0
  152. data/lib/checkout_sdk/oauth_sdk_credentials.rb +2 -1
  153. data/lib/checkout_sdk/onboarding_simulator/onboarding_simulator.rb +6 -0
  154. data/lib/checkout_sdk/onboarding_simulator/onboarding_simulator_client.rb +72 -0
  155. data/lib/checkout_sdk/onboarding_simulator/simulator_entity_status.rb +16 -0
  156. data/lib/checkout_sdk/onboarding_simulator/simulator_set_requirements_due_request.rb +14 -0
  157. data/lib/checkout_sdk/onboarding_simulator/simulator_set_status_request.rb +13 -0
  158. data/lib/checkout_sdk/payment_methods/payment_methods.rb +4 -0
  159. data/lib/checkout_sdk/payment_methods/payment_methods_client.rb +24 -0
  160. data/lib/checkout_sdk/payment_methods/payment_methods_query.rb +13 -0
  161. data/lib/checkout_sdk/payments/apple_pay/apple_pay_certificate_request.rb +13 -0
  162. data/lib/checkout_sdk/payments/apple_pay/apple_pay_client.rb +44 -0
  163. data/lib/checkout_sdk/payments/apple_pay/apple_pay_enrollment_request.rb +13 -0
  164. data/lib/checkout_sdk/payments/apple_pay/apple_pay_signing_request.rb +13 -0
  165. data/lib/checkout_sdk/payments/applepay.rb +14 -0
  166. data/lib/checkout_sdk/payments/base_payments_client.rb +19 -0
  167. data/lib/checkout_sdk/payments/cancellation_request.rb +13 -0
  168. data/lib/checkout_sdk/payments/{sessions/card.rb → card.rb} +4 -1
  169. data/lib/checkout_sdk/payments/contexts/payment_contexts_client.rb +1 -1
  170. data/lib/checkout_sdk/payments/destination/bank_account_destination.rb +1 -1
  171. data/lib/checkout_sdk/payments/destination/card_destination.rb +1 -1
  172. data/lib/checkout_sdk/payments/destination/id_destination.rb +1 -1
  173. data/lib/checkout_sdk/payments/destination/token_destination.rb +1 -1
  174. data/lib/checkout_sdk/payments/exemption.rb +2 -0
  175. data/lib/checkout_sdk/payments/flow/flow_client.rb +59 -0
  176. data/lib/checkout_sdk/payments/google_pay/google_pay_client.rb +48 -0
  177. data/lib/checkout_sdk/payments/google_pay/google_pay_domain_request.rb +13 -0
  178. data/lib/checkout_sdk/payments/google_pay/google_pay_enrollment_request.rb +17 -0
  179. data/lib/checkout_sdk/payments/googlepay.rb +14 -0
  180. data/lib/checkout_sdk/payments/hosted/hosted_payment_instruction.rb +11 -0
  181. data/lib/checkout_sdk/payments/hosted/hosted_payments_client.rb +1 -1
  182. data/lib/checkout_sdk/payments/hosted/hosted_payments_session.rb +51 -23
  183. data/lib/checkout_sdk/payments/hosted/payment_purpose_type.rb +27 -0
  184. data/lib/checkout_sdk/payments/links/payment_link.rb +26 -1
  185. data/lib/checkout_sdk/payments/links/payments_links_client.rb +1 -1
  186. data/lib/checkout_sdk/payments/locale_type.rb +31 -0
  187. data/lib/checkout_sdk/payments/partial_authorization.rb +11 -0
  188. data/lib/checkout_sdk/payments/passenger.rb +20 -6
  189. data/lib/checkout_sdk/payments/payment_method_configuration.rb +17 -0
  190. data/lib/checkout_sdk/payments/payment_plan.rb +43 -0
  191. data/lib/checkout_sdk/payments/payment_request.rb +5 -1
  192. data/lib/checkout_sdk/payments/payments.rb +48 -4
  193. data/lib/checkout_sdk/payments/payments_client.rb +1 -1
  194. data/lib/checkout_sdk/payments/payments_search_request.rb +20 -0
  195. data/lib/checkout_sdk/payments/previous/destination/card_destination.rb +1 -1
  196. data/lib/checkout_sdk/payments/previous/destination/id_destination.rb +1 -1
  197. data/lib/checkout_sdk/payments/previous/destination/token_destination.rb +1 -1
  198. data/lib/checkout_sdk/payments/previous/payments_client.rb +1 -1
  199. data/lib/checkout_sdk/payments/previous/source/apm/alipay_source.rb +1 -1
  200. data/lib/checkout_sdk/payments/previous/source/apm/alma_source.rb +1 -1
  201. data/lib/checkout_sdk/payments/previous/source/apm/bancontact_source.rb +1 -1
  202. data/lib/checkout_sdk/payments/previous/source/apm/benefit_pay_source.rb +1 -1
  203. data/lib/checkout_sdk/payments/previous/source/apm/boleto_source.rb +1 -1
  204. data/lib/checkout_sdk/payments/previous/source/apm/eps_source.rb +1 -1
  205. data/lib/checkout_sdk/payments/previous/source/apm/fawry_source.rb +1 -1
  206. data/lib/checkout_sdk/payments/previous/source/apm/giropay_source.rb +1 -1
  207. data/lib/checkout_sdk/payments/previous/source/apm/ideal_source.rb +1 -1
  208. data/lib/checkout_sdk/payments/previous/source/apm/klarna_source.rb +1 -1
  209. data/lib/checkout_sdk/payments/previous/source/apm/knet_source.rb +1 -1
  210. data/lib/checkout_sdk/payments/previous/source/apm/multi_banco_source.rb +1 -1
  211. data/lib/checkout_sdk/payments/previous/source/apm/oxxo_source.rb +1 -1
  212. data/lib/checkout_sdk/payments/previous/source/apm/p24_source.rb +1 -1
  213. data/lib/checkout_sdk/payments/previous/source/apm/pago_facil_source.rb +1 -1
  214. data/lib/checkout_sdk/payments/previous/source/apm/paypal_source.rb +1 -1
  215. data/lib/checkout_sdk/payments/previous/source/apm/poli_source.rb +1 -1
  216. data/lib/checkout_sdk/payments/previous/source/apm/qpay_source.rb +1 -1
  217. data/lib/checkout_sdk/payments/previous/source/apm/rapi_pago_source.rb +1 -1
  218. data/lib/checkout_sdk/payments/previous/source/apm/sofort_source.rb +1 -1
  219. data/lib/checkout_sdk/payments/previous/source/card_source.rb +1 -1
  220. data/lib/checkout_sdk/payments/previous/source/customer_source.rb +1 -1
  221. data/lib/checkout_sdk/payments/previous/source/d_local_source.rb +1 -1
  222. data/lib/checkout_sdk/payments/previous/source/id_source.rb +1 -1
  223. data/lib/checkout_sdk/payments/previous/source/network_token_source.rb +1 -1
  224. data/lib/checkout_sdk/payments/previous/source/token_source.rb +1 -1
  225. data/lib/checkout_sdk/payments/processing_data.rb +45 -0
  226. data/lib/checkout_sdk/payments/processing_settings.rb +14 -1
  227. data/lib/checkout_sdk/payments/product.rb +14 -1
  228. data/lib/checkout_sdk/payments/product_item_type.rb +11 -0
  229. data/lib/checkout_sdk/payments/product_sub_type.rb +13 -0
  230. data/lib/checkout_sdk/payments/refund_order.rb +53 -0
  231. data/lib/checkout_sdk/payments/refund_request.rb +11 -2
  232. data/lib/checkout_sdk/payments/sender/corporate_sender.rb +1 -1
  233. data/lib/checkout_sdk/payments/sender/government_sender.rb +4 -1
  234. data/lib/checkout_sdk/payments/sender/individual_sender.rb +4 -1
  235. data/lib/checkout_sdk/payments/sender/instrument_sender.rb +1 -1
  236. data/lib/checkout_sdk/payments/sessions/payment_sessions_client.rb +13 -1
  237. data/lib/checkout_sdk/payments/sessions/payment_sessions_request.rb +11 -1
  238. data/lib/checkout_sdk/payments/sessions/store_payment_details_type.rb +1 -0
  239. data/lib/checkout_sdk/payments/setups/account_funding_transaction_identification.rb +17 -0
  240. data/lib/checkout_sdk/payments/setups/account_funding_transaction_identification_type.rb +15 -0
  241. data/lib/checkout_sdk/payments/setups/account_funding_transaction_purpose.rb +29 -0
  242. data/lib/checkout_sdk/payments/setups/account_funding_transaction_recipient.rb +26 -0
  243. data/lib/checkout_sdk/payments/setups/account_funding_transaction_sender.rb +29 -0
  244. data/lib/checkout_sdk/payments/setups/bacs_payment_method.rb +41 -0
  245. data/lib/checkout_sdk/payments/setups/blik_payment_method.rb +20 -0
  246. data/lib/checkout_sdk/payments/setups/card_present_payment_method.rb +35 -0
  247. data/lib/checkout_sdk/payments/setups/pay_by_bank_payment_method.rb +24 -0
  248. data/lib/checkout_sdk/payments/setups/payment_setup_account_funding_transaction.rb +20 -0
  249. data/lib/checkout_sdk/payments/setups/payment_setups_client.rb +75 -0
  250. data/lib/checkout_sdk/payments/setups/stablecoin_payment_method.rb +16 -0
  251. data/lib/checkout_sdk/payments/source/apm/ach_source.rb +27 -0
  252. data/lib/checkout_sdk/payments/source/apm/after_pay_source.rb +1 -1
  253. data/lib/checkout_sdk/payments/source/apm/alma_source.rb +1 -1
  254. data/lib/checkout_sdk/payments/source/apm/bancontact_source.rb +1 -1
  255. data/lib/checkout_sdk/payments/source/apm/benefit_source.rb +1 -1
  256. data/lib/checkout_sdk/payments/source/apm/bizum_source.rb +15 -0
  257. data/lib/checkout_sdk/payments/source/apm/blik_source.rb +31 -0
  258. data/lib/checkout_sdk/payments/source/apm/cv_connect_source.rb +1 -1
  259. data/lib/checkout_sdk/payments/source/apm/eps_source.rb +1 -1
  260. data/lib/checkout_sdk/payments/source/apm/fawry_source.rb +1 -1
  261. data/lib/checkout_sdk/payments/source/apm/giropay_source.rb +1 -1
  262. data/lib/checkout_sdk/payments/source/apm/ideal_source.rb +1 -1
  263. data/lib/checkout_sdk/payments/source/apm/illicado_source.rb +1 -1
  264. data/lib/checkout_sdk/payments/source/apm/klarna_source.rb +1 -1
  265. data/lib/checkout_sdk/payments/source/apm/knet_source.rb +1 -1
  266. data/lib/checkout_sdk/payments/source/apm/mbway_source.rb +1 -1
  267. data/lib/checkout_sdk/payments/source/apm/multi_banco_source.rb +1 -1
  268. data/lib/checkout_sdk/payments/source/apm/octopus_source.rb +11 -0
  269. data/lib/checkout_sdk/payments/source/apm/p24_source.rb +1 -1
  270. data/lib/checkout_sdk/payments/source/apm/paypal_source.rb +1 -1
  271. data/lib/checkout_sdk/payments/source/apm/plaid_source.rb +17 -0
  272. data/lib/checkout_sdk/payments/source/apm/post_finance_source.rb +1 -1
  273. data/lib/checkout_sdk/payments/source/apm/qpay_source.rb +1 -1
  274. data/lib/checkout_sdk/payments/source/apm/sepa_source.rb +1 -1
  275. data/lib/checkout_sdk/payments/source/apm/sequra_source.rb +15 -0
  276. data/lib/checkout_sdk/payments/source/apm/sofort_source.rb +1 -1
  277. data/lib/checkout_sdk/payments/source/apm/stcpay_source.rb +1 -1
  278. data/lib/checkout_sdk/payments/source/apm/tamara_source.rb +1 -1
  279. data/lib/checkout_sdk/payments/source/apm/trustly_source.rb +1 -1
  280. data/lib/checkout_sdk/payments/source/apm/we_chat_pay_source.rb +1 -1
  281. data/lib/checkout_sdk/payments/source/bank_account_source.rb +1 -1
  282. data/lib/checkout_sdk/payments/source/card_source.rb +5 -2
  283. data/lib/checkout_sdk/payments/source/currency_account_source.rb +1 -1
  284. data/lib/checkout_sdk/payments/source/customer_source.rb +5 -2
  285. data/lib/checkout_sdk/payments/source/entity_source.rb +1 -1
  286. data/lib/checkout_sdk/payments/source/id_source.rb +5 -2
  287. data/lib/checkout_sdk/payments/source/network_token_source.rb +8 -2
  288. data/lib/checkout_sdk/payments/source/provider_token_source.rb +1 -1
  289. data/lib/checkout_sdk/payments/source/token_source.rb +5 -2
  290. data/lib/checkout_sdk/reports/reports_client.rb +1 -1
  291. data/lib/checkout_sdk/risk/source/card_source.rb +1 -1
  292. data/lib/checkout_sdk/risk/source/customer_source.rb +1 -1
  293. data/lib/checkout_sdk/risk/source/id_source.rb +1 -1
  294. data/lib/checkout_sdk/risk/source/token_source.rb +1 -1
  295. data/lib/checkout_sdk/sessions/authentication_method.rb +3 -3
  296. data/lib/checkout_sdk/sessions/authentication_type.rb +3 -3
  297. data/lib/checkout_sdk/sessions/card_holder_account_info.rb +39 -3
  298. data/lib/checkout_sdk/sessions/channel/app_session.rb +1 -1
  299. data/lib/checkout_sdk/sessions/channel/browser_session.rb +5 -2
  300. data/lib/checkout_sdk/sessions/channel/channel_data_type.rb +1 -0
  301. data/lib/checkout_sdk/sessions/channel/merchant_initiated_session.rb +15 -0
  302. data/lib/checkout_sdk/sessions/channel/request_type.rb +19 -0
  303. data/lib/checkout_sdk/sessions/channel/sdk_interface_type.rb +2 -2
  304. data/lib/checkout_sdk/sessions/completion/hosted_completion_info.rb +1 -1
  305. data/lib/checkout_sdk/sessions/completion/non_hosted_completion_info.rb +1 -1
  306. data/lib/checkout_sdk/sessions/device_information.rb +17 -0
  307. data/lib/checkout_sdk/sessions/initial_transaction.rb +23 -0
  308. data/lib/checkout_sdk/sessions/installment.rb +5 -0
  309. data/lib/checkout_sdk/sessions/merchant_risk_info.rb +20 -2
  310. data/lib/checkout_sdk/sessions/optimization.rb +19 -0
  311. data/lib/checkout_sdk/sessions/optimized_properties.rb +17 -0
  312. data/lib/checkout_sdk/sessions/pre_order_purchase_indicator_type.rb +10 -0
  313. data/lib/checkout_sdk/sessions/recurring.rb +5 -0
  314. data/lib/checkout_sdk/sessions/reorder_items_indicator_type.rb +10 -0
  315. data/lib/checkout_sdk/sessions/session_request.rb +26 -2
  316. data/lib/checkout_sdk/sessions/sessions.rb +10 -0
  317. data/lib/checkout_sdk/sessions/sessions_client.rb +2 -2
  318. data/lib/checkout_sdk/sessions/source/card_source.rb +3 -2
  319. data/lib/checkout_sdk/sessions/source/id_source.rb +1 -1
  320. data/lib/checkout_sdk/sessions/source/network_token_source.rb +1 -1
  321. data/lib/checkout_sdk/sessions/source/token_source.rb +1 -1
  322. data/lib/checkout_sdk/sessions/three_ds_method_completion_request.rb +3 -1
  323. data/lib/checkout_sdk/sessions/three_ds_req_auth_method.rb +16 -0
  324. data/lib/checkout_sdk/sessions/three_ds_requestor_authentication_info.rb +17 -0
  325. data/lib/checkout_sdk/sessions/transaction_type.rb +3 -3
  326. data/lib/checkout_sdk/sources/sepa_source_request.rb +1 -1
  327. data/lib/checkout_sdk/sources/sources_client.rb +1 -1
  328. data/lib/checkout_sdk/standalone_account_updater/account_updater_card.rb +17 -0
  329. data/lib/checkout_sdk/standalone_account_updater/account_updater_instrument.rb +13 -0
  330. data/lib/checkout_sdk/standalone_account_updater/account_updater_request.rb +13 -0
  331. data/lib/checkout_sdk/standalone_account_updater/account_updater_source_options.rb +15 -0
  332. data/lib/checkout_sdk/standalone_account_updater/standalone_account_updater.rb +7 -0
  333. data/lib/checkout_sdk/standalone_account_updater/standalone_account_updater_client.rb +29 -0
  334. data/lib/checkout_sdk/tokens/apple_pay_token_request.rb +1 -1
  335. data/lib/checkout_sdk/tokens/google_pay_token_request.rb +1 -1
  336. data/lib/checkout_sdk/tokens/token_metadata_billing_address.rb +16 -0
  337. data/lib/checkout_sdk/tokens/token_metadata_response.rb +55 -0
  338. data/lib/checkout_sdk/tokens/tokens.rb +2 -0
  339. data/lib/checkout_sdk/tokens/tokens_client.rb +11 -0
  340. data/lib/checkout_sdk/transfers/create_transfer.rb +5 -5
  341. data/lib/checkout_sdk/transfers/transfer_source.rb +4 -1
  342. data/lib/checkout_sdk/transfers/transfers_client.rb +2 -2
  343. data/lib/checkout_sdk/version.rb +1 -1
  344. data/lib/checkout_sdk/workflows/entity_workflow_condition.rb +1 -1
  345. data/lib/checkout_sdk/workflows/event_workflow_condition.rb +1 -1
  346. data/lib/checkout_sdk/workflows/processing_channel_workflow_condition.rb +1 -1
  347. data/lib/checkout_sdk/workflows/webhook_workflow_action.rb +1 -1
  348. data/lib/checkout_sdk/workflows/workflows_client.rb +1 -1
  349. data/lib/checkout_sdk.rb +8 -0
  350. metadata +194 -19
  351. data/lib/checkout_sdk/payments/passenger_name.rb +0 -11
  352. data/lib/checkout_sdk/payments/sessions/payment_method_configuration.rb +0 -11
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Issuing
5
+ # Request body for PATCH /issuing/cardholders/{cardholderId}.
6
+ # Maps swagger `update-cardholder-request`.
7
+ #
8
+ # @!attribute first_name
9
+ # @return [String]
10
+ # @!attribute middle_name
11
+ # @return [String]
12
+ # @!attribute last_name
13
+ # @return [String]
14
+ # @!attribute date_of_birth
15
+ # @return [String] ISO-8601 date.
16
+ # @!attribute phone_number
17
+ # @return [IssuingPhoneNumber]
18
+ # @!attribute email
19
+ # @return [String] Email address (rfc6530). Max 254 characters.
20
+ # @!attribute billing_address
21
+ # @return [IssuingAddress]
22
+ # @!attribute residency_address
23
+ # @return [IssuingAddress]
24
+ class UpdateCardholderRequest
25
+ attr_accessor :first_name, :middle_name, :last_name, :date_of_birth,
26
+ :phone_number, :email, :billing_address, :residency_address
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Issuing
5
+ # Request body for PATCH /issuing/controls/control-profiles/{controlProfileId}.
6
+ #
7
+ # @!attribute name
8
+ # @return [String]
9
+ class UpdateControlProfileRequest
10
+ attr_accessor :name
11
+ end
12
+ end
13
+ end
@@ -10,7 +10,7 @@ module CheckoutSdk
10
10
  # @param [ApiClient] api_client
11
11
  # @param [CheckoutConfiguration] configuration
12
12
  def initialize(api_client, configuration)
13
- super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH
13
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
14
14
  end
15
15
 
16
16
  # @param [Hash, MetadataRequest] metadata_request
@@ -8,7 +8,7 @@ module CheckoutSdk
8
8
  attr_accessor :bin
9
9
 
10
10
  def initialize
11
- super MetadataSourceType::BIN
11
+ super(MetadataSourceType::BIN)
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module CheckoutSdk
8
8
  attr_accessor :number
9
9
 
10
10
  def initialize
11
- super MetadataSourceType::CARD
11
+ super(MetadataSourceType::CARD)
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module CheckoutSdk
8
8
  attr_accessor :id
9
9
 
10
10
  def initialize
11
- super MetadataSourceType::ID
11
+ super(MetadataSourceType::ID)
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module CheckoutSdk
8
8
  attr_accessor :token
9
9
 
10
10
  def initialize
11
- super MetadataSourceType::TOKEN
11
+ super(MetadataSourceType::TOKEN)
12
12
  end
13
13
  end
14
14
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module NetworkTokens
5
+ # Request body for POST /network-tokens/{network_token_id}/cryptograms.
6
+ #
7
+ # @!attribute transaction_type
8
+ # @return [String] One of "ecom", "recurring", "pos", "aft".
9
+ class NetworkTokenCryptogramRequest
10
+ attr_accessor :transaction_type
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module NetworkTokens
5
+ # Card-based source for provisioning a network token. Set `type = "card"`.
6
+ #
7
+ # @!attribute type
8
+ # @return [String] Always "card".
9
+ # @!attribute number
10
+ # @return [String] The card number.
11
+ # @!attribute cvv
12
+ # @return [String]
13
+ # @!attribute expiry_month
14
+ # @return [String] 1- or 2-digit month.
15
+ # @!attribute expiry_year
16
+ # @return [String] Four-digit year.
17
+ class NetworkTokenSourceCard
18
+ attr_accessor :type, :number, :cvv, :expiry_month, :expiry_year
19
+
20
+ def initialize
21
+ @type = 'card'
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module NetworkTokens
5
+ # Existing-instrument source for provisioning a network token. Set `type = "id"`.
6
+ #
7
+ # @!attribute type
8
+ # @return [String] Always "id".
9
+ # @!attribute id
10
+ # @return [String] The source instrument id (e.g. "src_...").
11
+ class NetworkTokenSourceId
12
+ attr_accessor :type, :id
13
+
14
+ def initialize
15
+ @type = 'id'
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'checkout_sdk/network_tokens/network_token_source_card'
4
+ require 'checkout_sdk/network_tokens/network_token_source_id'
5
+ require 'checkout_sdk/network_tokens/provision_network_token_request'
6
+ require 'checkout_sdk/network_tokens/network_token_cryptogram_request'
7
+ require 'checkout_sdk/network_tokens/network_tokens_client'
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module NetworkTokens
5
+ # Client for the Network Tokens API.
6
+ class NetworkTokensClient < Client
7
+ NETWORK_TOKENS = 'network-tokens'
8
+ CRYPTOGRAMS = 'cryptograms'
9
+ DELETE = 'delete'
10
+ private_constant :NETWORK_TOKENS, :CRYPTOGRAMS, :DELETE
11
+
12
+ # @param [ApiClient] api_client
13
+ # @param [CheckoutConfiguration] configuration
14
+ def initialize(api_client, configuration)
15
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
16
+ end
17
+
18
+ # Provision a Network Token.
19
+ # @param [Hash, ProvisionNetworkTokenRequest] provision_request
20
+ def provision_network_token(provision_request)
21
+ api_client.invoke_post(NETWORK_TOKENS, sdk_authorization, provision_request)
22
+ end
23
+
24
+ # Retrieve a Network Token.
25
+ # @param [String] network_token_id
26
+ def get_network_token(network_token_id)
27
+ api_client.invoke_get(build_path(NETWORK_TOKENS, network_token_id), sdk_authorization)
28
+ end
29
+
30
+ # Request a fresh cryptogram for a Network Token (for SCA / fresh payment flows).
31
+ # @param [String] network_token_id
32
+ # @param [Hash, NetworkTokenCryptogramRequest] cryptogram_request
33
+ def request_cryptograms(network_token_id, cryptogram_request = nil)
34
+ api_client.invoke_post(
35
+ build_path(NETWORK_TOKENS, network_token_id, CRYPTOGRAMS),
36
+ sdk_authorization,
37
+ cryptogram_request
38
+ )
39
+ end
40
+
41
+ # Soft-delete a Network Token. The API uses PATCH on .../delete.
42
+ # @param [String] network_token_id
43
+ def delete_network_token(network_token_id)
44
+ api_client.invoke_patch(
45
+ build_path(NETWORK_TOKENS, network_token_id, DELETE),
46
+ sdk_authorization
47
+ )
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module NetworkTokens
5
+ # Request body for POST /network-tokens.
6
+ # `source` must be either a NetworkTokenSourceCard or a NetworkTokenSourceId.
7
+ #
8
+ # @!attribute source
9
+ # @return [NetworkTokenSourceCard, NetworkTokenSourceId]
10
+ class ProvisionNetworkTokenRequest
11
+ attr_accessor :source
12
+ end
13
+ end
14
+ end
@@ -3,17 +3,22 @@
3
3
  module CheckoutSdk
4
4
  # @!attribute token
5
5
  # @return [String]
6
+ # @!attribute token_type
7
+ # @return [String]
6
8
  # @!attribute expiration_date
7
9
  # @return [Time]
8
10
  class OAuthAccessToken
9
11
  attr_accessor :token,
12
+ :token_type,
10
13
  :expiration_date
11
14
 
12
15
  # @param [String] token
16
+ # @param [String] token_type
13
17
  # @param [Time] expiration_date
14
18
  # @return [OAuthAccessToken]
15
- def initialize(token, expiration_date)
19
+ def initialize(token, token_type, expiration_date)
16
20
  @token = token
21
+ @token_type = token_type
17
22
  @expiration_date = expiration_date
18
23
  end
19
24
 
@@ -3,6 +3,7 @@
3
3
  module CheckoutSdk
4
4
  module OAuthScopes
5
5
  VAULT = 'vault'
6
+ VAULT_APME_ENROLLMENT = 'vault:apme-enrollment'
6
7
  VAULT_INSTRUMENTS = 'vault:instruments'
7
8
  VAULT_TOKENIZATION = 'vault:tokenization'
8
9
  GATEWAY = 'gateway'
@@ -47,5 +48,8 @@ module CheckoutSdk
47
48
  ISSUING_CARD_MGMT = 'issuing:card-mgmt'
48
49
  ISSUING_CONTROLS_READ = 'issuing:controls-read'
49
50
  ISSUING_CONTROLS_WRITE = 'issuing:controls-write'
51
+ FORWARD = 'forward'
52
+ FORWARD_SECRETS = 'forward:secrets'
53
+ IDENTITY_VERIFICATION = 'identity-verification'
50
54
  end
51
55
  end
@@ -59,9 +59,9 @@ module CheckoutSdk
59
59
  return @access_token unless @access_token.nil? || @access_token.token.nil? || !@access_token.valid?
60
60
 
61
61
  data = {
62
+ grant_type: 'client_credentials',
62
63
  client_id: @client_id,
63
64
  client_secret: @client_secret,
64
- grant_type: 'client_credentials',
65
65
  scope: @scopes.join(' ')
66
66
  }
67
67
 
@@ -81,6 +81,7 @@ module CheckoutSdk
81
81
  oauth_response = JSON.parse(response.body, object_class: OpenStruct)
82
82
 
83
83
  @access_token = OAuthAccessToken.new(oauth_response.access_token,
84
+ oauth_response.token_type,
84
85
  Time.now + oauth_response.expires_in)
85
86
  end
86
87
 
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'checkout_sdk/onboarding_simulator/simulator_entity_status'
4
+ require 'checkout_sdk/onboarding_simulator/simulator_set_requirements_due_request'
5
+ require 'checkout_sdk/onboarding_simulator/simulator_set_status_request'
6
+ require 'checkout_sdk/onboarding_simulator/onboarding_simulator_client'
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module OnboardingSimulator
5
+ # Client for the Onboarding Simulator API (Sandbox only).
6
+ #
7
+ # All endpoints require OAuth with the `accounts` scope. Calling these
8
+ # endpoints in Production returns 404.
9
+ class OnboardingSimulatorClient < Client
10
+ SIMULATE = 'simulate'
11
+ ENTITIES = 'entities'
12
+ REQUIREMENTS_DUE = 'requirements-due'
13
+ SCENARIOS = 'scenarios'
14
+ STATUS = 'status'
15
+ private_constant :SIMULATE, :ENTITIES, :REQUIREMENTS_DUE, :SCENARIOS, :STATUS
16
+
17
+ # @param [ApiClient] api_client
18
+ # @param [CheckoutConfiguration] configuration
19
+ def initialize(api_client, configuration)
20
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::OAUTH)
21
+ end
22
+
23
+ # Marks the specified requirement fields as due on an entity.
24
+ # @param [String] entity_id
25
+ # @param [Hash, SimulatorSetRequirementsDueRequest] request
26
+ def set_requirements_due(entity_id, request)
27
+ api_client.invoke_post(
28
+ build_path(SIMULATE, ENTITIES, entity_id, REQUIREMENTS_DUE),
29
+ sdk_authorization,
30
+ request
31
+ )
32
+ end
33
+
34
+ # Executes a pre-defined scenario against an entity.
35
+ # @param [String] entity_id
36
+ # @param [String] scenario_id
37
+ def run_scenario(entity_id, scenario_id)
38
+ api_client.invoke_post(
39
+ build_path(SIMULATE, ENTITIES, entity_id, SCENARIOS, scenario_id),
40
+ sdk_authorization
41
+ )
42
+ end
43
+
44
+ # Forces the entity to the specified status.
45
+ # @param [String] entity_id
46
+ # @param [Hash, SimulatorSetStatusRequest] request
47
+ def set_entity_status(entity_id, request)
48
+ api_client.invoke_post(
49
+ build_path(SIMULATE, ENTITIES, entity_id, STATUS),
50
+ sdk_authorization,
51
+ request
52
+ )
53
+ end
54
+
55
+ # Returns all requirement fields that can be set as due on an entity.
56
+ def list_available_requirements
57
+ api_client.invoke_get(
58
+ build_path(SIMULATE, REQUIREMENTS_DUE),
59
+ sdk_authorization
60
+ )
61
+ end
62
+
63
+ # Returns all pre-defined scenarios available.
64
+ def list_scenarios
65
+ api_client.invoke_get(
66
+ build_path(SIMULATE, SCENARIOS),
67
+ sdk_authorization
68
+ )
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module OnboardingSimulator
5
+ # Statuses accepted by POST /simulate/entities/{entityId}/status.
6
+ module SimulatorEntityStatus
7
+ DRAFT = 'draft'
8
+ REQUIREMENTS_DUE = 'requirements_due'
9
+ PENDING = 'pending'
10
+ ACTIVE = 'active'
11
+ RESTRICTED = 'restricted'
12
+ REJECTED = 'rejected'
13
+ INACTIVE = 'inactive'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module OnboardingSimulator
5
+ # Request body for POST /simulate/entities/{entityId}/requirements-due.
6
+ #
7
+ # @!attribute fields
8
+ # @return [Array(String)] Requirement field paths to mark as due
9
+ # (e.g. ["individual.identification.document"]).
10
+ class SimulatorSetRequirementsDueRequest
11
+ attr_accessor :fields
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module OnboardingSimulator
5
+ # Request body for POST /simulate/entities/{entityId}/status.
6
+ #
7
+ # @!attribute status
8
+ # @return [String] {SimulatorEntityStatus}
9
+ class SimulatorSetStatusRequest
10
+ attr_accessor :status
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'checkout_sdk/payment_methods/payment_methods_query'
4
+ require 'checkout_sdk/payment_methods/payment_methods_client'
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module PaymentMethods
5
+ # Client for the Payment Methods configuration API.
6
+ # GET /payment-methods returns the configured payment methods for a processing channel.
7
+ class PaymentMethodsClient < Client
8
+ PAYMENT_METHODS = 'payment-methods'
9
+ private_constant :PAYMENT_METHODS
10
+
11
+ # @param [ApiClient] api_client
12
+ # @param [CheckoutConfiguration] configuration
13
+ def initialize(api_client, configuration)
14
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
15
+ end
16
+
17
+ # Get available payment methods.
18
+ # @param [Hash, PaymentMethodsQuery] payment_methods_query
19
+ def get_payment_methods(payment_methods_query)
20
+ api_client.invoke_get(PAYMENT_METHODS, sdk_authorization, payment_methods_query)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module PaymentMethods
5
+ # Query params for GET /payment-methods.
6
+ #
7
+ # @!attribute processing_channel_id
8
+ # @return [String] (required) Pattern: ^(pc)_(\w{26})$
9
+ class PaymentMethodsQuery
10
+ attr_accessor :processing_channel_id
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # Request body for POST /applepay/certificates.
6
+ #
7
+ # @!attribute content
8
+ # @return [String] PEM-encoded certificate content.
9
+ class ApplePayCertificateRequest
10
+ attr_accessor :content
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # Client for the Apple Pay endpoints.
6
+ class ApplePayClient < Client
7
+ APPLEPAY = 'applepay'
8
+ CERTIFICATES = 'certificates'
9
+ ENROLLMENTS = 'enrollments'
10
+ SIGNING_REQUESTS = 'signing-requests'
11
+ private_constant :APPLEPAY, :CERTIFICATES, :ENROLLMENTS, :SIGNING_REQUESTS
12
+
13
+ # @param [ApiClient] api_client
14
+ # @param [CheckoutConfiguration] configuration
15
+ def initialize(api_client, configuration)
16
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::PUBLIC_KEY)
17
+ end
18
+
19
+ # Upload a payment processing certificate. Public key auth per swagger.
20
+ # @param [Hash, ApplePayCertificateRequest] certificate_request
21
+ def upload_certificate(certificate_request)
22
+ api_client.invoke_post(build_path(APPLEPAY, CERTIFICATES),
23
+ sdk_authorization,
24
+ certificate_request)
25
+ end
26
+
27
+ # Enroll a domain to the Apple Pay Service. OAuth required.
28
+ # @param [Hash, ApplePayEnrollmentRequest] enrollment_request
29
+ def enroll_domain(enrollment_request)
30
+ api_client.invoke_post(build_path(APPLEPAY, ENROLLMENTS),
31
+ sdk_authorization(CheckoutSdk::AuthorizationType::OAUTH),
32
+ enrollment_request)
33
+ end
34
+
35
+ # Generate a certificate signing request. Public key auth per swagger.
36
+ # @param [Hash, ApplePaySigningRequest] signing_request
37
+ def generate_signing_request(signing_request)
38
+ api_client.invoke_post(build_path(APPLEPAY, SIGNING_REQUESTS),
39
+ sdk_authorization,
40
+ signing_request)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # Request body for POST /applepay/enrollments.
6
+ #
7
+ # @!attribute domain
8
+ # @return [String] Domain to enroll with Apple Pay.
9
+ class ApplePayEnrollmentRequest
10
+ attr_accessor :domain
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # Request body for POST /applepay/signing-requests.
6
+ #
7
+ # @!attribute protocol_version
8
+ # @return [String] CSR protocol version.
9
+ class ApplePaySigningRequest
10
+ attr_accessor :protocol_version
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute account_holder
6
+ # @return [CheckoutSdk::Common::AccountHolder]
7
+ # @!attribute store_payment_details
8
+ # @return [String] {StorePaymentDetailsType}
9
+ class Applepay
10
+ attr_accessor :account_holder,
11
+ :store_payment_details
12
+ end
13
+ end
14
+ end
@@ -51,6 +51,25 @@ module CheckoutSdk
51
51
  reverse_request,
52
52
  idempotency_key)
53
53
  end
54
+
55
+ # Search payments. POST /payments/search.
56
+ # @param [Hash, PaymentsSearchRequest] search_request
57
+ def search_payments(search_request)
58
+ api_client.invoke_post(build_path(PAYMENTS_PATH, 'search'),
59
+ sdk_authorization,
60
+ search_request)
61
+ end
62
+
63
+ # Cancel a scheduled retry. POST /payments/{id}/cancellations.
64
+ # @param [String] payment_id
65
+ # @param [Hash, CancellationRequest] cancellation_request
66
+ # @param [String, nil] idempotency_key
67
+ def cancel_payment(payment_id, cancellation_request = nil, idempotency_key = nil)
68
+ api_client.invoke_post(build_path(PAYMENTS_PATH, payment_id, 'cancellations'),
69
+ sdk_authorization,
70
+ cancellation_request,
71
+ idempotency_key)
72
+ end
54
73
  end
55
74
  end
56
75
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # Request body for POST /payments/{id}/cancellations.
6
+ #
7
+ # @!attribute reference
8
+ # @return [String] Optional merchant reference (max 80 chars).
9
+ class CancellationRequest
10
+ attr_accessor :reference
11
+ end
12
+ end
13
+ end
@@ -2,10 +2,13 @@
2
2
 
3
3
  module CheckoutSdk
4
4
  module Payments
5
+ # @!attribute account_holder
6
+ # @return [CheckoutSdk::Common::AccountHolder]
5
7
  # @!attribute store_payment_details
6
8
  # @return [String] {StorePaymentDetailsType}
7
9
  class Card
8
- attr_accessor :store_payment_details
10
+ attr_accessor :account_holder,
11
+ :store_payment_details
9
12
  end
10
13
  end
11
14
  end
@@ -8,7 +8,7 @@ module CheckoutSdk
8
8
  # @param [ApiClient] api_client
9
9
  # @param [CheckoutConfiguration] configuration
10
10
  def initialize(api_client, configuration)
11
- super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH
11
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
12
12
  end
13
13
 
14
14
  # @param [Hash] payment_contexts
@@ -35,7 +35,7 @@ module CheckoutSdk
35
35
  :bank
36
36
 
37
37
  def initialize
38
- super CheckoutSdk::Payments::DestinationType::BANK_ACCOUNT
38
+ super(CheckoutSdk::Payments::DestinationType::BANK_ACCOUNT)
39
39
  end
40
40
  end
41
41
  end
@@ -17,7 +17,7 @@ module CheckoutSdk
17
17
  :account_holder
18
18
 
19
19
  def initialize
20
- super CheckoutSdk::Payments::DestinationType::CARD
20
+ super(CheckoutSdk::Payments::DestinationType::CARD)
21
21
  end
22
22
  end
23
23
  end