lithic 0.19.0 → 0.21.0

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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/models/account_activity_list_params.rb +1 -0
  6. data/lib/lithic/models/account_activity_list_response.rb +1 -0
  7. data/lib/lithic/models/account_activity_retrieve_transaction_response.rb +1 -0
  8. data/lib/lithic/models/auth_rules/ach_payment_update_action.rb +1 -0
  9. data/lib/lithic/models/auth_rules/auth_rule.rb +5 -0
  10. data/lib/lithic/models/auth_rules/card_transaction_update_action.rb +1 -0
  11. data/lib/lithic/models/auth_rules/report_stats.rb +1 -0
  12. data/lib/lithic/models/auth_rules/v2_create_params.rb +15 -0
  13. data/lib/lithic/models/auth_rules/v2_list_results_response.rb +3 -0
  14. data/lib/lithic/models/auth_rules/velocity_limit_params.rb +24 -1
  15. data/lib/lithic/models/blockchain_recipient.rb +148 -0
  16. data/lib/lithic/models/blockchain_recipient_create_params.rb +74 -0
  17. data/lib/lithic/models/blockchain_recipient_retrieve_params.rb +20 -0
  18. data/lib/lithic/models/card.rb +2 -2
  19. data/lib/lithic/models/card_pin_updated_webhook_event.rb +87 -0
  20. data/lib/lithic/models/card_provision_params.rb +10 -8
  21. data/lib/lithic/models/card_reassign_account_params.rb +29 -0
  22. data/lib/lithic/models/dispute_v2.rb +178 -130
  23. data/lib/lithic/models/disputes_v2_list_params.rb +10 -1
  24. data/lib/lithic/models/event.rb +5 -0
  25. data/lib/lithic/models/event_list_params.rb +3 -0
  26. data/lib/lithic/models/event_subscription.rb +3 -0
  27. data/lib/lithic/models/events/subscription_create_params.rb +3 -0
  28. data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +1 -0
  29. data/lib/lithic/models/events/subscription_update_params.rb +3 -0
  30. data/lib/lithic/models/external_payment.rb +6 -0
  31. data/lib/lithic/models/external_payment_create_params.rb +1 -0
  32. data/lib/lithic/models/external_payment_list_params.rb +1 -0
  33. data/lib/lithic/models/financial_account.rb +14 -1
  34. data/lib/lithic/models/financial_accounts/installment_plan.rb +311 -0
  35. data/lib/lithic/models/financial_accounts/installment_plan_list_params.rb +75 -0
  36. data/lib/lithic/models/financial_accounts/installment_plan_retrieve_params.rb +32 -0
  37. data/lib/lithic/models/financial_accounts/open_to_buy.rb +36 -0
  38. data/lib/lithic/models/financial_accounts/open_to_buy_retrieve_params.rb +22 -0
  39. data/lib/lithic/models/financial_accounts/open_to_buy_summary.rb +46 -0
  40. data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +13 -0
  41. data/lib/lithic/models/financial_accounts/transaction_category_balances.rb +34 -0
  42. data/lib/lithic/models/financial_event.rb +12 -0
  43. data/lib/lithic/models/management_operation_create_params.rb +4 -0
  44. data/lib/lithic/models/management_operation_transaction.rb +4 -0
  45. data/lib/lithic/models/parsed_webhook_event.rb +3 -1
  46. data/lib/lithic/models/payment.rb +68 -9
  47. data/lib/lithic/models/payment_create_stablecoin_params.rb +99 -0
  48. data/lib/lithic/models/payment_create_stablecoin_response.rb +19 -0
  49. data/lib/lithic/models/payment_list_params.rb +1 -0
  50. data/lib/lithic/models/payment_retry_params.rb +28 -1
  51. data/lib/lithic/models/payment_simulate_action_params.rb +1 -0
  52. data/lib/lithic/models/three_ds_authentication.rb +126 -1
  53. data/lib/lithic/models/tokenization_simulate_params.rb +2 -2
  54. data/lib/lithic/models/transaction.rb +2 -0
  55. data/lib/lithic/models/transaction_monitoring/case_entity.rb +13 -4
  56. data/lib/lithic/models/transaction_monitoring/case_list_params.rb +4 -2
  57. data/lib/lithic/models.rb +12 -0
  58. data/lib/lithic/resources/blockchain_recipients.rb +80 -0
  59. data/lib/lithic/resources/cards.rb +33 -4
  60. data/lib/lithic/resources/disputes_v2.rb +3 -1
  61. data/lib/lithic/resources/financial_accounts/installment_plans.rb +82 -0
  62. data/lib/lithic/resources/financial_accounts/open_to_buy.rb +48 -0
  63. data/lib/lithic/resources/financial_accounts.rb +8 -0
  64. data/lib/lithic/resources/payments.rb +71 -3
  65. data/lib/lithic/resources/tokenizations.rb +1 -1
  66. data/lib/lithic/resources/transaction_monitoring/cases.rb +1 -1
  67. data/lib/lithic/version.rb +1 -1
  68. data/lib/lithic.rb +17 -0
  69. data/rbi/lithic/client.rbi +3 -0
  70. data/rbi/lithic/models/account_activity_list_params.rbi +5 -0
  71. data/rbi/lithic/models/account_activity_list_response.rbi +5 -0
  72. data/rbi/lithic/models/account_activity_retrieve_transaction_response.rbi +5 -0
  73. data/rbi/lithic/models/auth_rules/ach_payment_update_action.rbi +5 -0
  74. data/rbi/lithic/models/auth_rules/auth_rule.rbi +7 -0
  75. data/rbi/lithic/models/auth_rules/card_transaction_update_action.rbi +5 -0
  76. data/rbi/lithic/models/auth_rules/report_stats.rbi +5 -0
  77. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +33 -0
  78. data/rbi/lithic/models/auth_rules/v2_list_results_response.rbi +15 -0
  79. data/rbi/lithic/models/auth_rules/velocity_limit_params.rbi +30 -0
  80. data/rbi/lithic/models/blockchain_recipient.rbi +209 -0
  81. data/rbi/lithic/models/blockchain_recipient_create_params.rbi +102 -0
  82. data/rbi/lithic/models/blockchain_recipient_retrieve_params.rbi +41 -0
  83. data/rbi/lithic/models/card.rbi +2 -2
  84. data/rbi/lithic/models/card_pin_updated_webhook_event.rbi +166 -0
  85. data/rbi/lithic/models/card_provision_params.rbi +16 -12
  86. data/rbi/lithic/models/card_reassign_account_params.rbi +49 -0
  87. data/rbi/lithic/models/dispute_v2.rbi +285 -181
  88. data/rbi/lithic/models/disputes_v2_list_params.rbi +13 -0
  89. data/rbi/lithic/models/event.rbi +8 -0
  90. data/rbi/lithic/models/event_list_params.rbi +7 -0
  91. data/rbi/lithic/models/event_subscription.rbi +7 -0
  92. data/rbi/lithic/models/events/subscription_create_params.rbi +7 -0
  93. data/rbi/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -0
  94. data/rbi/lithic/models/events/subscription_update_params.rbi +7 -0
  95. data/rbi/lithic/models/external_payment.rbi +30 -0
  96. data/rbi/lithic/models/external_payment_create_params.rbi +5 -0
  97. data/rbi/lithic/models/external_payment_list_params.rbi +5 -0
  98. data/rbi/lithic/models/financial_account.rbi +12 -0
  99. data/rbi/lithic/models/financial_accounts/installment_plan.rbi +528 -0
  100. data/rbi/lithic/models/financial_accounts/installment_plan_list_params.rbi +155 -0
  101. data/rbi/lithic/models/financial_accounts/installment_plan_retrieve_params.rbi +56 -0
  102. data/rbi/lithic/models/financial_accounts/open_to_buy.rbi +64 -0
  103. data/rbi/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbi +43 -0
  104. data/rbi/lithic/models/financial_accounts/open_to_buy_summary.rbi +73 -0
  105. data/rbi/lithic/models/financial_accounts/statements/statement_line_items.rbi +65 -0
  106. data/rbi/lithic/models/financial_accounts/transaction_category_balances.rbi +81 -0
  107. data/rbi/lithic/models/financial_event.rbi +47 -0
  108. data/rbi/lithic/models/management_operation_create_params.rbi +20 -0
  109. data/rbi/lithic/models/management_operation_transaction.rbi +20 -0
  110. data/rbi/lithic/models/parsed_webhook_event.rbi +1 -0
  111. data/rbi/lithic/models/payment.rbi +108 -10
  112. data/rbi/lithic/models/payment_create_stablecoin_params.rbi +162 -0
  113. data/rbi/lithic/models/payment_create_stablecoin_response.rbi +34 -0
  114. data/rbi/lithic/models/payment_list_params.rbi +2 -0
  115. data/rbi/lithic/models/payment_retry_params.rbi +47 -2
  116. data/rbi/lithic/models/payment_simulate_action_params.rbi +5 -0
  117. data/rbi/lithic/models/three_ds_authentication.rbi +292 -0
  118. data/rbi/lithic/models/tokenization_simulate_params.rbi +2 -2
  119. data/rbi/lithic/models/transaction.rbi +10 -0
  120. data/rbi/lithic/models/transaction_monitoring/case_entity.rbi +27 -5
  121. data/rbi/lithic/models/transaction_monitoring/case_list_params.rbi +6 -2
  122. data/rbi/lithic/models.rbi +14 -0
  123. data/rbi/lithic/resources/blockchain_recipients.rbi +65 -0
  124. data/rbi/lithic/resources/cards.rbi +31 -8
  125. data/rbi/lithic/resources/disputes_v2.rbi +4 -0
  126. data/rbi/lithic/resources/financial_accounts/installment_plans.rbi +66 -0
  127. data/rbi/lithic/resources/financial_accounts/open_to_buy.rbi +40 -0
  128. data/rbi/lithic/resources/financial_accounts.rbi +6 -0
  129. data/rbi/lithic/resources/payments.rbi +68 -2
  130. data/rbi/lithic/resources/tokenizations.rbi +1 -1
  131. data/rbi/lithic/resources/transaction_monitoring/cases.rbi +3 -1
  132. data/rbi/lithic/resources/webhooks.rbi +1 -0
  133. data/sig/lithic/client.rbs +2 -0
  134. data/sig/lithic/models/account_activity_list_params.rbs +2 -0
  135. data/sig/lithic/models/account_activity_list_response.rbs +2 -0
  136. data/sig/lithic/models/account_activity_retrieve_transaction_response.rbs +2 -0
  137. data/sig/lithic/models/auth_rules/ach_payment_update_action.rbs +2 -1
  138. data/sig/lithic/models/auth_rules/auth_rule.rbs +2 -0
  139. data/sig/lithic/models/auth_rules/card_transaction_update_action.rbs +2 -1
  140. data/sig/lithic/models/auth_rules/report_stats.rbs +2 -0
  141. data/sig/lithic/models/auth_rules/v2_create_params.rbs +6 -0
  142. data/sig/lithic/models/auth_rules/v2_list_results_response.rbs +6 -2
  143. data/sig/lithic/models/auth_rules/velocity_limit_params.rbs +10 -0
  144. data/sig/lithic/models/blockchain_recipient.rbs +106 -0
  145. data/sig/lithic/models/blockchain_recipient_create_params.rbs +60 -0
  146. data/sig/lithic/models/blockchain_recipient_retrieve_params.rbs +24 -0
  147. data/sig/lithic/models/card_pin_updated_webhook_event.rbs +60 -0
  148. data/sig/lithic/models/card_reassign_account_params.rbs +28 -0
  149. data/sig/lithic/models/dispute_v2.rbs +145 -101
  150. data/sig/lithic/models/disputes_v2_list_params.rbs +7 -0
  151. data/sig/lithic/models/event.rbs +2 -0
  152. data/sig/lithic/models/event_list_params.rbs +2 -0
  153. data/sig/lithic/models/event_subscription.rbs +2 -0
  154. data/sig/lithic/models/events/subscription_create_params.rbs +2 -0
  155. data/sig/lithic/models/events/subscription_send_simulated_example_params.rbs +2 -0
  156. data/sig/lithic/models/events/subscription_update_params.rbs +2 -0
  157. data/sig/lithic/models/external_payment.rbs +12 -0
  158. data/sig/lithic/models/external_payment_create_params.rbs +2 -0
  159. data/sig/lithic/models/external_payment_list_params.rbs +2 -0
  160. data/sig/lithic/models/financial_account.rbs +5 -0
  161. data/sig/lithic/models/financial_accounts/installment_plan.rbs +227 -0
  162. data/sig/lithic/models/financial_accounts/installment_plan_list_params.rbs +69 -0
  163. data/sig/lithic/models/financial_accounts/installment_plan_retrieve_params.rbs +30 -0
  164. data/sig/lithic/models/financial_accounts/open_to_buy.rbs +27 -0
  165. data/sig/lithic/models/financial_accounts/open_to_buy_retrieve_params.rbs +26 -0
  166. data/sig/lithic/models/financial_accounts/open_to_buy_summary.rbs +32 -0
  167. data/sig/lithic/models/financial_accounts/statements/statement_line_items.rbs +26 -0
  168. data/sig/lithic/models/financial_accounts/transaction_category_balances.rbs +32 -0
  169. data/sig/lithic/models/financial_event.rbs +24 -0
  170. data/sig/lithic/models/management_operation_create_params.rbs +8 -0
  171. data/sig/lithic/models/management_operation_transaction.rbs +8 -0
  172. data/sig/lithic/models/parsed_webhook_event.rbs +1 -0
  173. data/sig/lithic/models/payment.rbs +33 -1
  174. data/sig/lithic/models/payment_create_stablecoin_params.rbs +84 -0
  175. data/sig/lithic/models/payment_create_stablecoin_response.rbs +15 -0
  176. data/sig/lithic/models/payment_list_params.rbs +2 -1
  177. data/sig/lithic/models/payment_retry_params.rbs +24 -1
  178. data/sig/lithic/models/payment_simulate_action_params.rbs +2 -0
  179. data/sig/lithic/models/three_ds_authentication.rbs +77 -0
  180. data/sig/lithic/models/transaction.rbs +4 -0
  181. data/sig/lithic/models/transaction_monitoring/case_entity.rbs +7 -5
  182. data/sig/lithic/models.rbs +12 -0
  183. data/sig/lithic/resources/blockchain_recipients.rbs +23 -0
  184. data/sig/lithic/resources/cards.rbs +6 -0
  185. data/sig/lithic/resources/disputes_v2.rbs +1 -0
  186. data/sig/lithic/resources/financial_accounts/installment_plans.rbs +24 -0
  187. data/sig/lithic/resources/financial_accounts/open_to_buy.rbs +14 -0
  188. data/sig/lithic/resources/financial_accounts.rbs +4 -0
  189. data/sig/lithic/resources/payments.rbs +12 -0
  190. data/sig/lithic/resources/webhooks.rbs +1 -0
  191. metadata +53 -2
