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,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Common
5
+ # @!attribute account_type
6
+ # @return [AccountType]
7
+ # @!attribute account_number
8
+ # @return [String]
9
+ # @!attribute bank_code
10
+ # @return [String]
11
+ # @!attribute branch_code
12
+ # @return [String]
13
+ # @!attribute iban
14
+ # @return [String]
15
+ # @!attribute bban
16
+ # @return [String]
17
+ # @!attribute swift_bic
18
+ # @return [String]
19
+ # @!attribute country
20
+ # @return [Country]
21
+ # @!attribute account_holder
22
+ # @return [AccountHolder]
23
+ # @!attribute bank
24
+ # @return [BankDetails]
25
+ class Destination
26
+ attr_accessor :account_type,
27
+ :account_number,
28
+ :bank_code,
29
+ :branch_code,
30
+ :iban,
31
+ :bban,
32
+ :swift_bic,
33
+ :country,
34
+ :account_holder,
35
+ :bank
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Common
5
+ # Optional HTTP headers that callers can pass to a client method, mirroring
6
+ # the SDK's `Headers` pattern. Currently exposes `If-Match` (required
7
+ # by endpoints with optimistic-concurrency semantics, e.g. update reserve
8
+ # rule); future shared headers can be added here.
9
+ #
10
+ # @!attribute if_match
11
+ # @return [String] ETag value to forward as the `If-Match` HTTP header.
12
+ class Headers
13
+ attr_accessor :if_match
14
+ end
15
+ end
16
+ end
@@ -44,6 +44,7 @@ module CheckoutSdk
44
44
  TNG = 'tng'
45
45
  AFTERPAY = 'afterpay'
46
46
  BENEFIT = 'benefit'
47
+ BLIK = 'blik'
47
48
  MBWAY = 'mbway'
48
49
  POSTFINANCE = 'postfinance'
49
50
  STCPAY = 'stcpay'
@@ -52,6 +53,14 @@ module CheckoutSdk
52
53
  TRUSTLY = 'trustly'
53
54
  ILLICADO = 'illicado'
54
55
  SEPA = 'sepa'
56
+ ACH = 'ach'
57
+ BIZUM = 'bizum'
58
+ OCTOPUS = 'octopus'
59
+ PLAID = 'plaid'
60
+ SEQURA = 'sequra'
61
+ TABBY = 'tabby'
62
+ APPLEPAY = 'applepay'
63
+ GOOGLEPAY = 'googlepay'
55
64
  end
56
65
  end
57
66
  end
@@ -8,10 +8,13 @@ module CheckoutSdk
8
8
  # @return [Integer]
9
9
  # @!attribute price
10
10
  # @return [Integer]
11
+ # @!attribute reference
12
+ # @return [String]
11
13
  class Product
12
14
  attr_accessor :name,
13
15
  :quantity,
14
- :price
16
+ :price,
17
+ :reference
15
18
  end
16
19
  end
