moov_ruby 0.3.13 → 0.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/bank_accounts.rb +3 -3
  3. data/lib/moov/models/components/accountfees.rb +53 -0
  4. data/lib/moov/models/components/accountfees.rbi +23 -0
  5. data/lib/moov/models/components/adjustmentfees.rb +41 -0
  6. data/lib/moov/models/components/adjustmentfees.rbi +15 -0
  7. data/lib/moov/models/components/bankaccountexception.rb +25 -2
  8. data/lib/moov/models/components/bankaccountexception.rbi +2 -0
  9. data/lib/moov/models/components/bankaccountstatusreason.rb +1 -0
  10. data/lib/moov/models/components/billingcountandamount.rb +1 -1
  11. data/lib/moov/models/components/billingsummary.rb +45 -11
  12. data/lib/moov/models/components/billingsummary.rbi +14 -0
  13. data/lib/moov/models/components/billingsummary_platformfees.rb +41 -0
  14. data/lib/moov/models/components/billingsummary_platformfees.rbi +15 -0
  15. data/lib/moov/models/components/billingsummary_volumeamount.rb +41 -0
  16. data/lib/moov/models/components/billingsummary_volumeamount.rbi +15 -0
  17. data/lib/moov/models/components/billingsummarydetails.rb +22 -6
  18. data/lib/moov/models/components/billingsummarydetails.rbi +6 -0
  19. data/lib/moov/models/components/billingsummarydetails_volumeamount.rb +41 -0
  20. data/lib/moov/models/components/billingsummarydetails_volumeamount.rbi +15 -0
  21. data/lib/moov/models/components/cardacquiring.rb +22 -6
  22. data/lib/moov/models/components/cardacquiring.rbi +6 -0
  23. data/lib/moov/models/components/cardbrandfees.rb +1 -1
  24. data/lib/moov/models/components/otherfees.rb +41 -0
  25. data/lib/moov/models/components/otherfees.rbi +15 -0
  26. data/lib/moov/models/components/partnerfees.rb +41 -0
  27. data/lib/moov/models/components/partnerfees.rbi +17 -0
  28. data/lib/moov/models/components/platformfees.rb +3 -1
  29. data/lib/moov/models/components/runtransfer.rb +7 -2
  30. data/lib/moov/models/components/runtransfer.rbi +2 -0
  31. data/lib/moov/models/components/scheduledtransferlineitem.rb +49 -0
  32. data/lib/moov/models/components/scheduledtransferlineitem.rbi +21 -0
  33. data/lib/moov/models/components/scheduledtransferlineitemoption.rb +45 -0
  34. data/lib/moov/models/components/scheduledtransferlineitemoption.rbi +19 -0
  35. data/lib/moov/models/components/scheduledtransferlineitems.rb +34 -0
  36. data/lib/moov/models/components/scheduledtransferlineitems.rbi +13 -0
  37. data/lib/moov/models/components/statement.rb +15 -5
  38. data/lib/moov/models/components/statement.rbi +4 -0
  39. data/lib/moov/models/components.rb +10 -0
  40. data/lib/moov/sdkconfiguration.rb +3 -3
  41. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e05d0635b49ad3ed4e5becb750d7da726f2a9c3ca40caf2db2211660e711fd2e
4
- data.tar.gz: 34af1c3843d3522dde9fa28ddf7b92065abe0dfbfa4fadad61b7eac3dbda7c7e
3
+ metadata.gz: 91c583ee1ffc982a3b37616561addc58bf9b35c5f77014682ca6baef6fc61613
4
+ data.tar.gz: bf1a511dd7739c8dc31d8efb7c29a1ccd7525830698839e36605e085986197ae
5
5
  SHA512:
6
- metadata.gz: 47d19af43555a0d14da330eb4f38cf1fca64e5afa332eec103bc431b48346e5373a622cb84499a2ac5038c4399feb5d9aaec6e344f82a8f295dd8747ed5fbf85
7
- data.tar.gz: e635f58a685c3d4c308156b7ef1d903637646b516b2a492d10820b5c280dd60e0c1fb2847e355fc54ad507d2e7ad6b91485ae984eb32e1c8f26db0d89a778132
6
+ metadata.gz: c03f2058f50d91abe4e602a499bb22ec4bbf33619fbd5a5146f633e32ced87e6a21f6a6c3148a7b42c7230680d2d4bfe622756a08d43e637c0a032e8fc5f79f1
7
+ data.tar.gz: 2835f0a1df85b19f00b98635cb9bc80d18104e22ebf3cee0f79412ec5885564727c240c1abe7867c480b6b9d944ebe16ac769afcaf440ba3091fc9831c12bbee
@@ -890,7 +890,7 @@ module Moov
890
890
 
891
891
  sig { params(account_id: ::String, bank_account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetBankAccountVerificationResponse) }
892
892
  def get_verification(account_id:, bank_account_id:, x_moov_version: nil, timeout_ms: nil)
893
- # get_verification - Retrieve the current status and details of an instant verification, including whether the verification method was instant or same-day
893
+ # get_verification - Retrieve the current status and details of an instant verification, including whether the verification method was instant (RTP or FedNow) or same-day
894
894
  # ACH. This helps track the verification process in real-time and provides details in case of exceptions.
895
895
  #
896
896
  # The status will indicate the following:
@@ -1023,14 +1023,14 @@ module Moov
1023
1023
  def initiate_verification(account_id:, bank_account_id:, x_moov_version: nil, x_wait_for: nil, timeout_ms: nil)
1024
1024
  # initiate_verification - Instant micro-deposit verification offers a quick and efficient way to verify bank account ownership.
1025
1025
  #
1026
- # Send a $0.01 credit with a unique verification code via RTP or same-day ACH, depending on the receiving bank's capabilities. This
1026
+ # Send a $0.01 credit with a unique verification code via RTP, FedNow, or same-day ACH, depending on the receiving bank's capabilities. This
1027
1027
  # feature provides a faster alternative to traditional methods, allowing verification in a single session.
1028
1028
  #
1029
1029
  # It is recommended to use the `X-Wait-For: rail-response` header to synchronously receive the outcome of the instant credit in the
1030
1030
  # response payload.
1031
1031
  #
1032
1032
  # Possible verification methods:
1033
- # - `instant`: Real-time verification credit sent via RTP
1033
+ # - `instant`: Real-time verification credit sent via RTP or FedNow
1034
1034
  # - `ach`: Verification credit sent via same-day ACH
1035
1035
  #
1036
1036
  # Possible statuses:
@@ -0,0 +1,53 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # A detailed breakdown of account fees.
12
+ class AccountFees
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Fees associated with wallet services.
17
+ field :wallet_fee, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletFee'), required: true } }
18
+ # Fees for PCI compliance.
19
+ field :merchant_pci_fee, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPCIFee'), required: true } }
20
+ # Total platform fees.
21
+ field :total, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('total'), required: true } }
22
+ # Fees for business verification.
23
+ field :kyb_fee, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('kybFee') } }
24
+ # Fees for customer verification.
25
+ field :kyc_fee, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('kycFee') } }
26
+ # Fees for transaction risk monitoring.
27
+ field :transaction_monitoring_fee, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionMonitoringFee') } }
28
+
29
+ sig { params(wallet_fee: Models::Components::AmountDecimal, merchant_pci_fee: Models::Components::AmountDecimal, total: Models::Components::AmountDecimal, kyb_fee: T.nilable(Models::Components::AmountDecimal), kyc_fee: T.nilable(Models::Components::AmountDecimal), transaction_monitoring_fee: T.nilable(Models::Components::AmountDecimal)).void }
30
+ def initialize(wallet_fee:, merchant_pci_fee:, total:, kyb_fee: nil, kyc_fee: nil, transaction_monitoring_fee: nil)
31
+ @wallet_fee = wallet_fee
32
+ @merchant_pci_fee = merchant_pci_fee
33
+ @total = total
34
+ @kyb_fee = kyb_fee
35
+ @kyc_fee = kyc_fee
36
+ @transaction_monitoring_fee = transaction_monitoring_fee
37
+ end
38
+
39
+ sig { params(other: T.untyped).returns(T::Boolean) }
40
+ def ==(other)
41
+ return false unless other.is_a? self.class
42
+ return false unless @wallet_fee == other.wallet_fee
43
+ return false unless @merchant_pci_fee == other.merchant_pci_fee
44
+ return false unless @total == other.total
45
+ return false unless @kyb_fee == other.kyb_fee
46
+ return false unless @kyc_fee == other.kyc_fee
47
+ return false unless @transaction_monitoring_fee == other.transaction_monitoring_fee
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::AccountFees
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::AccountFees
11
+ def wallet_fee(); end
12
+ def wallet_fee=(str_); end
13
+ def merchant_pci_fee(); end
14
+ def merchant_pci_fee=(str_); end
15
+ def total(); end
16
+ def total=(str_); end
17
+ def kyb_fee(); end
18
+ def kyb_fee=(str_); end
19
+ def kyc_fee(); end
20
+ def kyc_fee=(str_); end
21
+ def transaction_monitoring_fee(); end
22
+ def transaction_monitoring_fee=(str_); end
23
+ end
@@ -0,0 +1,41 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # The total amount of adjustment fees. This field is deprecated and will be removed in a future release.
12
+ #
13
+ # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
14
+ class AdjustmentFees
15
+ extend T::Sig
16
+ include Crystalline::MetadataFields
17
+
18
+ # A 3-letter ISO 4217 currency code.
19
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('currency'), required: true } }
20
+ # A decimal-formatted numerical string that represents up to 9 decimal place precision.
21
+ #
22
+ # For example, $12.987654321 is '12.987654321'.
23
+ field :value_decimal, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('valueDecimal'), required: true } }
24
+
25
+ sig { params(currency: ::String, value_decimal: ::String).void }
26
+ def initialize(currency:, value_decimal:)
27
+ @currency = currency
28
+ @value_decimal = value_decimal
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a? self.class
34
+ return false unless @currency == other.currency
35
+ return false unless @value_decimal == other.value_decimal
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::AdjustmentFees
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::AdjustmentFees
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value_decimal(); end
14
+ def value_decimal=(str_); end
15
+ end
@@ -48,12 +48,34 @@ module Moov
48
48
  # - AG03: Transaction Type Not Supported
49
49
  # - MD07: Customer Deceased
50
50
  field :rtp_rejection_code, Crystalline::Nilable.new(Models::Components::RTPRejectionCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('rtpRejectionCode'), 'decoder': Utils.enum_from_string(Models::Components::RTPRejectionCode, true) } }
51
+ # The rejection code of a FedNow transaction that caused the bank account status to change.
52
+ #
53
+ # - AC02: Debtor account is invalid
54
+ # - AC03: Creditor account is invalid
55
+ # - AC04: Account closed
56
+ # - AC06: Account is blocked
57
+ # - AC07: Creditor account closed
58
+ # - AC10: Debtor account currency is invalid or missing
59
+ # - AC11: Creditor account currency is invalid or missing
60
+ # - AC13: Debtor account type missing or invalid
61
+ # - AC14: Creditor account type missing or invalid
62
+ # - AG01: Transaction is forbidden on this type of account
63
+ # - AG03: Transaction type is not supported/authorized on this account
64
+ # - BE06: End customer specified is not known at associated Sort/National Bank Code or no longer exists in the books
65
+ # - DUPL: Payment is a duplicate of another payment
66
+ # - MD07: End customer is deceased
67
+ # - NOAT: Receiving customer account does not support/accept this message type
68
+ # - RC02: Bank identifier is invalid or missing
69
+ # - RC03: Debtor FI identifier is invalid or missing
70
+ # - RC04: Creditor FI identifier is invalid or missing
71
+ field :fednow_rejection_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fednowRejectionCode') } }
51
72
 