@@ -82,6 +82,10 @@ module Lithic
82
82
  sig { returns(Time) }
83
83
  attr_accessor :updated
84
84
 
85
+ # Token of the blockchain recipient the payout is sent to
86
+ sig { returns(T.nilable(String)) }
87
+ attr_accessor :blockchain_recipient_token
88
+
85
89
  # Currency of the transaction in ISO 4217 format
86
90
  sig { returns(T.nilable(String)) }
87
91
  attr_reader :currency
@@ -129,7 +133,8 @@ module Lithic
129
133
  method_attributes:
130
134
  T.any(
131
135
  Lithic::Payment::MethodAttributes::ACHMethodAttributes::OrHash,
132
- Lithic::Payment::MethodAttributes::WireMethodAttributes::OrHash
136
+ Lithic::Payment::MethodAttributes::WireMethodAttributes::OrHash,
137
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes::OrHash
133
138
  ),
134
139
  pending_amount: Integer,
135
140
  related_account_tokens:
@@ -139,6 +144,7 @@ module Lithic
139
144
  source: Lithic::Payment::Source::OrSymbol,
140
145
  status: Lithic::Payment::Status::OrSymbol,
141
146
  updated: Time,
147
+ blockchain_recipient_token: T.nilable(String),
142
148
  currency: String,