17
20
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module ComplianceRequests
5
+ # A single responded field for a compliance request. Matches swagger
6
+ # `ComplianceRequestRespondedField`.
7
+ #
8
+ # @!attribute name
9
+ # @return [String] The field name (e.g. "date_of_birth").
10
+ # @!attribute value
11
+ # The value provided for the field. Intentionally untyped per swagger
12
+ # (no `type` declaration, `nullable: true`), so the only valid Ruby
13
+ # annotation is `Object`. Concrete shape depends on the field being
14
+ # responded to (e.g. a date string for `date_of_birth`).
15
+ # @return [Object]
16
+ # @!attribute not_available
17
+ # @return [Boolean] Whether the value is unavailable for this field.
18
+ class ComplianceRequestRespondedField
19
+ attr_accessor :name, :value, :not_available
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module ComplianceRequests
5
+ # Groups responded fields by party (sender/recipient).
6
+ #
7
+ # @!attribute sender
8
+ # @return [Array<ComplianceRequestRespondedField>]
9
+ # @!attribute recipient
10
+ # @return [Array<ComplianceRequestRespondedField>]
11
+ class ComplianceRequestRespondedFields
12
+ attr_accessor :sender, :recipient
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'checkout_sdk/compliance_requests/compliance_request_responded_field'
4
+ require 'checkout_sdk/compliance_requests/compliance_request_responded_fields'
5
+ require 'checkout_sdk/compliance_requests/compliance_response_request'
6
+ require 'checkout_sdk/compliance_requests/compliance_requests_client'
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module ComplianceRequests
5
+ # Client for the Compliance Requests API.
6
+ class ComplianceRequestsClient < Client
7
+ COMPLIANCE_REQUESTS = 'compliance-requests'
8
+ private_constant :COMPLIANCE_REQUESTS
9
+
10
+ # @param [ApiClient] api_client
11
+ # @param [CheckoutConfiguration] configuration
12
+ def initialize(api_client, configuration)
13
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
14
+ end
15
+
16
+ # Retrieve an existing compliance request by payment ID.
17
+ # @param [String] payment_id
18
+ def get_compliance_request(payment_id)
19
+ api_client.invoke_get(build_path(COMPLIANCE_REQUESTS, payment_id), sdk_authorization)
20
+ end
21
+
22
+ # Respond to a compliance request.
23
+ # @param [String] payment_id
24
+ # @param [Hash, ComplianceResponseRequest] compliance_response_request
25
+ def respond_to_compliance_request(payment_id, compliance_response_request)
26
+ api_client.invoke_post(
27
+ build_path(COMPLIANCE_REQUESTS, payment_id),
28
+ sdk_authorization,
29
+ compliance_response_request
30
+ )
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module ComplianceRequests
5
+ # Request body for POST /compliance-requests/{payment_id}.
6
+ # Used to respond to a compliance information request raised against a payment.
7
+ #
8
+ # @!attribute fields
9
+ # @return [ComplianceRequestRespondedFields]
10
+ # @!attribute comments
11
+ # @return [String] Optional free-text comment.
12
+ class ComplianceResponseRequest
13
+ attr_accessor :fields, :comments
14
+ end
15
+ end
16
+ end
@@ -9,7 +9,7 @@ module CheckoutSdk
9
9
  # @param [ApiClient] api_client
10
10
  # @param [CheckoutConfiguration] configuration
11
11
  def initialize(api_client, configuration)
12
- super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH
12
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
13
13
  end
14
14
 
15
15
  # @param [Hash, CustomerRequest] customer_request
@@ -13,6 +13,7 @@ module CheckoutSdk
13
13
  ARBITRATION_LOST = 'arbitration_lost'
14
14
  EVIDENCE_REQUIRED = 'evidence_required'
15
15
  EVIDENCE_UNDER_REVIEW = 'evidence_under_review'
16
+ ARB_EVIDENCE_SUBMITTED = 'arb_evidence_submitted'
16
17
  ARBITRATION_UNDER_REVIEW = 'arbitration_under_review'
17
18
  end
18
19
  end
@@ -9,12 +9,13 @@ module CheckoutSdk
9
9
  EVIDENCE = 'evidence'
10
10
  SUBMITTED = 'submitted'
11
11
  SCHEME_FILES = 'schemefiles'
12
- private_constant :DISPUTES, :FILES, :ACCEPT, :EVIDENCE, :SCHEME_FILES
12
+ ARBITRATION = 'arbitration'
13
+ private_constant :DISPUTES, :FILES, :ACCEPT, :EVIDENCE, :SCHEME_FILES, :ARBITRATION
13
14
 
14
15
  # @param [ApiClient] api_client
15
16
  # @param [CheckoutConfiguration] configuration
16
17
  def initialize(api_client, configuration)
17
- super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH
18
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
18
19
  end
19
20
 
20
21
  # @param [Hash, DisputesQueryFilter] disputes_query_filter
@@ -67,6 +68,26 @@ module CheckoutSdk
67
68
  def get_file_details(file_id)
68
69
  api_client.invoke_get(build_path(FILES, file_id), sdk_authorization)
69
70
  end
