From 650ab014317eecd9a668b715d02642c084d31fd7 Mon Sep 17 00:00:00 2001 From: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 10:51:38 +0000 Subject: [PATCH] Update generated code for v1682 --- OPENAPI_VERSION | 2 +- lib/stripe/object_types.rb | 1 + lib/stripe/resources.rb | 1 + lib/stripe/resources/fx_quote.rb | 184 +++++++++ lib/stripe/resources/payment_intent.rb | 14 + lib/stripe/resources/transfer.rb | 6 + lib/stripe/services.rb | 1 + lib/stripe/services/fx_quote_service.rb | 123 ++++++ lib/stripe/services/payment_intent_service.rb | 12 + lib/stripe/services/transfer_service.rb | 4 + lib/stripe/services/v1_services.rb | 3 +- rbi/stripe.rbi | 362 +++++++++++++++++- rbi/stripe/resources/fx_quote.rbi | 196 ++++++++++ rbi/stripe/resources/payment_intent.rbi | 21 +- rbi/stripe/resources/transfer.rbi | 9 +- rbi/stripe/services/fx_quote_service.rbi | 117 ++++++ .../services/payment_intent_service.rbi | 18 +- rbi/stripe/services/transfer_service.rbi | 6 +- rbi/stripe/services/v1_services.rbi | 1 + 19 files changed, 1063 insertions(+), 18 deletions(-) create mode 100644 lib/stripe/resources/fx_quote.rb create mode 100644 lib/stripe/services/fx_quote_service.rb create mode 100644 rbi/stripe/resources/fx_quote.rbi create mode 100644 rbi/stripe/services/fx_quote_service.rbi diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 6e51dcc1..e2708afe 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v1681 \ No newline at end of file +v1682 \ No newline at end of file diff --git a/lib/stripe/object_types.rb b/lib/stripe/object_types.rb index d1740455..2d1bc18a 100644 --- a/lib/stripe/object_types.rb +++ b/lib/stripe/object_types.rb @@ -78,6 +78,7 @@ module Stripe FinancialConnections::Transaction.object_name => FinancialConnections::Transaction, Forwarding::Request.object_name => Forwarding::Request, FundingInstructions.object_name => FundingInstructions, + FxQuote.object_name => FxQuote, GiftCards::Card.object_name => GiftCards::Card, GiftCards::Transaction.object_name => GiftCards::Transaction, Identity::VerificationReport.object_name => Identity::VerificationReport, diff --git a/lib/stripe/resources.rb b/lib/stripe/resources.rb index 95853609..5d068d05 100644 --- a/lib/stripe/resources.rb +++ b/lib/stripe/resources.rb @@ -66,6 +66,7 @@ require "stripe/resources/financial_connections/session" require "stripe/resources/financial_connections/transaction" require "stripe/resources/forwarding/request" require "stripe/resources/funding_instructions" +require "stripe/resources/fx_quote" require "stripe/resources/gift_cards/card" require "stripe/resources/gift_cards/transaction" require "stripe/resources/identity/verification_report" diff --git a/lib/stripe/resources/fx_quote.rb b/lib/stripe/resources/fx_quote.rb new file mode 100644 index 00000000..29ae09ea --- /dev/null +++ b/lib/stripe/resources/fx_quote.rb @@ -0,0 +1,184 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + # The FX Quotes API provides three key functions: + # - View current exchange rates: The object shows Stripe's current exchange rate for any given currency pair. + # - Extended quotes: The API provides rate quotes valid for a 1-hour period or a 24-hour period, eliminating uncertainty from FX fluctuations. + # - View FX fees: The API provides information on the FX fees Stripe will charge on your FX transaction, allowing you to anticipate specific settlement amounts before payment costs. + class FxQuote < APIResource + extend Stripe::APIOperations::Create + extend Stripe::APIOperations::List + + OBJECT_NAME = "fx_quote" + def self.object_name + "fx_quote" + end + + class Rates < Stripe::StripeObject + class RateDetails < Stripe::StripeObject + # The rate for the currency pair. + attr_reader :base_rate + # The fee for locking the conversion rates. + attr_reader :duration_premium + # The FX fee for the currency pair. + attr_reader :fx_fee_rate + # A reference rate for the currency pair provided by the reference rate provider. + attr_reader :reference_rate + # The reference rate provider. + attr_reader :reference_rate_provider + end + # The rate that includes the FX fee rate. + attr_reader :exchange_rate + # Attribute for field rate_details + attr_reader :rate_details + end + + class Usage < Stripe::StripeObject + class Payment < Stripe::StripeObject + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + attr_reader :destination + # The Stripe account ID that these funds are intended for. + # + # This field must match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + attr_reader :on_behalf_of + end + + class Transfer < Stripe::StripeObject + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + attr_reader :destination + end + # The details required to use an FX Quote for a payment + attr_reader :payment + # The details required to use an FX Quote for a transfer + attr_reader :transfer + # The transaction type for which the FX Quote will be used. + # + # Can be 'payment' or 'transfer'. + attr_reader :type + end + + class ListParams < Stripe::RequestParams + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + attr_accessor :ending_before + # Specifies which fields in the response should be expanded. + attr_accessor :expand + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + attr_accessor :limit + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + attr_accessor :starting_after + + def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil) + @ending_before = ending_before + @expand = expand + @limit = limit + @starting_after = starting_after + end + end + + class CreateParams < Stripe::RequestParams + class Usage < Stripe::RequestParams + class Payment < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + attr_accessor :destination + # The Stripe account ID that these funds are intended for. + # + # This field should match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + attr_accessor :on_behalf_of + + def initialize(destination: nil, on_behalf_of: nil) + @destination = destination + @on_behalf_of = on_behalf_of + end + end + + class Transfer < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + attr_accessor :destination + + def initialize(destination: nil) + @destination = destination + end + end + # The payment transaction details that are intended for the FX Quote. + attr_accessor :payment + # The transfer transaction details that are intended for the FX Quote. + attr_accessor :transfer + # Which transaction the FX Quote will be used for + # + # Can be “payment” | “transfer” + attr_accessor :type + + def initialize(payment: nil, transfer: nil, type: nil) + @payment = payment + @transfer = transfer + @type = type + end + end + # Specifies which fields in the response should be expanded. + attr_accessor :expand + # A list of three letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be [supported currencies](https://stripe.com/docs/currencies). + attr_accessor :from_currencies + # The duration that you wish the quote to be locked for. The quote will be usable for the duration specified. The default is `none`. The maximum is 1 day. + attr_accessor :lock_duration + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + attr_accessor :to_currency + # The usage specific information for the quote. + attr_accessor :usage + + def initialize( + expand: nil, + from_currencies: nil, + lock_duration: nil, + to_currency: nil, + usage: nil + ) + @expand = expand + @from_currencies = from_currencies + @lock_duration = lock_duration + @to_currency = to_currency + @usage = usage + end + end + # Time at which the quote was created, measured in seconds since the Unix epoch. + attr_reader :created + # Unique identifier for the object. + attr_reader :id + # The duration the exchange rate quote remains valid from creation time. Allowed values are none, hour, and day. Note that for the test mode API available in alpha, you can request an extended quote, but it won't be usable for any transactions. + attr_reader :lock_duration + # Time at which the quote will expire, measured in seconds since the Unix epoch. + # + # If lock_duration is set to ‘none’ this field will be set to null. + attr_reader :lock_expires_at + # Lock status of the quote. Transitions from active to expired once past the lock_expires_at timestamp. + # + # Can return value none, active, or expired. + attr_reader :lock_status + # String representing the object's type. Objects of the same type share the same value. + attr_reader :object + # Information about the rates. + attr_reader :rates + # The currency to convert into, typically this is the currency that you want to settle to your Stripe balance. Three-letter ISO currency code, in lowercase. Must be a supported currency. + attr_reader :to_currency + # Attribute for field usage + attr_reader :usage + + # Creates an FX Quote object + def self.create(params = {}, opts = {}) + request_stripe_object(method: :post, path: "/v1/fx_quotes", params: params, opts: opts) + end + + # Returns a list of FX quotes that have been issued. The FX quotes are returned in sorted order, with the most recent FX quotes appearing first. + def self.list(params = {}, opts = {}) + request_stripe_object(method: :get, path: "/v1/fx_quotes", params: params, opts: opts) + end + end +end diff --git a/lib/stripe/resources/payment_intent.rb b/lib/stripe/resources/payment_intent.rb index b61dcb1f..d0317fc5 100644 --- a/lib/stripe/resources/payment_intent.rb +++ b/lib/stripe/resources/payment_intent.rb @@ -5348,6 +5348,8 @@ module Stripe attr_accessor :error_on_requires_action # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + attr_accessor :fx_quote # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). attr_accessor :mandate # This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). @@ -5421,6 +5423,7 @@ module Stripe description: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, metadata: nil, @@ -5458,6 +5461,7 @@ module Stripe @description = description @error_on_requires_action = error_on_requires_action @expand = expand + @fx_quote = fx_quote @mandate = mandate @mandate_data = mandate_data @metadata = metadata @@ -8803,6 +8807,8 @@ module Stripe attr_accessor :description # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + attr_accessor :fx_quote # This hash contains details about the Mandate to create. attr_accessor :mandate_data # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. @@ -8856,6 +8862,7 @@ module Stripe customer_account: nil, description: nil, expand: nil, + fx_quote: nil, mandate_data: nil, metadata: nil, payment_details: nil, @@ -8881,6 +8888,7 @@ module Stripe @customer_account = customer_account @description = description @expand = expand + @fx_quote = fx_quote @mandate_data = mandate_data @metadata = metadata @payment_details = payment_details @@ -13011,6 +13019,8 @@ module Stripe attr_accessor :error_on_requires_action # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + attr_accessor :fx_quote # ID of the mandate that's used for this payment. attr_accessor :mandate # Attribute for param field mandate_data @@ -13059,6 +13069,7 @@ module Stripe confirmation_token: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, off_session: nil, @@ -13080,6 +13091,7 @@ module Stripe @confirmation_token = confirmation_token @error_on_requires_action = error_on_requires_action @expand = expand + @fx_quote = fx_quote @mandate = mandate @mandate_data = mandate_data @off_session = off_session @@ -13345,6 +13357,8 @@ module Stripe attr_reader :customer_account # An arbitrary string attached to the object. Often useful for displaying to users. attr_reader :description + # The FX Quote used for the PaymentIntent. + attr_reader :fx_quote # Unique identifier for the object. attr_reader :id # The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason. diff --git a/lib/stripe/resources/transfer.rb b/lib/stripe/resources/transfer.rb index d88b8cab..1171b333 100644 --- a/lib/stripe/resources/transfer.rb +++ b/lib/stripe/resources/transfer.rb @@ -88,6 +88,8 @@ module Stripe attr_accessor :destination # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the transfer amount to the destination currency. + attr_accessor :fx_quote # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. attr_accessor :metadata # You can use this parameter to transfer funds from a charge before they are added to your available balance. A pending balance will transfer immediately but the funds will not become available until the original charge becomes available. [See the Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-availability) for details. @@ -103,6 +105,7 @@ module Stripe description: nil, destination: nil, expand: nil, + fx_quote: nil, metadata: nil, source_transaction: nil, source_type: nil, @@ -113,6 +116,7 @@ module Stripe @description = description @destination = destination @expand = expand + @fx_quote = fx_quote @metadata = metadata @source_transaction = source_transaction @source_type = source_type @@ -150,6 +154,8 @@ module Stripe attr_reader :destination # If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer. attr_reader :destination_payment + # The FX Quote used for the transfer. + attr_reader :fx_quote # Unique identifier for the object. attr_reader :id # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. diff --git a/lib/stripe/services.rb b/lib/stripe/services.rb index 68e550b1..72ab447a 100644 --- a/lib/stripe/services.rb +++ b/lib/stripe/services.rb @@ -75,6 +75,7 @@ require "stripe/services/financial_connections/transaction_service" require "stripe/services/financial_connections_service" require "stripe/services/forwarding/request_service" require "stripe/services/forwarding_service" +require "stripe/services/fx_quote_service" require "stripe/services/gift_cards/card_service" require "stripe/services/gift_cards/transaction_service" require "stripe/services/gift_cards_service" diff --git a/lib/stripe/services/fx_quote_service.rb b/lib/stripe/services/fx_quote_service.rb new file mode 100644 index 00000000..e4c45985 --- /dev/null +++ b/lib/stripe/services/fx_quote_service.rb @@ -0,0 +1,123 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + class FxQuoteService < StripeService + class ListParams < Stripe::RequestParams + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + attr_accessor :ending_before + # Specifies which fields in the response should be expanded. + attr_accessor :expand + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + attr_accessor :limit + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + attr_accessor :starting_after + + def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil) + @ending_before = ending_before + @expand = expand + @limit = limit + @starting_after = starting_after + end + end + + class CreateParams < Stripe::RequestParams + class Usage < Stripe::RequestParams + class Payment < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + attr_accessor :destination + # The Stripe account ID that these funds are intended for. + # + # This field should match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + attr_accessor :on_behalf_of + + def initialize(destination: nil, on_behalf_of: nil) + @destination = destination + @on_behalf_of = on_behalf_of + end + end + + class Transfer < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + attr_accessor :destination + + def initialize(destination: nil) + @destination = destination + end + end + # The payment transaction details that are intended for the FX Quote. + attr_accessor :payment + # The transfer transaction details that are intended for the FX Quote. + attr_accessor :transfer + # Which transaction the FX Quote will be used for + # + # Can be “payment” | “transfer” + attr_accessor :type + + def initialize(payment: nil, transfer: nil, type: nil) + @payment = payment + @transfer = transfer + @type = type + end + end + # Specifies which fields in the response should be expanded. + attr_accessor :expand + # A list of three letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be [supported currencies](https://stripe.com/docs/currencies). + attr_accessor :from_currencies + # The duration that you wish the quote to be locked for. The quote will be usable for the duration specified. The default is `none`. The maximum is 1 day. + attr_accessor :lock_duration + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + attr_accessor :to_currency + # The usage specific information for the quote. + attr_accessor :usage + + def initialize( + expand: nil, + from_currencies: nil, + lock_duration: nil, + to_currency: nil, + usage: nil + ) + @expand = expand + @from_currencies = from_currencies + @lock_duration = lock_duration + @to_currency = to_currency + @usage = usage + end + end + + class RetrieveParams < Stripe::RequestParams + # Specifies which fields in the response should be expanded. + attr_accessor :expand + + def initialize(expand: nil) + @expand = expand + end + end + + # Creates an FX Quote object + def create(params = {}, opts = {}) + request(method: :post, path: "/v1/fx_quotes", params: params, opts: opts, base_address: :api) + end + + # Returns a list of FX quotes that have been issued. The FX quotes are returned in sorted order, with the most recent FX quotes appearing first. + def list(params = {}, opts = {}) + request(method: :get, path: "/v1/fx_quotes", params: params, opts: opts, base_address: :api) + end + + # Retrieve an FX Quote object + def retrieve(id, params = {}, opts = {}) + request( + method: :get, + path: format("/v1/fx_quotes/%s", { id: CGI.escape(id) }), + params: params, + opts: opts, + base_address: :api + ) + end + end +end diff --git a/lib/stripe/services/payment_intent_service.rb b/lib/stripe/services/payment_intent_service.rb index 7aecd00a..566d6603 100644 --- a/lib/stripe/services/payment_intent_service.rb +++ b/lib/stripe/services/payment_intent_service.rb @@ -3431,6 +3431,8 @@ module Stripe attr_accessor :error_on_requires_action # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + attr_accessor :fx_quote # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). attr_accessor :mandate # This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). @@ -3504,6 +3506,7 @@ module Stripe description: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, metadata: nil, @@ -3541,6 +3544,7 @@ module Stripe @description = description @error_on_requires_action = error_on_requires_action @expand = expand + @fx_quote = fx_quote @mandate = mandate @mandate_data = mandate_data @metadata = metadata @@ -6898,6 +6902,8 @@ module Stripe attr_accessor :description # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + attr_accessor :fx_quote # This hash contains details about the Mandate to create. attr_accessor :mandate_data # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. @@ -6951,6 +6957,7 @@ module Stripe customer_account: nil, description: nil, expand: nil, + fx_quote: nil, mandate_data: nil, metadata: nil, payment_details: nil, @@ -6976,6 +6983,7 @@ module Stripe @customer_account = customer_account @description = description @expand = expand + @fx_quote = fx_quote @mandate_data = mandate_data @metadata = metadata @payment_details = payment_details @@ -11106,6 +11114,8 @@ module Stripe attr_accessor :error_on_requires_action # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + attr_accessor :fx_quote # ID of the mandate that's used for this payment. attr_accessor :mandate # Attribute for param field mandate_data @@ -11154,6 +11164,7 @@ module Stripe confirmation_token: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, off_session: nil, @@ -11175,6 +11186,7 @@ module Stripe @confirmation_token = confirmation_token @error_on_requires_action = error_on_requires_action @expand = expand + @fx_quote = fx_quote @mandate = mandate @mandate_data = mandate_data @off_session = off_session diff --git a/lib/stripe/services/transfer_service.rb b/lib/stripe/services/transfer_service.rb index 38400aa1..ee82e377 100644 --- a/lib/stripe/services/transfer_service.rb +++ b/lib/stripe/services/transfer_service.rb @@ -73,6 +73,8 @@ module Stripe attr_accessor :destination # Specifies which fields in the response should be expanded. attr_accessor :expand + # The FX rate in the quote is validated and used to convert the transfer amount to the destination currency. + attr_accessor :fx_quote # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. attr_accessor :metadata # You can use this parameter to transfer funds from a charge before they are added to your available balance. A pending balance will transfer immediately but the funds will not become available until the original charge becomes available. [See the Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-availability) for details. @@ -88,6 +90,7 @@ module Stripe description: nil, destination: nil, expand: nil, + fx_quote: nil, metadata: nil, source_transaction: nil, source_type: nil, @@ -98,6 +101,7 @@ module Stripe @description = description @destination = destination @expand = expand + @fx_quote = fx_quote @metadata = metadata @source_transaction = source_transaction @source_type = source_type diff --git a/lib/stripe/services/v1_services.rb b/lib/stripe/services/v1_services.rb index cfcab29b..8f43a298 100644 --- a/lib/stripe/services/v1_services.rb +++ b/lib/stripe/services/v1_services.rb @@ -4,7 +4,7 @@ module Stripe class V1Services < StripeService # v1 accessors: The beginning of the section generated from our OpenAPI spec attr_reader :accounts - attr_reader :account_links, :account_notices, :account_sessions, :apple_pay_domains, :application_fees, :apps, :balance, :balance_settings, :balance_transactions, :billing, :billing_portal, :capital, :charges, :checkout, :climate, :confirmation_tokens, :test_helpers, :country_specs, :coupons, :credit_notes, :customers, :customer_sessions, :disputes, :entitlements, :ephemeral_keys, :events, :exchange_rates, :files, :file_links, :financial_connections, :forwarding, :gift_cards, :identity, :invoices, :invoice_rendering_templates, :invoice_items, :issuing, :mandates, :margins, :orders, :payment_attempt_records, :payment_intents, :payment_links, :payment_methods, :payment_method_configurations, :payment_method_domains, :payment_records, :payouts, :plans, :prices, :privacy, :products, :promotion_codes, :quotes, :radar, :refunds, :reporting, :reviews, :sigma, :setup_attempts, :setup_intents, :shipping_rates, :sources, :subscriptions, :subscription_items, :subscription_schedules, :tax, :tax_codes, :tax_ids, :tax_rates, :terminal, :tokens, :topups, :transfers, :treasury, :webhook_endpoints, :external_accounts + attr_reader :account_links, :account_notices, :account_sessions, :apple_pay_domains, :application_fees, :apps, :balance, :balance_settings, :balance_transactions, :billing, :billing_portal, :capital, :charges, :checkout, :climate, :confirmation_tokens, :test_helpers, :country_specs, :coupons, :credit_notes, :customers, :customer_sessions, :disputes, :entitlements, :ephemeral_keys, :events, :exchange_rates, :files, :file_links, :financial_connections, :forwarding, :fx_quotes, :gift_cards, :identity, :invoices, :invoice_rendering_templates, :invoice_items, :issuing, :mandates, :margins, :orders, :payment_attempt_records, :payment_intents, :payment_links, :payment_methods, :payment_method_configurations, :payment_method_domains, :payment_records, :payouts, :plans, :prices, :privacy, :products, :promotion_codes, :quotes, :radar, :refunds, :reporting, :reviews, :sigma, :setup_attempts, :setup_intents, :shipping_rates, :sources, :subscriptions, :subscription_items, :subscription_schedules, :tax, :tax_codes, :tax_ids, :tax_rates, :terminal, :tokens, :topups, :transfers, :treasury, :webhook_endpoints, :external_accounts # v1 accessors: The end of the section generated from our OpenAPI spec # OAuthService is manually maintained, as it has special behaviors @@ -45,6 +45,7 @@ module Stripe @file_links = Stripe::FileLinkService.new(@requestor) @financial_connections = Stripe::FinancialConnectionsService.new(@requestor) @forwarding = Stripe::ForwardingService.new(@requestor) + @fx_quotes = Stripe::FxQuoteService.new(@requestor) @gift_cards = Stripe::GiftCardsService.new(@requestor) @identity = Stripe::IdentityService.new(@requestor) @invoices = Stripe::InvoiceService.new(@requestor) diff --git a/rbi/stripe.rbi b/rbi/stripe.rbi index 0a3d5ec2..b79a1014 100644 --- a/rbi/stripe.rbi +++ b/rbi/stripe.rbi @@ -31145,6 +31145,199 @@ module Stripe end end # typed: true +module Stripe + # The FX Quotes API provides three key functions: + # - View current exchange rates: The object shows Stripe's current exchange rate for any given currency pair. + # - Extended quotes: The API provides rate quotes valid for a 1-hour period or a 24-hour period, eliminating uncertainty from FX fluctuations. + # - View FX fees: The API provides information on the FX fees Stripe will charge on your FX transaction, allowing you to anticipate specific settlement amounts before payment costs. + class FxQuote < APIResource + class Rates < Stripe::StripeObject + class RateDetails < Stripe::StripeObject + # The rate for the currency pair. + sig { returns(Float) } + attr_reader :base_rate + # The fee for locking the conversion rates. + sig { returns(Float) } + attr_reader :duration_premium + # The FX fee for the currency pair. + sig { returns(Float) } + attr_reader :fx_fee_rate + # A reference rate for the currency pair provided by the reference rate provider. + sig { returns(T.nilable(Float)) } + attr_reader :reference_rate + # The reference rate provider. + sig { returns(T.nilable(String)) } + attr_reader :reference_rate_provider + end + # The rate that includes the FX fee rate. + sig { returns(Float) } + attr_reader :exchange_rate + # Attribute for field rate_details + sig { returns(RateDetails) } + attr_reader :rate_details + end + class Usage < Stripe::StripeObject + class Payment < Stripe::StripeObject + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + sig { returns(T.nilable(String)) } + attr_reader :destination + # The Stripe account ID that these funds are intended for. + # + # This field must match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + sig { returns(T.nilable(String)) } + attr_reader :on_behalf_of + end + class Transfer < Stripe::StripeObject + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + sig { returns(String) } + attr_reader :destination + end + # The details required to use an FX Quote for a payment + sig { returns(T.nilable(Payment)) } + attr_reader :payment + # The details required to use an FX Quote for a transfer + sig { returns(T.nilable(Transfer)) } + attr_reader :transfer + # The transaction type for which the FX Quote will be used. + # + # Can be 'payment' or 'transfer'. + sig { returns(String) } + attr_reader :type + end + # Time at which the quote was created, measured in seconds since the Unix epoch. + sig { returns(Integer) } + attr_reader :created + # Unique identifier for the object. + sig { returns(String) } + attr_reader :id + # The duration the exchange rate quote remains valid from creation time. Allowed values are none, hour, and day. Note that for the test mode API available in alpha, you can request an extended quote, but it won't be usable for any transactions. + sig { returns(String) } + attr_reader :lock_duration + # Time at which the quote will expire, measured in seconds since the Unix epoch. + # + # If lock_duration is set to ‘none’ this field will be set to null. + sig { returns(T.nilable(Integer)) } + attr_reader :lock_expires_at + # Lock status of the quote. Transitions from active to expired once past the lock_expires_at timestamp. + # + # Can return value none, active, or expired. + sig { returns(String) } + attr_reader :lock_status + # String representing the object's type. Objects of the same type share the same value. + sig { returns(String) } + attr_reader :object + # Information about the rates. + sig { returns(T::Hash[String, Rates]) } + attr_reader :rates + # The currency to convert into, typically this is the currency that you want to settle to your Stripe balance. Three-letter ISO currency code, in lowercase. Must be a supported currency. + sig { returns(String) } + attr_reader :to_currency + # Attribute for field usage + sig { returns(Usage) } + attr_reader :usage + class ListParams < Stripe::RequestParams + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :ending_before + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :starting_after + sig { + params(ending_before: T.nilable(String), expand: T.nilable(T::Array[String]), limit: T.nilable(Integer), starting_after: T.nilable(String)).void + } + def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil); end + end + class CreateParams < Stripe::RequestParams + class Usage < Stripe::RequestParams + class Payment < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + sig { returns(T.nilable(String)) } + attr_accessor :destination + # The Stripe account ID that these funds are intended for. + # + # This field should match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + sig { returns(T.nilable(String)) } + attr_accessor :on_behalf_of + sig { params(destination: T.nilable(String), on_behalf_of: T.nilable(String)).void } + def initialize(destination: nil, on_behalf_of: nil); end + end + class Transfer < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + sig { returns(String) } + attr_accessor :destination + sig { params(destination: String).void } + def initialize(destination: nil); end + end + # The payment transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuote::CreateParams::Usage::Payment)) } + attr_accessor :payment + # The transfer transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuote::CreateParams::Usage::Transfer)) } + attr_accessor :transfer + # Which transaction the FX Quote will be used for + # + # Can be “payment” | “transfer” + sig { returns(String) } + attr_accessor :type + sig { + params(payment: T.nilable(::Stripe::FxQuote::CreateParams::Usage::Payment), transfer: T.nilable(::Stripe::FxQuote::CreateParams::Usage::Transfer), type: String).void + } + def initialize(payment: nil, transfer: nil, type: nil); end + end + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A list of three letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be [supported currencies](https://stripe.com/docs/currencies). + sig { returns(T::Array[String]) } + attr_accessor :from_currencies + # The duration that you wish the quote to be locked for. The quote will be usable for the duration specified. The default is `none`. The maximum is 1 day. + sig { returns(String) } + attr_accessor :lock_duration + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :to_currency + # The usage specific information for the quote. + sig { returns(T.nilable(::Stripe::FxQuote::CreateParams::Usage)) } + attr_accessor :usage + sig { + params(expand: T.nilable(T::Array[String]), from_currencies: T::Array[String], lock_duration: String, to_currency: String, usage: T.nilable(::Stripe::FxQuote::CreateParams::Usage)).void + } + def initialize( + expand: nil, + from_currencies: nil, + lock_duration: nil, + to_currency: nil, + usage: nil + ); end + end + # Creates an FX Quote object + sig { + params(params: T.any(::Stripe::FxQuote::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::FxQuote) + } + def self.create(params = {}, opts = {}); end + + # Returns a list of FX quotes that have been issued. The FX quotes are returned in sorted order, with the most recent FX quotes appearing first. + sig { + params(params: T.any(::Stripe::FxQuote::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject) + } + def self.list(params = {}, opts = {}); end + end +end +# typed: true module Stripe module GiftCards # A gift card represents a single gift card owned by a customer, including the @@ -52273,6 +52466,9 @@ module Stripe # An arbitrary string attached to the object. Often useful for displaying to users. sig { returns(T.nilable(String)) } attr_reader :description + # The FX Quote used for the PaymentIntent. + sig { returns(T.nilable(String)) } + attr_reader :fx_quote # Unique identifier for the object. sig { returns(String) } attr_reader :id @@ -56003,6 +56199,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -56085,7 +56284,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntent::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntent::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntent::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void + params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntent::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntent::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntent::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( amount: nil, @@ -56102,6 +56301,7 @@ module Stripe description: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, metadata: nil, @@ -59656,6 +59856,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # This hash contains details about the Mandate to create. sig { returns(T.nilable(::Stripe::PaymentIntent::UpdateParams::MandateData)) } attr_accessor :mandate_data @@ -59718,7 +59921,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), mandate_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::TransferData), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::TransferData), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -59730,6 +59933,7 @@ module Stripe customer_account: nil, description: nil, expand: nil, + fx_quote: nil, mandate_data: nil, metadata: nil, payment_details: nil, @@ -64135,6 +64339,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -64196,7 +64403,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void + params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( application_fee_amount: nil, @@ -64205,6 +64412,7 @@ module Stripe confirmation_token: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, off_session: nil, @@ -104352,6 +104560,9 @@ module Stripe # If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer. sig { returns(T.any(String, Stripe::Charge)) } attr_reader :destination_payment + # The FX Quote used for the transfer. + sig { returns(String) } + attr_reader :fx_quote # Unique identifier for the object. sig { returns(String) } attr_reader :id @@ -104448,6 +104659,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the transfer amount to the destination currency. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T::Hash[String, String])) } attr_accessor :metadata @@ -104461,7 +104675,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -104469,6 +104683,7 @@ module Stripe description: nil, destination: nil, expand: nil, + fx_quote: nil, metadata: nil, source_transaction: nil, source_type: nil, @@ -108537,6 +108752,7 @@ module Stripe attr_reader :file_links attr_reader :financial_connections attr_reader :forwarding + attr_reader :fx_quotes attr_reader :gift_cards attr_reader :identity attr_reader :invoices @@ -130095,6 +130311,120 @@ module Stripe end end # typed: true +module Stripe + class FxQuoteService < StripeService + class ListParams < Stripe::RequestParams + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :ending_before + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :starting_after + sig { + params(ending_before: T.nilable(String), expand: T.nilable(T::Array[String]), limit: T.nilable(Integer), starting_after: T.nilable(String)).void + } + def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil); end + end + class CreateParams < Stripe::RequestParams + class Usage < Stripe::RequestParams + class Payment < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + sig { returns(T.nilable(String)) } + attr_accessor :destination + # The Stripe account ID that these funds are intended for. + # + # This field should match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + sig { returns(T.nilable(String)) } + attr_accessor :on_behalf_of + sig { params(destination: T.nilable(String), on_behalf_of: T.nilable(String)).void } + def initialize(destination: nil, on_behalf_of: nil); end + end + class Transfer < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + sig { returns(String) } + attr_accessor :destination + sig { params(destination: String).void } + def initialize(destination: nil); end + end + # The payment transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Payment)) } + attr_accessor :payment + # The transfer transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Transfer)) } + attr_accessor :transfer + # Which transaction the FX Quote will be used for + # + # Can be “payment” | “transfer” + sig { returns(String) } + attr_accessor :type + sig { + params(payment: T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Payment), transfer: T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Transfer), type: String).void + } + def initialize(payment: nil, transfer: nil, type: nil); end + end + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A list of three letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be [supported currencies](https://stripe.com/docs/currencies). + sig { returns(T::Array[String]) } + attr_accessor :from_currencies + # The duration that you wish the quote to be locked for. The quote will be usable for the duration specified. The default is `none`. The maximum is 1 day. + sig { returns(String) } + attr_accessor :lock_duration + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :to_currency + # The usage specific information for the quote. + sig { returns(T.nilable(::Stripe::FxQuoteService::CreateParams::Usage)) } + attr_accessor :usage + sig { + params(expand: T.nilable(T::Array[String]), from_currencies: T::Array[String], lock_duration: String, to_currency: String, usage: T.nilable(::Stripe::FxQuoteService::CreateParams::Usage)).void + } + def initialize( + expand: nil, + from_currencies: nil, + lock_duration: nil, + to_currency: nil, + usage: nil + ); end + end + class RetrieveParams < Stripe::RequestParams + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + sig { params(expand: T.nilable(T::Array[String])).void } + def initialize(expand: nil); end + end + # Creates an FX Quote object + sig { + params(params: T.any(::Stripe::FxQuoteService::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::FxQuote) + } + def create(params = {}, opts = {}); end + + # Returns a list of FX quotes that have been issued. The FX quotes are returned in sorted order, with the most recent FX quotes appearing first. + sig { + params(params: T.any(::Stripe::FxQuoteService::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject) + } + def list(params = {}, opts = {}); end + + # Retrieve an FX Quote object + sig { + params(id: String, params: T.any(::Stripe::FxQuoteService::RetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::FxQuote) + } + def retrieve(id, params = {}, opts = {}); end + end +end +# typed: true module Stripe class GiftCardsService < StripeService attr_reader :cards @@ -145127,6 +145457,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -145209,7 +145542,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntentService::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntentService::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntentService::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void + params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntentService::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntentService::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntentService::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( amount: nil, @@ -145226,6 +145559,7 @@ module Stripe description: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, metadata: nil, @@ -148854,6 +149188,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # This hash contains details about the Mandate to create. sig { returns(T.nilable(::Stripe::PaymentIntentService::UpdateParams::MandateData)) } attr_accessor :mandate_data @@ -148916,7 +149253,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), mandate_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::TransferData), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::TransferData), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -148928,6 +149265,7 @@ module Stripe customer_account: nil, description: nil, expand: nil, + fx_quote: nil, mandate_data: nil, metadata: nil, payment_details: nil, @@ -153381,6 +153719,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -153444,7 +153785,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void + params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( application_fee_amount: nil, @@ -153453,6 +153794,7 @@ module Stripe confirmation_token: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, off_session: nil, @@ -180415,6 +180757,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the transfer amount to the destination currency. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T::Hash[String, String])) } attr_accessor :metadata @@ -180428,7 +180773,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -180436,6 +180781,7 @@ module Stripe description: nil, destination: nil, expand: nil, + fx_quote: nil, metadata: nil, source_transaction: nil, source_type: nil, diff --git a/rbi/stripe/resources/fx_quote.rbi b/rbi/stripe/resources/fx_quote.rbi new file mode 100644 index 00000000..41d6b7a3 --- /dev/null +++ b/rbi/stripe/resources/fx_quote.rbi @@ -0,0 +1,196 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +# typed: true +module Stripe + # The FX Quotes API provides three key functions: + # - View current exchange rates: The object shows Stripe's current exchange rate for any given currency pair. + # - Extended quotes: The API provides rate quotes valid for a 1-hour period or a 24-hour period, eliminating uncertainty from FX fluctuations. + # - View FX fees: The API provides information on the FX fees Stripe will charge on your FX transaction, allowing you to anticipate specific settlement amounts before payment costs. + class FxQuote < APIResource + class Rates < Stripe::StripeObject + class RateDetails < Stripe::StripeObject + # The rate for the currency pair. + sig { returns(Float) } + attr_reader :base_rate + # The fee for locking the conversion rates. + sig { returns(Float) } + attr_reader :duration_premium + # The FX fee for the currency pair. + sig { returns(Float) } + attr_reader :fx_fee_rate + # A reference rate for the currency pair provided by the reference rate provider. + sig { returns(T.nilable(Float)) } + attr_reader :reference_rate + # The reference rate provider. + sig { returns(T.nilable(String)) } + attr_reader :reference_rate_provider + end + # The rate that includes the FX fee rate. + sig { returns(Float) } + attr_reader :exchange_rate + # Attribute for field rate_details + sig { returns(RateDetails) } + attr_reader :rate_details + end + class Usage < Stripe::StripeObject + class Payment < Stripe::StripeObject + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + sig { returns(T.nilable(String)) } + attr_reader :destination + # The Stripe account ID that these funds are intended for. + # + # This field must match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + sig { returns(T.nilable(String)) } + attr_reader :on_behalf_of + end + class Transfer < Stripe::StripeObject + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + sig { returns(String) } + attr_reader :destination + end + # The details required to use an FX Quote for a payment + sig { returns(T.nilable(Payment)) } + attr_reader :payment + # The details required to use an FX Quote for a transfer + sig { returns(T.nilable(Transfer)) } + attr_reader :transfer + # The transaction type for which the FX Quote will be used. + # + # Can be 'payment' or 'transfer'. + sig { returns(String) } + attr_reader :type + end + # Time at which the quote was created, measured in seconds since the Unix epoch. + sig { returns(Integer) } + attr_reader :created + # Unique identifier for the object. + sig { returns(String) } + attr_reader :id + # The duration the exchange rate quote remains valid from creation time. Allowed values are none, hour, and day. Note that for the test mode API available in alpha, you can request an extended quote, but it won't be usable for any transactions. + sig { returns(String) } + attr_reader :lock_duration + # Time at which the quote will expire, measured in seconds since the Unix epoch. + # + # If lock_duration is set to ‘none’ this field will be set to null. + sig { returns(T.nilable(Integer)) } + attr_reader :lock_expires_at + # Lock status of the quote. Transitions from active to expired once past the lock_expires_at timestamp. + # + # Can return value none, active, or expired. + sig { returns(String) } + attr_reader :lock_status + # String representing the object's type. Objects of the same type share the same value. + sig { returns(String) } + attr_reader :object + # Information about the rates. + sig { returns(T::Hash[String, Rates]) } + attr_reader :rates + # The currency to convert into, typically this is the currency that you want to settle to your Stripe balance. Three-letter ISO currency code, in lowercase. Must be a supported currency. + sig { returns(String) } + attr_reader :to_currency + # Attribute for field usage + sig { returns(Usage) } + attr_reader :usage + class ListParams < Stripe::RequestParams + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :ending_before + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :starting_after + sig { + params(ending_before: T.nilable(String), expand: T.nilable(T::Array[String]), limit: T.nilable(Integer), starting_after: T.nilable(String)).void + } + def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil); end + end + class CreateParams < Stripe::RequestParams + class Usage < Stripe::RequestParams + class Payment < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + sig { returns(T.nilable(String)) } + attr_accessor :destination + # The Stripe account ID that these funds are intended for. + # + # This field should match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + sig { returns(T.nilable(String)) } + attr_accessor :on_behalf_of + sig { params(destination: T.nilable(String), on_behalf_of: T.nilable(String)).void } + def initialize(destination: nil, on_behalf_of: nil); end + end + class Transfer < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + sig { returns(String) } + attr_accessor :destination + sig { params(destination: String).void } + def initialize(destination: nil); end + end + # The payment transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuote::CreateParams::Usage::Payment)) } + attr_accessor :payment + # The transfer transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuote::CreateParams::Usage::Transfer)) } + attr_accessor :transfer + # Which transaction the FX Quote will be used for + # + # Can be “payment” | “transfer” + sig { returns(String) } + attr_accessor :type + sig { + params(payment: T.nilable(::Stripe::FxQuote::CreateParams::Usage::Payment), transfer: T.nilable(::Stripe::FxQuote::CreateParams::Usage::Transfer), type: String).void + } + def initialize(payment: nil, transfer: nil, type: nil); end + end + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A list of three letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be [supported currencies](https://stripe.com/docs/currencies). + sig { returns(T::Array[String]) } + attr_accessor :from_currencies + # The duration that you wish the quote to be locked for. The quote will be usable for the duration specified. The default is `none`. The maximum is 1 day. + sig { returns(String) } + attr_accessor :lock_duration + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :to_currency + # The usage specific information for the quote. + sig { returns(T.nilable(::Stripe::FxQuote::CreateParams::Usage)) } + attr_accessor :usage + sig { + params(expand: T.nilable(T::Array[String]), from_currencies: T::Array[String], lock_duration: String, to_currency: String, usage: T.nilable(::Stripe::FxQuote::CreateParams::Usage)).void + } + def initialize( + expand: nil, + from_currencies: nil, + lock_duration: nil, + to_currency: nil, + usage: nil + ); end + end + # Creates an FX Quote object + sig { + params(params: T.any(::Stripe::FxQuote::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::FxQuote) + } + def self.create(params = {}, opts = {}); end + + # Returns a list of FX quotes that have been issued. The FX quotes are returned in sorted order, with the most recent FX quotes appearing first. + sig { + params(params: T.any(::Stripe::FxQuote::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject) + } + def self.list(params = {}, opts = {}); end + end +end \ No newline at end of file diff --git a/rbi/stripe/resources/payment_intent.rbi b/rbi/stripe/resources/payment_intent.rbi index 6c2950ac..d63dcf56 100644 --- a/rbi/stripe/resources/payment_intent.rbi +++ b/rbi/stripe/resources/payment_intent.rbi @@ -2443,6 +2443,9 @@ module Stripe # An arbitrary string attached to the object. Often useful for displaying to users. sig { returns(T.nilable(String)) } attr_reader :description + # The FX Quote used for the PaymentIntent. + sig { returns(T.nilable(String)) } + attr_reader :fx_quote # Unique identifier for the object. sig { returns(String) } attr_reader :id @@ -6173,6 +6176,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -6255,7 +6261,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntent::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntent::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntent::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void + params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntent::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntent::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntent::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( amount: nil, @@ -6272,6 +6278,7 @@ module Stripe description: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, metadata: nil, @@ -9826,6 +9833,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # This hash contains details about the Mandate to create. sig { returns(T.nilable(::Stripe::PaymentIntent::UpdateParams::MandateData)) } attr_accessor :mandate_data @@ -9888,7 +9898,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), mandate_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::TransferData), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntent::UpdateParams::TransferData), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -9900,6 +9910,7 @@ module Stripe customer_account: nil, description: nil, expand: nil, + fx_quote: nil, mandate_data: nil, metadata: nil, payment_details: nil, @@ -14305,6 +14316,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -14366,7 +14380,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void + params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntent::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntent::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntent::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( application_fee_amount: nil, @@ -14375,6 +14389,7 @@ module Stripe confirmation_token: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, off_session: nil, diff --git a/rbi/stripe/resources/transfer.rbi b/rbi/stripe/resources/transfer.rbi index 492f3b52..c529886c 100644 --- a/rbi/stripe/resources/transfer.rbi +++ b/rbi/stripe/resources/transfer.rbi @@ -38,6 +38,9 @@ module Stripe # If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer. sig { returns(T.any(String, Stripe::Charge)) } attr_reader :destination_payment + # The FX Quote used for the transfer. + sig { returns(String) } + attr_reader :fx_quote # Unique identifier for the object. sig { returns(String) } attr_reader :id @@ -134,6 +137,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the transfer amount to the destination currency. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T::Hash[String, String])) } attr_accessor :metadata @@ -147,7 +153,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -155,6 +161,7 @@ module Stripe description: nil, destination: nil, expand: nil, + fx_quote: nil, metadata: nil, source_transaction: nil, source_type: nil, diff --git a/rbi/stripe/services/fx_quote_service.rbi b/rbi/stripe/services/fx_quote_service.rbi new file mode 100644 index 00000000..79566294 --- /dev/null +++ b/rbi/stripe/services/fx_quote_service.rbi @@ -0,0 +1,117 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +# typed: true +module Stripe + class FxQuoteService < StripeService + class ListParams < Stripe::RequestParams + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :ending_before + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + sig { returns(T.nilable(String)) } + attr_accessor :starting_after + sig { + params(ending_before: T.nilable(String), expand: T.nilable(T::Array[String]), limit: T.nilable(Integer), starting_after: T.nilable(String)).void + } + def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil); end + end + class CreateParams < Stripe::RequestParams + class Usage < Stripe::RequestParams + class Payment < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the PaymentIntent’s transfer_data[destination] field. + sig { returns(T.nilable(String)) } + attr_accessor :destination + # The Stripe account ID that these funds are intended for. + # + # This field should match the account ID that would be used in the PaymentIntent’s on_behalf_of field. + sig { returns(T.nilable(String)) } + attr_accessor :on_behalf_of + sig { params(destination: T.nilable(String), on_behalf_of: T.nilable(String)).void } + def initialize(destination: nil, on_behalf_of: nil); end + end + class Transfer < Stripe::RequestParams + # The Stripe account ID that the funds will be transferred to. + # + # This field should match the account ID that would be used in the Transfer’s destination field. + sig { returns(String) } + attr_accessor :destination + sig { params(destination: String).void } + def initialize(destination: nil); end + end + # The payment transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Payment)) } + attr_accessor :payment + # The transfer transaction details that are intended for the FX Quote. + sig { returns(T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Transfer)) } + attr_accessor :transfer + # Which transaction the FX Quote will be used for + # + # Can be “payment” | “transfer” + sig { returns(String) } + attr_accessor :type + sig { + params(payment: T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Payment), transfer: T.nilable(::Stripe::FxQuoteService::CreateParams::Usage::Transfer), type: String).void + } + def initialize(payment: nil, transfer: nil, type: nil); end + end + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + # A list of three letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be [supported currencies](https://stripe.com/docs/currencies). + sig { returns(T::Array[String]) } + attr_accessor :from_currencies + # The duration that you wish the quote to be locked for. The quote will be usable for the duration specified. The default is `none`. The maximum is 1 day. + sig { returns(String) } + attr_accessor :lock_duration + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :to_currency + # The usage specific information for the quote. + sig { returns(T.nilable(::Stripe::FxQuoteService::CreateParams::Usage)) } + attr_accessor :usage + sig { + params(expand: T.nilable(T::Array[String]), from_currencies: T::Array[String], lock_duration: String, to_currency: String, usage: T.nilable(::Stripe::FxQuoteService::CreateParams::Usage)).void + } + def initialize( + expand: nil, + from_currencies: nil, + lock_duration: nil, + to_currency: nil, + usage: nil + ); end + end + class RetrieveParams < Stripe::RequestParams + # Specifies which fields in the response should be expanded. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + sig { params(expand: T.nilable(T::Array[String])).void } + def initialize(expand: nil); end + end + # Creates an FX Quote object + sig { + params(params: T.any(::Stripe::FxQuoteService::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::FxQuote) + } + def create(params = {}, opts = {}); end + + # Returns a list of FX quotes that have been issued. The FX quotes are returned in sorted order, with the most recent FX quotes appearing first. + sig { + params(params: T.any(::Stripe::FxQuoteService::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject) + } + def list(params = {}, opts = {}); end + + # Retrieve an FX Quote object + sig { + params(id: String, params: T.any(::Stripe::FxQuoteService::RetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::FxQuote) + } + def retrieve(id, params = {}, opts = {}); end + end +end \ No newline at end of file diff --git a/rbi/stripe/services/payment_intent_service.rbi b/rbi/stripe/services/payment_intent_service.rbi index 14e1fa63..f1c56df8 100644 --- a/rbi/stripe/services/payment_intent_service.rbi +++ b/rbi/stripe/services/payment_intent_service.rbi @@ -3714,6 +3714,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -3796,7 +3799,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntentService::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntentService::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntentService::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void + params(amount: Integer, application_fee_amount: T.nilable(Integer), async_workflows: T.nilable(::Stripe::PaymentIntentService::CreateParams::AsyncWorkflows), automatic_payment_methods: T.nilable(::Stripe::PaymentIntentService::CreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::CreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(::Stripe::PaymentIntentService::CreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::CreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( amount: nil, @@ -3813,6 +3816,7 @@ module Stripe description: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, metadata: nil, @@ -7441,6 +7445,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # This hash contains details about the Mandate to create. sig { returns(T.nilable(::Stripe::PaymentIntentService::UpdateParams::MandateData)) } attr_accessor :mandate_data @@ -7503,7 +7510,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), mandate_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::TransferData), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::UpdateParams::AsyncWorkflows), capture_method: T.nilable(String), currency: T.nilable(String), customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::MandateData), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), receipt_email: T.nilable(T.nilable(String)), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::UpdateParams::Shipping))), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(::Stripe::PaymentIntentService::UpdateParams::TransferData), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -7515,6 +7522,7 @@ module Stripe customer_account: nil, description: nil, expand: nil, + fx_quote: nil, mandate_data: nil, metadata: nil, payment_details: nil, @@ -11968,6 +11976,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the presentment amount to the settlement amount. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # ID of the mandate that's used for this payment. sig { returns(T.nilable(String)) } attr_accessor :mandate @@ -12031,7 +12042,7 @@ module Stripe sig { returns(T.nilable(T::Boolean)) } attr_accessor :use_stripe_sdk sig { - params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void + params(application_fee_amount: T.nilable(T.nilable(T.any(String, Integer))), async_workflows: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::AsyncWorkflows), capture_method: T.nilable(String), confirmation_token: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), mandate: T.nilable(String), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::MandateData))), off_session: T.nilable(T.any(T::Boolean, String)), payment_details: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::PaymentDetails))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(::Stripe::PaymentIntentService::ConfirmParams::RadarOptions), receipt_email: T.nilable(T.nilable(String)), return_url: T.nilable(String), setup_future_usage: T.nilable(T.nilable(T.any(String, String))), shipping: T.nilable(T.nilable(T.any(String, ::Stripe::PaymentIntentService::ConfirmParams::Shipping))), use_stripe_sdk: T.nilable(T::Boolean)).void } def initialize( application_fee_amount: nil, @@ -12040,6 +12051,7 @@ module Stripe confirmation_token: nil, error_on_requires_action: nil, expand: nil, + fx_quote: nil, mandate: nil, mandate_data: nil, off_session: nil, diff --git a/rbi/stripe/services/transfer_service.rbi b/rbi/stripe/services/transfer_service.rbi index 635feb56..988a345a 100644 --- a/rbi/stripe/services/transfer_service.rbi +++ b/rbi/stripe/services/transfer_service.rbi @@ -74,6 +74,9 @@ module Stripe # Specifies which fields in the response should be expanded. sig { returns(T.nilable(T::Array[String])) } attr_accessor :expand + # The FX rate in the quote is validated and used to convert the transfer amount to the destination currency. + sig { returns(T.nilable(String)) } + attr_accessor :fx_quote # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T::Hash[String, String])) } attr_accessor :metadata @@ -87,7 +90,7 @@ module Stripe sig { returns(T.nilable(String)) } attr_accessor :transfer_group sig { - params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void + params(amount: T.nilable(Integer), currency: String, description: T.nilable(String), destination: String, expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), metadata: T.nilable(T::Hash[String, String]), source_transaction: T.nilable(String), source_type: T.nilable(String), transfer_group: T.nilable(String)).void } def initialize( amount: nil, @@ -95,6 +98,7 @@ module Stripe description: nil, destination: nil, expand: nil, + fx_quote: nil, metadata: nil, source_transaction: nil, source_type: nil, diff --git a/rbi/stripe/services/v1_services.rbi b/rbi/stripe/services/v1_services.rbi index 74d6bdf1..7b1839ca 100644 --- a/rbi/stripe/services/v1_services.rbi +++ b/rbi/stripe/services/v1_services.rbi @@ -36,6 +36,7 @@ module Stripe attr_reader :file_links attr_reader :financial_connections attr_reader :forwarding + attr_reader :fx_quotes attr_reader :gift_cards attr_reader :identity attr_reader :invoices