143
149
  expected_release_date: T.nilable(Date),
144
150
  external_bank_account_token: T.nilable(String),
@@ -181,6 +187,8 @@ module Lithic
181
187
  status:,
182
188
  # ISO 8601 timestamp of when the transaction was last updated
183
189
  updated:,
190
+ # Token of the blockchain recipient the payout is sent to
191
+ blockchain_recipient_token: nil,
184
192
  # Currency of the transaction in ISO 4217 format
185
193
  currency: nil,
186
194
  # Expected release date for the transaction
@@ -219,6 +227,7 @@ module Lithic
219
227
  source: Lithic::Payment::Source::TaggedSymbol,
220
228
  status: Lithic::Payment::Status::TaggedSymbol,
221
229
  updated: Time,
230
+ blockchain_recipient_token: T.nilable(String),
222
231
  currency: String,
223
232
  expected_release_date: T.nilable(Date),
224
233
  external_bank_account_token: T.nilable(String),
@@ -258,6 +267,8 @@ module Lithic
258
267
  T.let(:EXTERNAL_FEDNOW, Lithic::Payment::Category::TaggedSymbol)
259
268
  EXTERNAL_RTP =
260
269
  T.let(:EXTERNAL_RTP, Lithic::Payment::Category::TaggedSymbol)