71
+
72
+ # Submit arbitration evidence on a dispute.
73
+ # @param [String] dispute_id
74
+ # @param [Hash, DisputeArbitrationRequest] arbitration_request
75
+ def submit_arbitration(dispute_id, arbitration_request = nil)
76
+ api_client.invoke_post(
77
+ build_path(DISPUTES, dispute_id, EVIDENCE, ARBITRATION),
78
+ sdk_authorization,
79
+ arbitration_request
80
+ )
81
+ end
82
+
83
+ # Retrieve submitted arbitration evidence.
84
+ # @param [String] dispute_id
85
+ def get_submitted_arbitration_evidence(dispute_id)
86
+ api_client.invoke_get(
87
+ build_path(DISPUTES, dispute_id, EVIDENCE, ARBITRATION, SUBMITTED),
88
+ sdk_authorization
89
+ )
90
+ end
70
91
  end
71
92
  end
72
93
  end
@@ -3,27 +3,63 @@
3
3
  module CheckoutSdk
4
4
  module Disputes
5
5
  # @!attribute limit
6
- # @return [Integer]
6
+ # The number of results to return.
7
+ # [Optional]
8
+ # min 1, max 250, default 50
9
+ # @return [Integer, nil]
7
10
  # @!attribute skip
8
- # @return [Integer]
11
+ # The number of results to skip.
12
+ # [Optional]
13
+ # min 0, default 0
14
+ # @return [Integer, nil]
9
15
  # @!attribute id
10
- # @return [String]
16
+ # The unique identifier of the dispute.
17
+ # [Optional]
18
+ # @return [String, nil]
11
19
  # @!attribute statuses
12
- # @return [String] {DisputeStatus}
20
+ # One or more comma-separated statuses to filter by. Works like a logical OR.
21
+ # [Optional]
22
+ # Example: "evidence_required,evidence_under_review"
23
+ # @return [String, nil]
13
24
  # @!attribute payment_id
14
- # @return [String]
25
+ # The unique identifier of the payment.
26
+ # [Optional]
27
+ # @return [String, nil]
15
28
  # @!attribute payment_reference
16
- # @return [String]
29
+ # An optional reference (such as an order ID) that identifies the payment.
30
+ # [Optional]
31
+ # @return [String, nil]
17
32
  # @!attribute payment_arn
18
- # @return [String]
33
+ # The acquirer reference number (ARN).
34
+ # [Optional]
35
+ # @return [String, nil]
19
36
  # @!attribute this_channel_only
20
- # @return [TrueClass, FalseClass]
37
+ # If true, only returns disputes for the channel associated with the secret key.
38
+ # [Optional]
39
+ # @return [TrueClass, FalseClass, nil]
21
40
  # @!attribute entity_ids
22
- # @return [String] - Not available on Previous.
41
+ # One or more comma-separated client entity IDs. Works like a logical OR.
42
+ # [Optional]
43
+ # Example: "ent_wxglze3wwywujg4nna5fb7ldli,ent_vkb5zcy64zoe3cwfmaqvqyqyku"
44
+ # @return [String, nil]
23
45
  # @!attribute sub_entity_ids
24
- # @return [String] - Not available on Previous.
46
+ # One or more comma-separated sub-entity IDs. Works like a logical OR.
47
+ # [Optional]
48
+ # Example: "ent_uzm3uxtssvmuxnyrfdffcyjxeu,ent_hy5wtzwzeuwefmsnjtdhw4scfi"
49
+ # @return [String, nil]
50
+ # @!attribute processing_channel_ids
51
+ # One or more comma-separated processing channel IDs. Works like a logical OR.
52
+ # [Optional]
53
+ # Example: "pc_uzm3uxtssvmuxnyrfdffcyjxeu,pc_hy5wtzwzeuwefmsnjtdhw4scfi"
54
+ # @return [String, nil]
55
+ # @!attribute segment_ids
56
+ # One or more comma-separated segment IDs. Works like a logical OR.
57
+ # [Optional]
58
+ # @return [String, nil]
25
59
  # @!attribute payment_mcc