52
- sig { params(description: ::String, ach_return_code: T.nilable(Models::Components::ACHReturnCode), rtp_rejection_code: T.nilable(Models::Components::RTPRejectionCode)).void }
53
- def initialize(description:, ach_return_code: nil, rtp_rejection_code: nil)
73
+ sig { params(description: ::String, ach_return_code: T.nilable(Models::Components::ACHReturnCode), rtp_rejection_code: T.nilable(Models::Components::RTPRejectionCode), fednow_rejection_code: T.nilable(::String)).void }
74
+ def initialize(description:, ach_return_code: nil, rtp_rejection_code: nil, fednow_rejection_code: nil)
54
75
  @description = description
55
76
  @ach_return_code = ach_return_code
56
77
  @rtp_rejection_code = rtp_rejection_code
78
+ @fednow_rejection_code = fednow_rejection_code
57
79
  end
58
80
 
59
81
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -62,6 +84,7 @@ module Moov
62
84
  return false unless @description == other.description
63
85
  return false unless @ach_return_code == other.ach_return_code
64
86
  return false unless @rtp_rejection_code == other.rtp_rejection_code
87
+ return false unless @fednow_rejection_code == other.fednow_rejection_code
65
88
  true
66
89
  end
67
90
  end
@@ -14,4 +14,6 @@ class Moov::Models::Components::BankAccountException
14
14
  def ach_return_code=(str_); end
15
15
  def rtp_rejection_code(); end
16
16
  def rtp_rejection_code=(str_); end
17
+ def fednow_rejection_code(); end
18
+ def fednow_rejection_code=(str_); end
17
19
  end
@@ -24,6 +24,7 @@ module Moov
24
24
  ACH_DEBIT_RETURN = new('ach-debit-return')
25
25
  ACH_CREDIT_RETURN = new('ach-credit-return')
26
26
  RTP_CREDIT_FAILURE = new('rtp-credit-failure')
27
+ FEDNOW_CREDIT_FAILURE = new('fednow-credit-failure')
27
28
  MICRO_DEPOSIT_RETURN = new('micro-deposit-return')
28
29
  ADMIN_ACTION = new('admin-action')
29
30
  OTHER = new('other')
@@ -8,7 +8,7 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- # Represents a count of items and their total amount.
11
+
12
12
  class BillingCountAndAmount
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
@@ -13,30 +13,57 @@ module Moov
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # A summary of card acquiring volume and fees.
16
+ # A summary of card acquiring fees.
17
17
  field :card_acquiring, Crystalline::Nilable.new(Models::Components::CardAcquiring), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAcquiring') } }
18
- # A summary of ACH volume and fees.
18
+ # A summary of ACH fees.
19
19
  field :ach, Crystalline::Nilable.new(Models::Components::BillingSummaryDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('ach') } }
20
- # A summary of instant payment volume and fees.
20
+ # A summary of instant payment fees.
21
21
  field :instant_payments, Crystalline::Nilable.new(Models::Components::BillingSummaryDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantPayments') } }
22
- # The total amount of platform fees.
23
- field :platform_fees, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('platformFees') } }
24
- # The total amount of adjustment fees.
25
- field :adjustment_fees, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('adjustmentFees') } }
26
- # The total amount of other fees.
27
- field :other_fees, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('otherFees') } }
22
+ # The total amount of platform fees. This field is deprecated and will be removed in a future release. Use summary.accountFees.
23
+ #
24
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
25
+ field :platform_fees, Crystalline::Nilable.new(Models::Components::BillingSummaryPlatformFees), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('platformFees') } }
26
+ # A summary of account fees.
27
+ field :account_fees, Crystalline::Nilable.new(Models::Components::BillingSummaryDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountFees') } }
28
+ # The total amount of adjustment fees. This field is deprecated and will be removed in a future release.
29
+ #
30
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
31
+ field :adjustment_fees, Crystalline::Nilable.new(Models::Components::AdjustmentFees), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('adjustmentFees') } }
32
+ # The total amount of other card fees. This field is deprecated and will be removed in a future release. Use summary.otherCardFees.
33
+ #
34
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
35
+ field :other_fees, Crystalline::Nilable.new(Models::Components::OtherFees), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('otherFees') } }
36
+ # A summary of other card fees.
37
+ field :other_card_fees, Crystalline::Nilable.new(Models::Components::BillingSummaryDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('otherCardFees') } }
28
38
  # The total amount of all fees.