270
+ EXTERNAL_STABLECOIN =
271
+ T.let(:EXTERNAL_STABLECOIN, Lithic::Payment::Category::TaggedSymbol)
261
272
  EXTERNAL_TRANSFER =
262
273
  T.let(:EXTERNAL_TRANSFER, Lithic::Payment::Category::TaggedSymbol)
263
274
  EXTERNAL_WIRE =
@@ -387,8 +398,16 @@ module Lithic
387
398
  #
388
399
  # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
389
400
  # release to available balance.
390
- # - `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
391
- # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance.
401
+ # - `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds
402
+ # placed on hold.
403
+ # - `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the
404
+ # review process.
405
+ # - `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to
406
+ # the destination address, and pending confirmation.
407
+ # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance,
408
+ # or stablecoin withdrawal confirmed on-chain.
409
+ # - `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
410
+ # initiation has been reversed.
392
411
  sig { returns(Lithic::Payment::Event::Type::TaggedSymbol) }
393
412
  attr_accessor :type
394
413
 
@@ -412,7 +431,9 @@ module Lithic
412
431
 
413
432
  # Payment event external ID. For ACH transactions, this is the ACH trace number.
414
433
  # For inbound wire transfers, this is the IMAD (Input Message Accountability
415
- # Data).
434
+ # Data). For stablecoin payments, this is the on-chain transaction hash of the
435
+ # transfer; it is present on events that reflect on-chain activity and null on
436
+ # internal lifecycle events.
416
437
  sig { returns(T.nilable(String)) }