26
- # @return [String] - Not available on Previous.
60
+ # The merchant category code (MCC) of the payment (ISO 18245).
61
+ # [Optional]
62
+ # @return [String, nil]
27
63
  class DisputesQueryFilter < CheckoutSdk::Common::DateRangeQueryFilter
28
64
  attr_accessor :limit,
29
65
  :skip,
@@ -35,6 +71,8 @@ module CheckoutSdk
35
71
  :this_channel_only,
36
72
  :entity_ids,
37
73
  :sub_entity_ids,
74
+ :processing_channel_ids,
75
+ :segment_ids,
38
76
  :payment_mcc
39
77
  end
40
78
  end
@@ -11,6 +11,8 @@ module CheckoutSdk
11
11
  # @return [String]
12
12
  # @!attribute balances_uri
13
13
  # @return [String]
14
+ # @!attribute forward_uri
15
+ # @return [String]
14
16
  # @!attribute is_sandbox
15
17
  # @return [String]
16
18
  class Environment
@@ -19,6 +21,7 @@ module CheckoutSdk
19
21
  :files_uri,
20
22
  :transfers_uri,
21
23
  :balances_uri,
24
+ :forward_uri,
22
25
  :is_sandbox
23
26
 
24
27
  # @param [String] base_uri
@@ -26,13 +29,15 @@ module CheckoutSdk
26
29
  # @param [String] files_uri
27
30
  # @param [String] transfers_uri
28
31
  # @param [String] balances_uri
32
+ # @param [String] forward_uri
29
33
  # @param [TrueClass, FalseClass] is_sandbox
30
- def initialize(base_uri, authorization_uri, files_uri, transfers_uri, balances_uri, is_sandbox)
34
+ def initialize(base_uri, authorization_uri, files_uri, transfers_uri, balances_uri, forward_uri, is_sandbox)
31
35
  @base_uri = base_uri
32
36
  @authorization_uri = authorization_uri
33
37
  @files_uri = files_uri
34
38
  @transfers_uri = transfers_uri
35
39
  @balances_uri = balances_uri
40
+ @forward_uri = forward_uri
36
41
  @is_sandbox = is_sandbox
37
42
  end
38
43
 
@@ -43,6 +48,7 @@ module CheckoutSdk
43
48
  'https://files.sandbox.checkout.com/',
44
49
  'https://transfers.sandbox.checkout.com/',
45
50
  'https://balances.sandbox.checkout.com/',
51
+ 'https://forward.sandbox.checkout.com/',
46
52
  true)
47
53
  end
48
54
 
@@ -53,6 +59,7 @@ module CheckoutSdk
53
59
  'https://files.checkout.com/',
54
60
  'https://transfers.checkout.com/',
55
61
  'https://balances.checkout.com/',
62
+ 'https://forward.checkout.com/',
56
63
  false)
57
64
  end
58
65
  end
@@ -5,8 +5,10 @@ module CheckoutSdk
5
5
  # @return [Environment]
6
6
  # @!attribute subdomain
7
7
  # @return [String]
8
+ # @!attribute authorization_uri
9
+ # @return [String]
8
10
  class EnvironmentSubdomain
9
- attr_reader :base_uri, :environment, :subdomain
11
+ attr_reader :base_uri, :authorization_uri, :environment, :subdomain
10
12
 
11
13
  # Initializes the EnvironmentSubdomain with the given environment and subdomain.
12
14
  #
@@ -15,22 +17,24 @@ module CheckoutSdk
15
17
  def initialize(environment, subdomain)
16
18
  @environment = environment
17
19
  @subdomain = subdomain
18
- @base_uri = add_subdomain_to_api_url_environment(environment, subdomain)
20
+ @base_uri = create_url_with_subdomain(environment.base_uri, subdomain)
21
+ @authorization_uri = create_url_with_subdomain(environment.authorization_uri, subdomain)
19
22
  end
20
23
 
21
24
  private
22
25
 
23
- # Adds the subdomain to the API URL of the given environment.
26
+ # Applies subdomain transformation to any given URI.
27
+ # If the subdomain is valid (alphanumeric pattern), prepends it to the host.
28
+ # Otherwise, returns the original URI unchanged.
24
29
  #