29
39
  field :total, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('total') } }
40
+ # Total net revenue after deducting total partner fees.
41
+ field :net_income_subtotal, Crystalline::Nilable.new(Models::Components::BillingSummaryDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('netIncomeSubtotal') } }
42
+ # Partner’s share of the net income, expressed as a percentage.
43
+ field :revenue_share, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('revenueShare') } }
44
+ # The portion of net income allocated to the partner before monthly partner costs.
45
+ field :residual_subtotal, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('residualSubtotal') } }
46
+ # Monthly partner costs that are charged separately and not included in residual subtotal (e.g. platform fees, minimums).
47
+ field :monthly_partner_costs, Crystalline::Nilable.new(Models::Components::PartnerFees), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('monthlyPartnerCosts') } }
48
+ # Final partner payment after deducting monthlyPartnerCosts.
49
+ field :net_partner_payment, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('netPartnerPayment') } }
30
50
 
31
- sig { params(card_acquiring: T.nilable(Models::Components::CardAcquiring), ach: T.nilable(Models::Components::BillingSummaryDetails), instant_payments: T.nilable(Models::Components::BillingSummaryDetails), platform_fees: T.nilable(Models::Components::AmountDecimal), adjustment_fees: T.nilable(Models::Components::AmountDecimal), other_fees: T.nilable(Models::Components::AmountDecimal), total: T.nilable(Models::Components::AmountDecimal)).void }
32
- def initialize(card_acquiring: nil, ach: nil, instant_payments: nil, platform_fees: nil, adjustment_fees: nil, other_fees: nil, total: nil)
51
+ sig { params(card_acquiring: T.nilable(Models::Components::CardAcquiring), ach: T.nilable(Models::Components::BillingSummaryDetails), instant_payments: T.nilable(Models::Components::BillingSummaryDetails), platform_fees: T.nilable(Models::Components::BillingSummaryPlatformFees), account_fees: T.nilable(Models::Components::BillingSummaryDetails), adjustment_fees: T.nilable(Models::Components::AdjustmentFees), other_fees: T.nilable(Models::Components::OtherFees), other_card_fees: T.nilable(Models::Components::BillingSummaryDetails), total: T.nilable(Models::Components::AmountDecimal), net_income_subtotal: T.nilable(Models::Components::BillingSummaryDetails), revenue_share: T.nilable(::String), residual_subtotal: T.nilable(Models::Components::AmountDecimal), monthly_partner_costs: T.nilable(Models::Components::PartnerFees), net_partner_payment: T.nilable(Models::Components::AmountDecimal)).void }
52
+ def initialize(card_acquiring: nil, ach: nil, instant_payments: nil, platform_fees: nil, account_fees: nil, adjustment_fees: nil, other_fees: nil, other_card_fees: nil, total: nil, net_income_subtotal: nil, revenue_share: nil, residual_subtotal: nil, monthly_partner_costs: nil, net_partner_payment: nil)
33
53
  @card_acquiring = card_acquiring
34
54
  @ach = ach
35
55
  @instant_payments = instant_payments
36
56
  @platform_fees = platform_fees
57
+ @account_fees = account_fees
37
58
  @adjustment_fees = adjustment_fees
38
59
  @other_fees = other_fees
60
+ @other_card_fees = other_card_fees
39
61
  @total = total
62
+ @net_income_subtotal = net_income_subtotal
63
+ @revenue_share = revenue_share
64
+ @residual_subtotal = residual_subtotal
65
+ @monthly_partner_costs = monthly_partner_costs
66
+ @net_partner_payment = net_partner_payment
40
67
  end
41
68
 
42
69
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -46,9 +73,16 @@ module Moov
46
73
  return false unless @ach == other.ach
47
74
  return false unless @instant_payments == other.instant_payments
48
75
  return false unless @platform_fees == other.platform_fees
76
+ return false unless @account_fees == other.account_fees
49
77
  return false unless @adjustment_fees == other.adjustment_fees
50
78
  return false unless @other_fees == other.other_fees