417
438
  attr_accessor :external_id
418
439
 
@@ -501,14 +522,24 @@ module Lithic
501
522
  #
502
523
  # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
503
524
  # release to available balance.
504
- # - `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
505
- # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance.
525
+ # - `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds
526
+ # placed on hold.
527
+ # - `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the
528
+ # review process.
529
+ # - `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to
530
+ # the destination address, and pending confirmation.
531
+ # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance,
532
+ # or stablecoin withdrawal confirmed on-chain.
533
+ # - `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
534
+ # initiation has been reversed.
506
535
  type:,
507
536
  # More detailed reasons for the event
508
537
  detailed_results: nil,
509
538
  # Payment event external ID. For ACH transactions, this is the ACH trace number.
510
539
  # For inbound wire transfers, this is the IMAD (Input Message Accountability
511
- # Data).
540
+ # Data). For stablecoin payments, this is the on-chain transaction hash of the
541
+ # transfer; it is present on events that reflect on-chain activity and null on
542
+ # internal lifecycle events.
512
543
  external_id: nil
513
544
  )
514
545
  end
@@ -610,8 +641,16 @@ module Lithic
610
641
  #
611
642
  # - `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending
612
643
  # release to available balance.
613
- # - `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
614
- # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance.
644
+ # - `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds
645
+ # placed on hold.
646
+ # - `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the
647
+ # review process.
648
+ # - `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to
649
+ # the destination address, and pending confirmation.
650
+ # - `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance,
651
+ # or stablecoin withdrawal confirmed on-chain.
652
+ # - `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
653
+ # initiation has been reversed.
615
654
  module Type
616
655
  extend Lithic::Internal::Type::Enum
617
656
 
@@ -734,16 +773,28 @@ module Lithic
734
773
  :STABLECOIN_RECEIVED,
735
774
  Lithic::Payment::Event::Type::TaggedSymbol
736
775
  )
776
+ STABLECOIN_INITIATED =
777
+ T.let(
778
+ :STABLECOIN_INITIATED,
779
+ Lithic::Payment::Event::Type::TaggedSymbol
780
+ )
737
781
  STABLECOIN_REVIEWED =
738
782
  T.let(
739
783
  :STABLECOIN_REVIEWED,
740
784
  Lithic::Payment::Event::Type::TaggedSymbol
741
785
  )
786
+ STABLECOIN_SENT =
787
+ T.let(:STABLECOIN_SENT, Lithic::Payment::Event::Type::TaggedSymbol)
742
788
  STABLECOIN_SETTLED =
743
789
  T.let(
744
790
  :STABLECOIN_SETTLED,
745
791
  Lithic::Payment::Event::Type::TaggedSymbol
746
792
  )
793
+ STABLECOIN_REJECTED =
794
+ T.let(
795
+ :STABLECOIN_REJECTED,
796
+ Lithic::Payment::Event::Type::TaggedSymbol
797
+ )
747
798
 