25
- # @param environment [Environment] The environment object which should have a base_uri method.
26
- # @param subdomain [String] The subdomain to add to the environment's API URL.
27
- # @return [String] The new environment URL with the subdomain added.
28
- def add_subdomain_to_api_url_environment(environment, subdomain)
29
- api_url = environment.base_uri
30
- new_environment = api_url
31
-
32
- if subdomain =~ /^[0-9a-z]+$/
33
- url_parts = URI.parse(api_url)
30
+ # @param original_url [String] The original URL to transform.
31
+ # @param subdomain [String] The subdomain to prepend to the host.
32
+ # @return [String] The transformed URL with subdomain, or original URL if subdomain is invalid.
33
+ def create_url_with_subdomain(original_url, subdomain)
34
+ new_environment = original_url
35
+
36
+ if subdomain =~ /^(?:pl-)?[a-z0-9]+$/
37
+ url_parts = URI.parse(original_url)
34
38
  new_host = "#{subdomain}.#{url_parts.host}"
35
39
 
36
40
  port = url_parts.scheme == 'https' && url_parts.port == 443 ? nil : url_parts.port
@@ -1,30 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CheckoutSdk
4
- class CheckoutException < StandardError
5
- end
4
+ class CheckoutException < StandardError; end
6
5
 
7
6
  class CheckoutArgumentException < CheckoutException; end
8
7
 
9
8
  class CheckoutAuthorizationException < CheckoutException
10
9
  def self.invalid_authorization(authorization_type)
11
- CheckoutAuthorizationException.new("Operation requires #{authorization_type} authorization type")
10
+ new("Operation requires #{authorization_type} authorization type.")
12
11
  end
13
12
 
14
13
  def self.invalid_key(key_type)
15
- CheckoutAuthorizationException.new("#{key_type} is required for this operation.")
14
+ new("#{key_type} is required for this operation.")
16
15
  end
17
16
  end
18
17
 
19
18
  class CheckoutApiException < CheckoutException
20
19
  attr_reader :http_metadata, :error_details
21
20
 
22
- def initialize(response)
21
+ def initialize(response, message = nil)
23
22
  @http_metadata = CheckoutUtils.map_to_http_metadata(response)
24
- if !http_metadata.body.nil? && http_metadata.body != ''
25
- @error_details = JSON.parse(http_metadata.body, object_class: OpenStruct)
23
+ @error_details = parse_error_details(http_metadata.body)
24
+ super(message || build_error_message)
25
+ end
26
+
27
+ private
28
+
29
+ def parse_error_details(body)
30
+ return if body.nil? || body.empty?
31
+
32
+ JSON.parse(body, object_class: OpenStruct)
33
+ rescue JSON::ParserError
34
+ nil
35
+ end
36
+
37
+ def build_error_message
38
+ message = "The API response status code (#{http_metadata.status_code}) does not indicate success."
39
+ if @error_details && !@error_details.to_h.empty?
40
+ details = @error_details.to_h.map { |key, value| "#{key}: #{value}" }.join(', ')
41
+ message += " Details: #{details}."
26
42
  end
27
- super("The API response status code (#{http_metadata.status_code}) does not indicate success.")
43
+ message
28
44
  end
29
45
  end
30
46
  end
@@ -9,7 +9,7 @@ module CheckoutSdk
9
9
  # @param [ApiClient] api_client
10
10
  # @param [CheckoutConfiguration] configuration
11
11
  def initialize(api_client, configuration)
12
- super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH
12
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
13
13
  end
14
14
 