79
+ return false unless @other_card_fees == other.other_card_fees
51
80
  return false unless @total == other.total
81
+ return false unless @net_income_subtotal == other.net_income_subtotal
82
+ return false unless @revenue_share == other.revenue_share
83
+ return false unless @residual_subtotal == other.residual_subtotal
84
+ return false unless @monthly_partner_costs == other.monthly_partner_costs
85
+ return false unless @net_partner_payment == other.net_partner_payment
52
86
  true
53
87
  end
54
88
  end
@@ -16,10 +16,24 @@ class Moov::Models::Components::BillingSummary
16
16
  def instant_payments=(str_); end
17
17
  def platform_fees(); end
18
18
  def platform_fees=(str_); end
19
+ def account_fees(); end
20
+ def account_fees=(str_); end
19
21
  def adjustment_fees(); end
20
22
  def adjustment_fees=(str_); end
21
23
  def other_fees(); end
22
24
  def other_fees=(str_); end
25
+ def other_card_fees(); end
26
+ def other_card_fees=(str_); end
23
27
  def total(); end
24
28
  def total=(str_); end
29
+ def net_income_subtotal(); end
30
+ def net_income_subtotal=(str_); end
31
+ def revenue_share(); end
32
+ def revenue_share=(str_); end
33
+ def residual_subtotal(); end
34
+ def residual_subtotal=(str_); end
35
+ def monthly_partner_costs(); end
36
+ def monthly_partner_costs=(str_); end
37
+ def net_partner_payment(); end
38
+ def net_partner_payment=(str_); end
25
39
  end
@@ -0,0 +1,41 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # The total amount of platform fees. This field is deprecated and will be removed in a future release. Use summary.accountFees.
12
+ #
13
+ # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
14
+ class BillingSummaryPlatformFees
15
+ extend T::Sig
16
+ include Crystalline::MetadataFields
17
+
18
+ # A 3-letter ISO 4217 currency code.
19
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('currency'), required: true } }
20
+ # A decimal-formatted numerical string that represents up to 9 decimal place precision.
21
+ #
22
+ # For example, $12.987654321 is '12.987654321'.
23
+ field :value_decimal, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('valueDecimal'), required: true } }
24
+
25
+ sig { params(currency: ::String, value_decimal: ::String).void }
26
+ def initialize(currency:, value_decimal:)
27
+ @currency = currency
28
+ @value_decimal = value_decimal
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a? self.class
34
+ return false unless @currency == other.currency
35
+ return false unless @value_decimal == other.value_decimal
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BillingSummaryPlatformFees
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BillingSummaryPlatformFees
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value_decimal(); end
14
+ def value_decimal=(str_); end
15
+ end
@@ -0,0 +1,41 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # The total transaction volume amount. This field is deprecated and will be removed in a future release.
12
+ #
13
+ # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
14
+ class BillingSummaryVolumeAmount
15
+ extend T::Sig
16
+ include Crystalline::MetadataFields
17
+
18
+ # A 3-letter ISO 4217 currency code.
19
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('currency'), required: true } }
20
+ # A decimal-formatted numerical string that represents up to 9 decimal place precision.
21
+ #
22
+ # For example, $12.987654321 is '12.987654321'.
23
+ field :value_decimal, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('valueDecimal'), required: true } }
24
+
25
+ sig { params(currency: ::String, value_decimal: ::String).void }
26
+ def initialize(currency:, value_decimal:)
27
+ @currency = currency
28
+ @value_decimal = value_decimal
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a? self.class
34
+ return false unless @currency == other.currency
35
+ return false unless @value_decimal == other.value_decimal
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BillingSummaryVolumeAmount
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BillingSummaryVolumeAmount
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value_decimal(); end
14
+ def value_decimal=(str_); end
15
+ end
@@ -8,23 +8,36 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- # Details of volume and fees for a specific payment method.
11
+
12
12
  class BillingSummaryDetails
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The total transaction volume amount.
17
- field :volume_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeAmount') } }
18
- # The total number of transactions.
16
+ # The total transaction volume amount. This field is deprecated and will be removed in a future release.
17
+ #
18
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
19
+ field :volume_amount, Crystalline::Nilable.new(Models::Components::BillingSummaryDetailsVolumeAmount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeAmount') } }
20
+ # The total number of transactions. This field is deprecated and will be removed in a future release.
21
+ #
22
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
19
23
  field :volume_count, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeCount') } }
20
24
  # The total fee amount.
21
25
  field :fee_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('feeAmount') } }