748
799
  sig do
749
800
  override.returns(
@@ -821,6 +872,7 @@ module Lithic
821
872
  ACH_SAME_DAY =
822
873
  T.let(:ACH_SAME_DAY, Lithic::Payment::Method::TaggedSymbol)
823
874
  WIRE = T.let(:WIRE, Lithic::Payment::Method::TaggedSymbol)
875
+ STABLECOIN = T.let(:STABLECOIN, Lithic::Payment::Method::TaggedSymbol)
824
876
 
825
877
  sig do
826
878
  override.returns(T::Array[Lithic::Payment::Method::TaggedSymbol])
@@ -837,7 +889,8 @@ module Lithic
837
889
  T.type_alias do
838
890
  T.any(
839
891
  Lithic::Payment::MethodAttributes::ACHMethodAttributes,
840
- Lithic::Payment::MethodAttributes::WireMethodAttributes
892
+ Lithic::Payment::MethodAttributes::WireMethodAttributes,
893
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes
841
894
  )
842
895
  end
843
896
 
@@ -1134,6 +1187,47 @@ module Lithic
1134
1187
  end
1135
1188
  end
1136
1189
 
1190
+ class StablecoinMethodAttributes < Lithic::Internal::Type::BaseModel
1191
+ OrHash =
1192
+ T.type_alias do
1193
+ T.any(
1194
+ Lithic::Payment::MethodAttributes::StablecoinMethodAttributes,
1195
+ Lithic::Internal::AnyHash
1196
+ )
1197
+ end
1198
+
1199
+ # Blockchain the stablecoin transfer settled on
1200
+ sig { returns(String) }
1201
+ attr_accessor :chain
1202
+
1203
+ # On-chain transaction hash of the transfer. Null until the transfer has settled
1204
+ # on chain
1205
+ sig { returns(T.nilable(String)) }
1206
+ attr_accessor :transaction_hash
1207
+
1208
+ sig do
1209
+ params(chain: String, transaction_hash: T.nilable(String)).returns(
1210
+ T.attached_class
1211
+ )
1212
+ end
1213
+ def self.new(
1214
+ # Blockchain the stablecoin transfer settled on
1215
+ chain:,
1216
+ # On-chain transaction hash of the transfer. Null until the transfer has settled
1217
+ # on chain
1218
+ transaction_hash: nil
1219
+ )
1220
+ end
1221
+
1222
+ sig do
1223
+ override.returns(
1224
+ { chain: String, transaction_hash: T.nilable(String) }
1225
+ )
1226
+ end
1227
+ def to_hash
1228
+ end
1229
+ end
1230
+
1137
1231
  sig do
1138
1232
  override.returns(
1139
1233
  T::Array[Lithic::Payment::MethodAttributes::Variants]
@@ -1270,6 +1364,10 @@ module Lithic
1270
1364
  :WIRE_INBOUND_DRAWDOWN_REQUEST,
1271
1365
  Lithic::Payment::Type::TaggedSymbol
1272
1366
  )
1367
+ STABLECOIN_INBOUND =
1368
+ T.let(:STABLECOIN_INBOUND, Lithic::Payment::Type::TaggedSymbol)
1369
+ STABLECOIN_OUTBOUND =
1370
+ T.let(:STABLECOIN_OUTBOUND, Lithic::Payment::Type::TaggedSymbol)
1273
1371
 
1274
1372
  sig { override.returns(T::Array[Lithic::Payment::Type::TaggedSymbol]) }
1275
1373
  def self.values
@@ -0,0 +1,162 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ class PaymentCreateStablecoinParams < Lithic::Internal::Type::BaseModel
6
+ extend Lithic::Internal::Type::RequestParameters::Converter
7
+ include Lithic::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Lithic::PaymentCreateStablecoinParams,
13
+ Lithic::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Payout amount in cents
18
+ sig { returns(Integer) }
19
+ attr_accessor :amount
20
+
21
+ # Token of the blockchain recipient to send the payout to. The recipient must be
22
+ # in the `ENABLED` verification state
23
+ sig { returns(String) }
24
+ attr_accessor :blockchain_recipient_token
25
+
26
+ # Token of the financial account the payout is funded from
27
+ sig { returns(String) }
28
+ attr_accessor :financial_account_token
29
+
30
+ # Direction of the payment. Stablecoin supports payouts only
31
+ sig { returns(Lithic::PaymentCreateStablecoinParams::Type::OrSymbol) }
32
+ attr_accessor :type
33
+
34
+ # Customer-provided token that will serve as an idempotency token. This token will
35
+ # become the transaction token
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :token
38
+
39
+ sig { params(token: String).void }
40
+ attr_writer :token
41
+
42
+ # Optional hold to settle when this payout is initiated
43
+ sig { returns(T.nilable(Lithic::PaymentCreateStablecoinParams::Hold)) }
44
+ attr_reader :hold
45
+
46
+ sig do
47
+ params(hold: Lithic::PaymentCreateStablecoinParams::Hold::OrHash).void
48
+ end
49
+ attr_writer :hold
50
+
51
+ # Memo recorded on the payout. Defaults to `Stablecoin payout on <chain>` when
52
+ # omitted
53
+ sig { returns(T.nilable(String)) }
54
+ attr_reader :memo
55
+
56
+ sig { params(memo: String).void }
57
+ attr_writer :memo
58
+
59
+ sig do
60
+ params(
61
+ amount: Integer,
62
+ blockchain_recipient_token: String,
63
+ financial_account_token: String,
64
+ type: Lithic::PaymentCreateStablecoinParams::Type::OrSymbol,
65
+ token: String,
66
+ hold: Lithic::PaymentCreateStablecoinParams::Hold::OrHash,
67
+ memo: String,
68
+ request_options: Lithic::RequestOptions::OrHash
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # Payout amount in cents
73
+ amount:,
74
+ # Token of the blockchain recipient to send the payout to. The recipient must be
75
+ # in the `ENABLED` verification state
76
+ blockchain_recipient_token:,
77
+ # Token of the financial account the payout is funded from
78
+ financial_account_token:,
79
+ # Direction of the payment. Stablecoin supports payouts only
80
+ type:,
81
+ # Customer-provided token that will serve as an idempotency token. This token will
82
+ # become the transaction token
83
+ token: nil,
84
+ # Optional hold to settle when this payout is initiated
85
+ hold: nil,
86
+ # Memo recorded on the payout. Defaults to `Stablecoin payout on <chain>` when
87
+ # omitted
88
+ memo: nil,
89
+ request_options: {}
90
+ )
91
+ end
92
+
93
+ sig do
94
+ override.returns(
95
+ {
96
+ amount: Integer,
97
+ blockchain_recipient_token: String,
98
+ financial_account_token: String,
99
+ type: Lithic::PaymentCreateStablecoinParams::Type::OrSymbol,
100
+ token: String,
101
+ hold: Lithic::PaymentCreateStablecoinParams::Hold,
102
+ memo: String,
103
+ request_options: Lithic::RequestOptions
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ # Direction of the payment. Stablecoin supports payouts only
111
+ module Type
112
+ extend Lithic::Internal::Type::Enum
113
+
114
+ TaggedSymbol =
115
+ T.type_alias do
116
+ T.all(Symbol, Lithic::PaymentCreateStablecoinParams::Type)
117
+ end
118
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
119
+
120
+ PAYMENT =
121
+ T.let(
122
+ :PAYMENT,
123
+ Lithic::PaymentCreateStablecoinParams::Type::TaggedSymbol
124
+ )
125
+
126
+ sig do
127
+ override.returns(
128
+ T::Array[Lithic::PaymentCreateStablecoinParams::Type::TaggedSymbol]
129
+ )
130
+ end
131
+ def self.values
132
+ end
133
+ end
134
+
135
+ class Hold < Lithic::Internal::Type::BaseModel
136
+ OrHash =
137
+ T.type_alias do
138
+ T.any(
139
+ Lithic::PaymentCreateStablecoinParams::Hold,
140
+ Lithic::Internal::AnyHash
141
+ )
142
+ end
143
+
144
+ # Token of the hold to settle when this payout is initiated
145
+ sig { returns(String) }
146
+ attr_accessor :token
147
+
148
+ # Optional hold to settle when this payout is initiated
149
+ sig { params(token: String).returns(T.attached_class) }
150
+ def self.new(
151
+ # Token of the hold to settle when this payout is initiated
152
+ token:
153
+ )
154
+ end
155
+
156
+ sig { override.returns({ token: String }) }
157
+ def to_hash
158
+ end
159
+ end
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,34 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ class PaymentCreateStablecoinResponse < Lithic::Models::Payment
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Lithic::Models::PaymentCreateStablecoinResponse,
10
+ Lithic::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Balance
15
+ sig { returns(T.nilable(Lithic::Balance)) }
16
+ attr_reader :balance
17
+
18
+ sig { params(balance: Lithic::Balance::OrHash).void }
19
+ attr_writer :balance
20
+
21
+ # Payment transaction
22
+ sig { params(balance: Lithic::Balance::OrHash).returns(T.attached_class) }
23
+ def self.new(
24
+ # Balance
25
+ balance: nil
26
+ )
27
+ end
28
+
29
+ sig { override.returns({ balance: Lithic::Balance }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
@@ -158,6 +158,8 @@ module Lithic
158
158
  OrSymbol = T.type_alias { T.any(Symbol, String) }
159
159
 
160
160
  ACH = T.let(:ACH, Lithic::PaymentListParams::Category::TaggedSymbol)
161
+ STABLECOIN =
162
+ T.let(:STABLECOIN, Lithic::PaymentListParams::Category::TaggedSymbol)
161
163
 
162
164
  sig do
163
165
  override.returns(
@@ -14,22 +14,67 @@ module Lithic
14
14
  sig { returns(String) }
15
15
  attr_accessor :payment_token
16
16
 
17
+ # Settlement speed to retry the payment at. Defaults to the original payment's
18
+ # method. An `ACH_SAME_DAY` retry is rejected if the payment is for $1,000,000.00
19
+ # or more, or if it is submitted after the same day ACH cutoff
20
+ sig { returns(T.nilable(Lithic::PaymentRetryParams::Method::OrSymbol)) }
21
+ attr_reader :method_
22
+
23
+ sig { params(method_: Lithic::PaymentRetryParams::Method::OrSymbol).void }
24
+ attr_writer :method_
25
+
17
26
  sig do
18
27
  params(
19
28
  payment_token: String,
29
+ method_: Lithic::PaymentRetryParams::Method::OrSymbol,
20
30
  request_options: Lithic::RequestOptions::OrHash
21
31
  ).returns(T.attached_class)
22
32
  end
23
- def self.new(payment_token:, request_options: {})
33
+ def self.new(
34
+ payment_token:,
35
+ # Settlement speed to retry the payment at. Defaults to the original payment's
36
+ # method. An `ACH_SAME_DAY` retry is rejected if the payment is for $1,000,000.00
37
+ # or more, or if it is submitted after the same day ACH cutoff
38
+ method_: nil,
39
+ request_options: {}
40
+ )
24
41
  end
25
42
 
26
43
  sig do
27
44
  override.returns(
28
- { payment_token: String, request_options: Lithic::RequestOptions }
45
+ {
46
+ payment_token: String,
47
+ method_: Lithic::PaymentRetryParams::Method::OrSymbol,
48
+ request_options: Lithic::RequestOptions
49
+ }
29
50
  )
30
51
  end
31
52
  def to_hash
32
53
  end
54
+
55
+ # Settlement speed to retry the payment at. Defaults to the original payment's
56
+ # method. An `ACH_SAME_DAY` retry is rejected if the payment is for $1,000,000.00
57
+ # or more, or if it is submitted after the same day ACH cutoff
58
+ module Method
59
+ extend Lithic::Internal::Type::Enum
60
+
61
+ TaggedSymbol =
62
+ T.type_alias { T.all(Symbol, Lithic::PaymentRetryParams::Method) }
63
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
64
+
65
+ ACH_NEXT_DAY =
66
+ T.let(:ACH_NEXT_DAY, Lithic::PaymentRetryParams::Method::TaggedSymbol)
67
+ ACH_SAME_DAY =
68
+ T.let(:ACH_SAME_DAY, Lithic::PaymentRetryParams::Method::TaggedSymbol)
69
+
70
+ sig do
71
+ override.returns(
72
+ T::Array[Lithic::PaymentRetryParams::Method::TaggedSymbol]
73
+ )
74
+ end
75
+ def self.values
76
+ end
77
+ end
33
78
  end
34
79
  end
35
80
  end
@@ -163,6 +163,11 @@ module Lithic
163
163
  :ACH_RETURN_SETTLED,
164
164
  Lithic::PaymentSimulateActionParams::EventType::TaggedSymbol
165
165
  )
166
+ STABLECOIN_REVIEWED =
167
+ T.let(
168
+ :STABLECOIN_REVIEWED,
169
+ Lithic::PaymentSimulateActionParams::EventType::TaggedSymbol
170
+ )
166
171
 
167
172
  sig do
168
173
  override.returns(