15
15
  # @param [Hash, FinancialActionsQuery] query_filter
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Forward
5
+ # Request body for POST /forward/secrets.
6
+ #
7
+ # @!attribute name
8
+ # @return [String] Secret name (1-64 alphanumeric chars).
9
+ # @!attribute value
10
+ # @return [String] Plaintext secret value (max 8KB).
11
+ # @!attribute entity_id
12
+ # @return [String] Optional entity scope.
13
+ class CreateSecretRequest
14
+ attr_accessor :name, :value, :entity_id
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'checkout_sdk/forward/create_secret_request'
4
+ require 'checkout_sdk/forward/update_secret_request'
5
+ require 'checkout_sdk/forward/forward_client'
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Forward
5
+ class ForwardClient < Client
6
+ FORWARD = 'forward'
7
+ SECRETS = 'secrets'
8
+ private_constant :FORWARD, :SECRETS
9
+
10
+ # @param [ApiClient] api_client
11
+ # @param [CheckoutConfiguration] configuration
12
+ def initialize(api_client, configuration)
13
+ super(api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY_OR_OAUTH)
14
+ end
15
+
16
+ # @param [Hash] forward_request
17
+ def forward_request(forward_request)
18
+ api_client.invoke_post(build_path(FORWARD), sdk_authorization, forward_request)
19
+ end
20
+
21
+ # @param [String] forward_id
22
+ def get(forward_id)
23
+ api_client.invoke_get(build_path(FORWARD, forward_id), sdk_authorization)
24
+ end
25
+
26
+ # @param [Hash, CreateSecretRequest] create_secret_request
27
+ def create_secret(create_secret_request)
28
+ api_client.invoke_post(build_path(FORWARD, SECRETS),
29
+ sdk_authorization,
30
+ create_secret_request)
31
+ end
32
+
33
+ def get_secrets
34
+ api_client.invoke_get(build_path(FORWARD, SECRETS), sdk_authorization)
35
+ end
36
+
37
+ # @param [String] name
38
+ # @param [Hash, UpdateSecretRequest] update_secret_request
39
+ def update_secret(name, update_secret_request)
40
+ api_client.invoke_patch(build_path(FORWARD, SECRETS, name),
41
+ sdk_authorization,
42
+ update_secret_request)
43
+ end
44
+
45
+ # @param [String] name
46
+ def delete_secret(name)
47
+ api_client.invoke_delete(build_path(FORWARD, SECRETS, name),
48
+ sdk_authorization)
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Forward
5
+ # Request body for PATCH /forward/secrets/{name}.
6
+ #
7
+ # @!attribute value
8
+ # @return [String] New plaintext secret value (max 8KB).
9
+ # @!attribute entity_id
10
+ # @return [String] Update the entity scope.
11
+ class UpdateSecretRequest
12
+ attr_accessor :value, :entity_id
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Identities
5
+ module AmlScreening
6
+ # Client for the Identities — AML Screening API.
7
+ class AmlScreeningClient < Client
8
+ AML_VERIFICATIONS = 'aml-verifications'
9
+ private_constant :AML_VERIFICATIONS
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
+ # @param [Hash, AmlVerificationRequest] aml_verification_request
18
+ def create_aml_verification(aml_verification_request)
19
+ api_client.invoke_post(AML_VERIFICATIONS, sdk_authorization, aml_verification_request)
20
+ end
21
+
22
+ # @param [String] aml_verification_id
23
+ def get_aml_verification(aml_verification_id)
24
+ api_client.invoke_get(build_path(AML_VERIFICATIONS, aml_verification_id), sdk_authorization)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Identities
5
+ module AmlScreening
6
+ # The screening configuration to use for an AML verification.
7
+ #
8
+ # @!attribute configuration_identifier
9
+ # @return [String] Your AML Screening configuration ID.
10
+ class AmlSearchParameters
11
+ attr_accessor :configuration_identifier
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Identities
5
+ module AmlScreening
6
+ # Request body for POST /aml-verifications.
7
+ #
8
+ # @!attribute applicant_id
9
+ # @return [String] The applicant's unique identifier (e.g. "aplt_...").
10
+ # @!attribute search_parameters
11
+ # @return [AmlSearchParameters]
12
+ # @!attribute monitored
13
+ # @return [Boolean] Whether to monitor the applicant's AML status.
14
+ class AmlVerificationRequest
15
+ attr_accessor :applicant_id, :search_parameters, :monitored
16
+ end
17
+ end
18
+ end
19
+ end