26
+ # Total fee revenue collected from merchants.
27
+ field :merchant_fees_collected, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantFeesCollected') } }
28
+ # Total fee costs incurred by the partner.
29
+ field :partner_fees_assessed, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerFeesAssessed') } }
30
+ # Net revenue after deducting partner fee costs.
31
+ field :net_income, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('netIncome') } }
22
32
 
23
- sig { params(volume_amount: T.nilable(Models::Components::AmountDecimal), volume_count: T.nilable(::Integer), fee_amount: T.nilable(Models::Components::AmountDecimal)).void }
24
- def initialize(volume_amount: nil, volume_count: nil, fee_amount: nil)
33
+ sig { params(volume_amount: T.nilable(Models::Components::BillingSummaryDetailsVolumeAmount), volume_count: T.nilable(::Integer), fee_amount: T.nilable(Models::Components::AmountDecimal), merchant_fees_collected: T.nilable(Models::Components::AmountDecimal), partner_fees_assessed: T.nilable(Models::Components::AmountDecimal), net_income: T.nilable(Models::Components::AmountDecimal)).void }
34
+ def initialize(volume_amount: nil, volume_count: nil, fee_amount: nil, merchant_fees_collected: nil, partner_fees_assessed: nil, net_income: nil)
25
35
  @volume_amount = volume_amount
26
36
  @volume_count = volume_count
27
37
  @fee_amount = fee_amount
38
+ @merchant_fees_collected = merchant_fees_collected
39
+ @partner_fees_assessed = partner_fees_assessed
40
+ @net_income = net_income
28
41
  end
29
42
 
30
43
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -33,6 +46,9 @@ module Moov
33
46
  return false unless @volume_amount == other.volume_amount
34
47
  return false unless @volume_count == other.volume_count
35
48
  return false unless @fee_amount == other.fee_amount
49
+ return false unless @merchant_fees_collected == other.merchant_fees_collected
50
+ return false unless @partner_fees_assessed == other.partner_fees_assessed
51
+ return false unless @net_income == other.net_income
36
52
  true
37
53
  end
38
54
  end
@@ -14,4 +14,10 @@ class Moov::Models::Components::BillingSummaryDetails
14
14
  def volume_count=(str_); end
15
15
  def fee_amount(); end
16
16
  def fee_amount=(str_); end
17
+ def merchant_fees_collected(); end
18
+ def merchant_fees_collected=(str_); end
19
+ def partner_fees_assessed(); end
20
+ def partner_fees_assessed=(str_); end
21
+ def net_income(); end
22
+ def net_income=(str_); end
17
23
  end
@@ -0,0 +1,41 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # The total transaction volume amount. This field is deprecated and will be removed in a future release.
12
+ #
13
+ # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
14
+ class BillingSummaryDetailsVolumeAmount
15
+ extend T::Sig
16
+ include Crystalline::MetadataFields
17
+
18
+ # A 3-letter ISO 4217 currency code.
19
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('currency'), required: true } }
20
+ # A decimal-formatted numerical string that represents up to 9 decimal place precision.
21
+ #
22
+ # For example, $12.987654321 is '12.987654321'.
23
+ field :value_decimal, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('valueDecimal'), required: true } }
24
+
25
+ sig { params(currency: ::String, value_decimal: ::String).void }
26
+ def initialize(currency:, value_decimal:)
27
+ @currency = currency
28
+ @value_decimal = value_decimal
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a? self.class
34
+ return false unless @currency == other.currency
35
+ return false unless @value_decimal == other.value_decimal
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BillingSummaryDetailsVolumeAmount
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BillingSummaryDetailsVolumeAmount
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value_decimal(); end
14
+ def value_decimal=(str_); end
15
+ end