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.
- checksums.yaml +4 -4
- data/.overcommit.yml +30 -0
- data/.rubocop.yml +15 -1
- data/.ruby-version +1 -0
- data/Gemfile +3 -1
- data/README.md +38 -0
- data/Rakefile +2 -2
- data/lib/checkout_sdk/accounts/account_holder.rb +10 -2
- data/lib/checkout_sdk/accounts/account_holder_corporate.rb +15 -0
- data/lib/checkout_sdk/accounts/account_holder_individual.rb +18 -0
- data/lib/checkout_sdk/accounts/accounts.rb +34 -1
- data/lib/checkout_sdk/accounts/accounts_client.rb +134 -1
- data/lib/checkout_sdk/accounts/additional_document.rb +11 -0
- data/lib/checkout_sdk/accounts/additional_info.rb +17 -0
- data/lib/checkout_sdk/accounts/articles_of_association_type.rb +10 -0
- data/lib/checkout_sdk/accounts/bank_verification.rb +14 -0
- data/lib/checkout_sdk/accounts/bank_verification_type.rb +9 -0
- data/lib/checkout_sdk/accounts/company.rb +7 -1
- data/lib/checkout_sdk/accounts/contact_details.rb +4 -1
- data/lib/checkout_sdk/accounts/date_of_incorporation.rb +14 -0
- data/lib/checkout_sdk/accounts/entity_files_request.rb +13 -0
- data/lib/checkout_sdk/accounts/entity_requirement_priority.rb +12 -0
- data/lib/checkout_sdk/accounts/entity_requirement_reason.rb +11 -0
- data/lib/checkout_sdk/accounts/entity_requirement_update_request.rb +22 -0
- data/lib/checkout_sdk/accounts/entity_requirement_update_status.rb +12 -0
- data/lib/checkout_sdk/accounts/financial_verification.rb +14 -0
- data/lib/checkout_sdk/accounts/financial_verification_type.rb +9 -0
- data/lib/checkout_sdk/accounts/instrument_details_ach.rb +21 -0
- data/lib/checkout_sdk/accounts/{headers.rb → invitee.rb} +3 -3
- data/lib/checkout_sdk/accounts/onboard_entity.rb +21 -4
- data/lib/checkout_sdk/accounts/onboard_sub_entity_documents.rb +31 -4
- data/lib/checkout_sdk/accounts/processing_details.rb +26 -0
- data/lib/checkout_sdk/accounts/proof_of_legality.rb +14 -0
- data/lib/checkout_sdk/accounts/proof_of_legality_type.rb +9 -0
- data/lib/checkout_sdk/accounts/proof_of_principal_address.rb +14 -0
- data/lib/checkout_sdk/accounts/proof_of_principal_address_type.rb +9 -0
- data/lib/checkout_sdk/accounts/reserve_rule_create_request.rb +14 -0
- data/lib/checkout_sdk/accounts/reserve_rule_holding_duration.rb +13 -0
- data/lib/checkout_sdk/accounts/reserve_rule_update_request.rb +15 -0
- data/lib/checkout_sdk/accounts/rolling_reserve_rule.rb +15 -0
- data/lib/checkout_sdk/accounts/schedule_frequency_daily.rb +1 -1
- data/lib/checkout_sdk/accounts/schedule_frequency_monthly.rb +1 -1
- data/lib/checkout_sdk/accounts/schedule_frequency_weekly.rb +1 -1
- data/lib/checkout_sdk/accounts/shareholder_structure.rb +14 -0
- data/lib/checkout_sdk/accounts/shareholder_structure_type.rb +9 -0
- data/lib/checkout_sdk/accounts/submitter.rb +13 -0
- data/lib/checkout_sdk/agentic_commerce/agentic_commerce.rb +8 -0
- data/lib/checkout_sdk/agentic_commerce/agentic_commerce_client.rb +31 -0
- data/lib/checkout_sdk/agentic_commerce/delegated_payment_allowance.rb +28 -0
- data/lib/checkout_sdk/agentic_commerce/delegated_payment_billing_address.rb +33 -0
- data/lib/checkout_sdk/agentic_commerce/delegated_payment_method_card.rb +64 -0
- data/lib/checkout_sdk/agentic_commerce/delegated_payment_request.rb +25 -0
- data/lib/checkout_sdk/agentic_commerce/delegated_payment_risk_signal.rb +20 -0
- data/lib/checkout_sdk/api_client.rb +81 -62
- data/lib/checkout_sdk/apm/ideal/ideal_client.rb +1 -1
- data/lib/checkout_sdk/apm/previous/klarna/klarna_client.rb +1 -1
- data/lib/checkout_sdk/apm/previous/sepa/sepa_client.rb +1 -1
- data/lib/checkout_sdk/balances/balance_values.rb +28 -0
- data/lib/checkout_sdk/balances/balances.rb +4 -0
- data/lib/checkout_sdk/balances/balances_query.rb +32 -0
- data/lib/checkout_sdk/balances/collateral_breakdown.rb +16 -0
- data/lib/checkout_sdk/balances/currency_account_balance.rb +26 -0
- data/lib/checkout_sdk/checkout_api.rb +75 -1
- data/lib/checkout_sdk/checkout_oauth_sdk_builder.rb +12 -1
- data/lib/checkout_sdk/client.rb +2 -3
- data/lib/checkout_sdk/common/account_change_indicator_type.rb +12 -0
- data/lib/checkout_sdk/common/account_holder.rb +12 -9
- data/lib/checkout_sdk/common/account_password_change_indicator_type.rb +13 -0
- data/lib/checkout_sdk/common/account_type_card_product_type.rb +11 -0
- data/lib/checkout_sdk/common/cardholder_account_age_indicator_type.rb +13 -0
- data/lib/checkout_sdk/common/common.rb +7 -0
- data/lib/checkout_sdk/common/customer_retry.rb +11 -0
- data/lib/checkout_sdk/common/destination.rb +38 -0
- data/lib/checkout_sdk/common/headers.rb +16 -0
- data/lib/checkout_sdk/common/payment_source_type.rb +9 -0
- data/lib/checkout_sdk/common/product.rb +4 -1
- data/lib/checkout_sdk/compliance_requests/compliance_request_responded_field.rb +22 -0
- data/lib/checkout_sdk/compliance_requests/compliance_request_responded_fields.rb +15 -0
- data/lib/checkout_sdk/compliance_requests/compliance_requests.rb +6 -0
- data/lib/checkout_sdk/compliance_requests/compliance_requests_client.rb +34 -0
- data/lib/checkout_sdk/compliance_requests/compliance_response_request.rb +16 -0
- data/lib/checkout_sdk/customers/customers_client.rb +1 -1
- data/lib/checkout_sdk/disputes/dispute_status.rb +1 -0
- data/lib/checkout_sdk/disputes/disputes_client.rb +23 -2
- data/lib/checkout_sdk/disputes/disputes_query_filter.rb +49 -11
- data/lib/checkout_sdk/environment.rb +8 -1
- data/lib/checkout_sdk/environment_subdomain.rb +16 -12
- data/lib/checkout_sdk/error.rb +24 -8
- data/lib/checkout_sdk/financial/financial_client.rb +1 -1
- data/lib/checkout_sdk/forward/create_secret_request.rb +17 -0
- data/lib/checkout_sdk/forward/forward.rb +5 -0
- data/lib/checkout_sdk/forward/forward_client.rb +52 -0
- data/lib/checkout_sdk/forward/update_secret_request.rb +15 -0
- data/lib/checkout_sdk/identities/aml_screening/aml_screening_client.rb +29 -0
- data/lib/checkout_sdk/identities/aml_screening/aml_search_parameters.rb +15 -0
- data/lib/checkout_sdk/identities/aml_screening/aml_verification_request.rb +19 -0
- data/lib/checkout_sdk/identities/applicants/applicants_client.rb +43 -0
- data/lib/checkout_sdk/identities/applicants/create_applicant_request.rb +21 -0
- data/lib/checkout_sdk/identities/applicants/update_applicant_request.rb +18 -0
- data/lib/checkout_sdk/identities/face_authentication/face_authentication_attempt_request.rb +17 -0
- data/lib/checkout_sdk/identities/face_authentication/face_authentication_client.rb +82 -0
- data/lib/checkout_sdk/identities/face_authentication/face_authentication_request.rb +21 -0
- data/lib/checkout_sdk/identities/id_document_verification/id_document_verification_client.rb +77 -0
- data/lib/checkout_sdk/identities/id_document_verification/id_document_verification_request.rb +27 -0
- data/lib/checkout_sdk/identities/identities.rb +27 -0
- data/lib/checkout_sdk/identities/identity_verification/identity_verification_attempt_request.rb +17 -0
- data/lib/checkout_sdk/identities/identity_verification/identity_verification_client.rb +99 -0
- data/lib/checkout_sdk/identities/identity_verification/identity_verification_request.rb +21 -0
- data/lib/checkout_sdk/identities/identity_verification/idv_client_information.rb +17 -0
- data/lib/checkout_sdk/identities/identity_verification/idv_declared_data.rb +15 -0
- data/lib/checkout_sdk/instruments/base_instruments_client.rb +9 -0
- data/lib/checkout_sdk/instruments/create/instrument_bank_account.rb +1 -1
- data/lib/checkout_sdk/instruments/create/instrument_sepa.rb +1 -1
- data/lib/checkout_sdk/instruments/create/instrument_token.rb +1 -1
- data/lib/checkout_sdk/instruments/instruments_client.rb +1 -1
- data/lib/checkout_sdk/instruments/previous/instruments_client.rb +1 -1
- data/lib/checkout_sdk/instruments/update/update_instrument_bank_account.rb +1 -1
- data/lib/checkout_sdk/instruments/update/update_instrument_card.rb +1 -1
- data/lib/checkout_sdk/instruments/update/update_instrument_token.rb +1 -1
- data/lib/checkout_sdk/issuing/add_control_group_request.rb +19 -0
- data/lib/checkout_sdk/issuing/add_control_profile_request.rb +13 -0
- data/lib/checkout_sdk/issuing/amend_dispute_request.rb +31 -0
- data/lib/checkout_sdk/issuing/cardholder_access_token_request.rb +26 -0
- data/lib/checkout_sdk/issuing/create_dispute_request.rb +27 -0
- data/lib/checkout_sdk/issuing/escalate_dispute_request.rb +23 -0
- data/lib/checkout_sdk/issuing/issuing.rb +27 -0
- data/lib/checkout_sdk/issuing/issuing_address.rb +25 -0
- data/lib/checkout_sdk/issuing/issuing_client.rb +274 -14
- data/lib/checkout_sdk/issuing/issuing_dispute_fraud_details.rb +18 -0
- data/lib/checkout_sdk/issuing/issuing_dispute_fraud_type.rb +21 -0
- data/lib/checkout_sdk/issuing/issuing_phone_number.rb +16 -0
- data/lib/checkout_sdk/issuing/oob_authentication_request.rb +15 -0
- data/lib/checkout_sdk/issuing/oob_simulate_transaction_details.rb +19 -0
- data/lib/checkout_sdk/issuing/simulate_refund_request.rb +13 -0
- data/lib/checkout_sdk/issuing/submit_dispute_request.rb +21 -0
- data/lib/checkout_sdk/issuing/update_card_request.rb +27 -0
- data/lib/checkout_sdk/issuing/update_cardholder_request.rb +29 -0
- data/lib/checkout_sdk/issuing/update_control_profile_request.rb +13 -0
- data/lib/checkout_sdk/metadata/metadata_client.rb +1 -1
- data/lib/checkout_sdk/metadata/source/bin_metadata_source.rb +1 -1
- data/lib/checkout_sdk/metadata/source/card_metadata_source.rb +1 -1
- data/lib/checkout_sdk/metadata/source/id_metadata_source.rb +1 -1
- data/lib/checkout_sdk/metadata/source/token_metadata_source.rb +1 -1
- data/lib/checkout_sdk/network_tokens/network_token_cryptogram_request.rb +13 -0
- data/lib/checkout_sdk/network_tokens/network_token_source_card.rb +25 -0
- data/lib/checkout_sdk/network_tokens/network_token_source_id.rb +19 -0
- data/lib/checkout_sdk/network_tokens/network_tokens.rb +7 -0
- data/lib/checkout_sdk/network_tokens/network_tokens_client.rb +51 -0
- data/lib/checkout_sdk/network_tokens/provision_network_token_request.rb +14 -0
- data/lib/checkout_sdk/oauth_access_token.rb +6 -1
- data/lib/checkout_sdk/oauth_scopes.rb +4 -0
- data/lib/checkout_sdk/oauth_sdk_credentials.rb +2 -1
- data/lib/checkout_sdk/onboarding_simulator/onboarding_simulator.rb +6 -0
- data/lib/checkout_sdk/onboarding_simulator/onboarding_simulator_client.rb +72 -0
- data/lib/checkout_sdk/onboarding_simulator/simulator_entity_status.rb +16 -0
- data/lib/checkout_sdk/onboarding_simulator/simulator_set_requirements_due_request.rb +14 -0
- data/lib/checkout_sdk/onboarding_simulator/simulator_set_status_request.rb +13 -0
- data/lib/checkout_sdk/payment_methods/payment_methods.rb +4 -0
- data/lib/checkout_sdk/payment_methods/payment_methods_client.rb +24 -0
- data/lib/checkout_sdk/payment_methods/payment_methods_query.rb +13 -0
- data/lib/checkout_sdk/payments/apple_pay/apple_pay_certificate_request.rb +13 -0
- data/lib/checkout_sdk/payments/apple_pay/apple_pay_client.rb +44 -0
- data/lib/checkout_sdk/payments/apple_pay/apple_pay_enrollment_request.rb +13 -0
- data/lib/checkout_sdk/payments/apple_pay/apple_pay_signing_request.rb +13 -0
- data/lib/checkout_sdk/payments/applepay.rb +14 -0
- data/lib/checkout_sdk/payments/base_payments_client.rb +19 -0
- data/lib/checkout_sdk/payments/cancellation_request.rb +13 -0
- data/lib/checkout_sdk/payments/{sessions/card.rb → card.rb} +4 -1
- data/lib/checkout_sdk/payments/contexts/payment_contexts_client.rb +1 -1
- data/lib/checkout_sdk/payments/destination/bank_account_destination.rb +1 -1
- data/lib/checkout_sdk/payments/destination/card_destination.rb +1 -1
- data/lib/checkout_sdk/payments/destination/id_destination.rb +1 -1
- data/lib/checkout_sdk/payments/destination/token_destination.rb +1 -1
- data/lib/checkout_sdk/payments/exemption.rb +2 -0
- data/lib/checkout_sdk/payments/flow/flow_client.rb +59 -0
- data/lib/checkout_sdk/payments/google_pay/google_pay_client.rb +48 -0
- data/lib/checkout_sdk/payments/google_pay/google_pay_domain_request.rb +13 -0
- data/lib/checkout_sdk/payments/google_pay/google_pay_enrollment_request.rb +17 -0
- data/lib/checkout_sdk/payments/googlepay.rb +14 -0
- data/lib/checkout_sdk/payments/hosted/hosted_payment_instruction.rb +11 -0
- data/lib/checkout_sdk/payments/hosted/hosted_payments_client.rb +1 -1
- data/lib/checkout_sdk/payments/hosted/hosted_payments_session.rb +51 -23
- data/lib/checkout_sdk/payments/hosted/payment_purpose_type.rb +27 -0
- data/lib/checkout_sdk/payments/links/payment_link.rb +26 -1
- data/lib/checkout_sdk/payments/links/payments_links_client.rb +1 -1
- data/lib/checkout_sdk/payments/locale_type.rb +31 -0
- data/lib/checkout_sdk/payments/partial_authorization.rb +11 -0
- data/lib/checkout_sdk/payments/passenger.rb +20 -6
- data/lib/checkout_sdk/payments/payment_method_configuration.rb +17 -0
- data/lib/checkout_sdk/payments/payment_plan.rb +43 -0
- data/lib/checkout_sdk/payments/payment_request.rb +5 -1
- data/lib/checkout_sdk/payments/payments.rb +48 -4
- data/lib/checkout_sdk/payments/payments_client.rb +1 -1
- data/lib/checkout_sdk/payments/payments_search_request.rb +20 -0
- data/lib/checkout_sdk/payments/previous/destination/card_destination.rb +1 -1
- data/lib/checkout_sdk/payments/previous/destination/id_destination.rb +1 -1
- data/lib/checkout_sdk/payments/previous/destination/token_destination.rb +1 -1
- data/lib/checkout_sdk/payments/previous/payments_client.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/alipay_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/alma_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/bancontact_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/benefit_pay_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/boleto_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/eps_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/fawry_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/giropay_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/ideal_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/klarna_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/knet_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/multi_banco_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/oxxo_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/p24_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/pago_facil_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/paypal_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/poli_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/qpay_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/rapi_pago_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/apm/sofort_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/card_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/customer_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/d_local_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/id_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/network_token_source.rb +1 -1
- data/lib/checkout_sdk/payments/previous/source/token_source.rb +1 -1
- data/lib/checkout_sdk/payments/processing_data.rb +45 -0
- data/lib/checkout_sdk/payments/processing_settings.rb +14 -1
- data/lib/checkout_sdk/payments/product.rb +14 -1
- data/lib/checkout_sdk/payments/product_item_type.rb +11 -0
- data/lib/checkout_sdk/payments/product_sub_type.rb +13 -0
- data/lib/checkout_sdk/payments/refund_order.rb +53 -0
- data/lib/checkout_sdk/payments/refund_request.rb +11 -2
- data/lib/checkout_sdk/payments/sender/corporate_sender.rb +1 -1
- data/lib/checkout_sdk/payments/sender/government_sender.rb +4 -1
- data/lib/checkout_sdk/payments/sender/individual_sender.rb +4 -1
- data/lib/checkout_sdk/payments/sender/instrument_sender.rb +1 -1
- data/lib/checkout_sdk/payments/sessions/payment_sessions_client.rb +13 -1
- data/lib/checkout_sdk/payments/sessions/payment_sessions_request.rb +11 -1
- data/lib/checkout_sdk/payments/sessions/store_payment_details_type.rb +1 -0
- data/lib/checkout_sdk/payments/setups/account_funding_transaction_identification.rb +17 -0
- data/lib/checkout_sdk/payments/setups/account_funding_transaction_identification_type.rb +15 -0
- data/lib/checkout_sdk/payments/setups/account_funding_transaction_purpose.rb +29 -0
- data/lib/checkout_sdk/payments/setups/account_funding_transaction_recipient.rb +26 -0
- data/lib/checkout_sdk/payments/setups/account_funding_transaction_sender.rb +29 -0
- data/lib/checkout_sdk/payments/setups/bacs_payment_method.rb +41 -0
- data/lib/checkout_sdk/payments/setups/blik_payment_method.rb +20 -0
- data/lib/checkout_sdk/payments/setups/card_present_payment_method.rb +35 -0
- data/lib/checkout_sdk/payments/setups/pay_by_bank_payment_method.rb +24 -0
- data/lib/checkout_sdk/payments/setups/payment_setup_account_funding_transaction.rb +20 -0
- data/lib/checkout_sdk/payments/setups/payment_setups_client.rb +75 -0
- data/lib/checkout_sdk/payments/setups/stablecoin_payment_method.rb +16 -0
- data/lib/checkout_sdk/payments/source/apm/ach_source.rb +27 -0
- data/lib/checkout_sdk/payments/source/apm/after_pay_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/alma_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/bancontact_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/benefit_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/bizum_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/apm/blik_source.rb +31 -0
- data/lib/checkout_sdk/payments/source/apm/cv_connect_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/eps_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/fawry_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/giropay_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/ideal_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/illicado_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/klarna_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/knet_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/mbway_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/multi_banco_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/octopus_source.rb +11 -0
- data/lib/checkout_sdk/payments/source/apm/p24_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/paypal_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/plaid_source.rb +17 -0
- data/lib/checkout_sdk/payments/source/apm/post_finance_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/qpay_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/sepa_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/sequra_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/apm/sofort_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/stcpay_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/tamara_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/trustly_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/apm/we_chat_pay_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/bank_account_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/card_source.rb +5 -2
- data/lib/checkout_sdk/payments/source/currency_account_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/customer_source.rb +5 -2
- data/lib/checkout_sdk/payments/source/entity_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/id_source.rb +5 -2
- data/lib/checkout_sdk/payments/source/network_token_source.rb +8 -2
- data/lib/checkout_sdk/payments/source/provider_token_source.rb +1 -1
- data/lib/checkout_sdk/payments/source/token_source.rb +5 -2
- data/lib/checkout_sdk/reports/reports_client.rb +1 -1
- data/lib/checkout_sdk/risk/source/card_source.rb +1 -1
- data/lib/checkout_sdk/risk/source/customer_source.rb +1 -1
- data/lib/checkout_sdk/risk/source/id_source.rb +1 -1
- data/lib/checkout_sdk/risk/source/token_source.rb +1 -1
- data/lib/checkout_sdk/sessions/authentication_method.rb +3 -3
- data/lib/checkout_sdk/sessions/authentication_type.rb +3 -3
- data/lib/checkout_sdk/sessions/card_holder_account_info.rb +39 -3
- data/lib/checkout_sdk/sessions/channel/app_session.rb +1 -1
- data/lib/checkout_sdk/sessions/channel/browser_session.rb +5 -2
- data/lib/checkout_sdk/sessions/channel/channel_data_type.rb +1 -0
- data/lib/checkout_sdk/sessions/channel/merchant_initiated_session.rb +15 -0
- data/lib/checkout_sdk/sessions/channel/request_type.rb +19 -0
- data/lib/checkout_sdk/sessions/channel/sdk_interface_type.rb +2 -2
- data/lib/checkout_sdk/sessions/completion/hosted_completion_info.rb +1 -1
- data/lib/checkout_sdk/sessions/completion/non_hosted_completion_info.rb +1 -1
- data/lib/checkout_sdk/sessions/device_information.rb +17 -0
- data/lib/checkout_sdk/sessions/initial_transaction.rb +23 -0
- data/lib/checkout_sdk/sessions/installment.rb +5 -0
- data/lib/checkout_sdk/sessions/merchant_risk_info.rb +20 -2
- data/lib/checkout_sdk/sessions/optimization.rb +19 -0
- data/lib/checkout_sdk/sessions/optimized_properties.rb +17 -0
- data/lib/checkout_sdk/sessions/pre_order_purchase_indicator_type.rb +10 -0
- data/lib/checkout_sdk/sessions/recurring.rb +5 -0
- data/lib/checkout_sdk/sessions/reorder_items_indicator_type.rb +10 -0
- data/lib/checkout_sdk/sessions/session_request.rb +26 -2
- data/lib/checkout_sdk/sessions/sessions.rb +10 -0
- data/lib/checkout_sdk/sessions/sessions_client.rb +2 -2
- data/lib/checkout_sdk/sessions/source/card_source.rb +3 -2
- data/lib/checkout_sdk/sessions/source/id_source.rb +1 -1
- data/lib/checkout_sdk/sessions/source/network_token_source.rb +1 -1
- data/lib/checkout_sdk/sessions/source/token_source.rb +1 -1
- data/lib/checkout_sdk/sessions/three_ds_method_completion_request.rb +3 -1
- data/lib/checkout_sdk/sessions/three_ds_req_auth_method.rb +16 -0
- data/lib/checkout_sdk/sessions/three_ds_requestor_authentication_info.rb +17 -0
- data/lib/checkout_sdk/sessions/transaction_type.rb +3 -3
- data/lib/checkout_sdk/sources/sepa_source_request.rb +1 -1
- data/lib/checkout_sdk/sources/sources_client.rb +1 -1
- data/lib/checkout_sdk/standalone_account_updater/account_updater_card.rb +17 -0
- data/lib/checkout_sdk/standalone_account_updater/account_updater_instrument.rb +13 -0
- data/lib/checkout_sdk/standalone_account_updater/account_updater_request.rb +13 -0
- data/lib/checkout_sdk/standalone_account_updater/account_updater_source_options.rb +15 -0
- data/lib/checkout_sdk/standalone_account_updater/standalone_account_updater.rb +7 -0
- data/lib/checkout_sdk/standalone_account_updater/standalone_account_updater_client.rb +29 -0
- data/lib/checkout_sdk/tokens/apple_pay_token_request.rb +1 -1
- data/lib/checkout_sdk/tokens/google_pay_token_request.rb +1 -1
- data/lib/checkout_sdk/tokens/token_metadata_billing_address.rb +16 -0
- data/lib/checkout_sdk/tokens/token_metadata_response.rb +55 -0
- data/lib/checkout_sdk/tokens/tokens.rb +2 -0
- data/lib/checkout_sdk/tokens/tokens_client.rb +11 -0
- data/lib/checkout_sdk/transfers/create_transfer.rb +5 -5
- data/lib/checkout_sdk/transfers/transfer_source.rb +4 -1
- data/lib/checkout_sdk/transfers/transfers_client.rb +2 -2
- data/lib/checkout_sdk/version.rb +1 -1
- data/lib/checkout_sdk/workflows/entity_workflow_condition.rb +1 -1
- data/lib/checkout_sdk/workflows/event_workflow_condition.rb +1 -1
- data/lib/checkout_sdk/workflows/processing_channel_workflow_condition.rb +1 -1
- data/lib/checkout_sdk/workflows/webhook_workflow_action.rb +1 -1
- data/lib/checkout_sdk/workflows/workflows_client.rb +1 -1
- data/lib/checkout_sdk.rb +8 -0
- metadata +194 -19
- data/lib/checkout_sdk/payments/passenger_name.rb +0 -11
- 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
|
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
-
#
|
|
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
|
-
#
|
|
11
|
+
# The number of results to skip.
|
|
12
|
+
# [Optional]
|
|
13
|
+
# min 0, default 0
|
|
14
|
+
# @return [Integer, nil]
|
|
9
15
|
# @!attribute id
|
|
10
|
-
#
|
|
16
|
+
# The unique identifier of the dispute.
|
|
17
|
+
# [Optional]
|
|
18
|
+
# @return [String, nil]
|
|
11
19
|
# @!attribute statuses
|
|
12
|
-
#
|
|
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
|
-
#
|
|
25
|
+
# The unique identifier of the payment.
|
|
26
|
+
# [Optional]
|
|
27
|
+
# @return [String, nil]
|
|
15
28
|
# @!attribute payment_reference
|
|
16
|
-
#
|
|
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
|
-
#
|
|
33
|
+
# The acquirer reference number (ARN).
|
|
34
|
+
# [Optional]
|
|
35
|
+
# @return [String, nil]
|
|
19
36
|
# @!attribute this_channel_only
|
|
20
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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 =
|
|
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
|
-
#
|
|
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
|
|
26
|
-
# @param subdomain [String] The subdomain to
|
|
27
|
-
# @return [String] The
|
|
28
|
-
def
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
data/lib/checkout_sdk/error.rb
CHANGED
|
@@ -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
|
-
|
|
10
|
+
new("Operation requires #{authorization_type} authorization type.")
|
|
12
11
|
end
|
|
13
12
|
|
|
14
13
|
def self.invalid_key(key_type)
|
|
15
|
-
|
|
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
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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
|
|
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,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
|