straddle 0.3.0 → 0.4.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 (248) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +74 -0
  3. data/README.md +10 -1
  4. data/lib/straddle/client.rb +34 -0
  5. data/lib/straddle/internal/transport/pooled_net_requester.rb +13 -11
  6. data/lib/straddle/internal/util.rb +39 -3
  7. data/lib/straddle/models/bridge/link_create_paykey_response.rb +8 -0
  8. data/lib/straddle/models/bridge/link_create_tan_response.rb +8 -0
  9. data/lib/straddle/models/charge_cancel_params.rb +8 -1
  10. data/lib/straddle/models/charge_create_params.rb +20 -4
  11. data/lib/straddle/models/charge_get_params.rb +7 -1
  12. data/lib/straddle/models/charge_hold_params.rb +8 -1
  13. data/lib/straddle/models/charge_release_params.rb +8 -1
  14. data/lib/straddle/models/charge_unmask_params.rb +7 -1
  15. data/lib/straddle/models/charge_unmask_response.rb +59 -5
  16. data/lib/straddle/models/charge_update_params.rb +11 -4
  17. data/lib/straddle/models/charge_v1.rb +59 -5
  18. data/lib/straddle/models/customer_delete_params.rb +7 -1
  19. data/lib/straddle/models/customer_get_params.rb +7 -1
  20. data/lib/straddle/models/customer_unmasked_params.rb +7 -1
  21. data/lib/straddle/models/customer_update_params.rb +8 -1
  22. data/lib/straddle/models/customers/review_decision_params.rb +8 -1
  23. data/lib/straddle/models/customers/review_get_params.rb +7 -1
  24. data/lib/straddle/models/customers/review_refresh_review_params.rb +7 -1
  25. data/lib/straddle/models/embed/account_get_params.rb +11 -1
  26. data/lib/straddle/models/embed/account_onboard_params.rb +7 -1
  27. data/lib/straddle/models/embed/account_paged_v1.rb +4 -0
  28. data/lib/straddle/models/embed/account_simulate_params.rb +7 -1
  29. data/lib/straddle/models/embed/account_update_params.rb +8 -1
  30. data/lib/straddle/models/embed/account_v1.rb +4 -0
  31. data/lib/straddle/models/embed/accounts/capability_request_create_params.rb +8 -1
  32. data/lib/straddle/models/embed/accounts/capability_request_list_params.rb +8 -1
  33. data/lib/straddle/models/embed/accounts/capability_request_paged_v1.rb +9 -1
  34. data/lib/straddle/models/embed/address_v1.rb +14 -38
  35. data/lib/straddle/models/embed/linked_bank_account_cancel_params.rb +7 -1
  36. data/lib/straddle/models/embed/linked_bank_account_get_params.rb +7 -1
  37. data/lib/straddle/models/embed/linked_bank_account_unmask_params.rb +7 -1
  38. data/lib/straddle/models/embed/linked_bank_account_update_params.rb +8 -1
  39. data/lib/straddle/models/embed/organization_get_params.rb +7 -1
  40. data/lib/straddle/models/embed/representative_get_params.rb +7 -1
  41. data/lib/straddle/models/embed/representative_unmask_params.rb +7 -1
  42. data/lib/straddle/models/embed/representative_update_params.rb +8 -1
  43. data/lib/straddle/models/funding_event_get_params.rb +7 -1
  44. data/lib/straddle/models/funding_event_list_params.rb +105 -1
  45. data/lib/straddle/models/funding_event_summary_item_v1.rb +128 -1
  46. data/lib/straddle/models/funding_event_summary_paged_v1.rb +128 -1
  47. data/lib/straddle/models/paykey_cancel_params.rb +7 -1
  48. data/lib/straddle/models/paykey_get_params.rb +7 -1
  49. data/lib/straddle/models/paykey_list_params.rb +24 -1
  50. data/lib/straddle/models/paykey_reveal_params.rb +7 -1
  51. data/lib/straddle/models/paykey_reveal_response.rb +8 -0
  52. data/lib/straddle/models/paykey_summary_paged_v1.rb +19 -1
  53. data/lib/straddle/models/paykey_unmasked_params.rb +7 -1
  54. data/lib/straddle/models/paykey_unmasked_v1.rb +8 -0
  55. data/lib/straddle/models/paykey_update_balance_params.rb +7 -1
  56. data/lib/straddle/models/paykey_v1.rb +19 -1
  57. data/lib/straddle/models/paykeys/review_decision_params.rb +7 -1
  58. data/lib/straddle/models/paykeys/review_get_params.rb +7 -1
  59. data/lib/straddle/models/paykeys/review_get_response.rb +19 -4
  60. data/lib/straddle/models/paykeys/review_refresh_review_params.rb +7 -1
  61. data/lib/straddle/models/payment_list_params.rb +17 -1
  62. data/lib/straddle/models/payment_summary_paged_v1.rb +13 -4
  63. data/lib/straddle/models/payout_cancel_params.rb +8 -1
  64. data/lib/straddle/models/payout_create_params.rb +20 -4
  65. data/lib/straddle/models/payout_get_params.rb +7 -1
  66. data/lib/straddle/models/payout_hold_params.rb +8 -1
  67. data/lib/straddle/models/payout_release_params.rb +8 -1
  68. data/lib/straddle/models/payout_unmask_params.rb +7 -1
  69. data/lib/straddle/models/payout_unmask_response.rb +59 -5
  70. data/lib/straddle/models/payout_update_params.rb +11 -4
  71. data/lib/straddle/models/payout_v1.rb +59 -5
  72. data/lib/straddle/models/status_details_v1.rb +7 -0
  73. data/lib/straddle/resources/bridge/link.rb +12 -6
  74. data/lib/straddle/resources/bridge.rb +13 -1
  75. data/lib/straddle/resources/charges.rb +13 -8
  76. data/lib/straddle/resources/customers/review.rb +7 -1
  77. data/lib/straddle/resources/customers.rb +23 -10
  78. data/lib/straddle/resources/embed/accounts/capability_requests.rb +9 -4
  79. data/lib/straddle/resources/embed/accounts.rb +25 -14
  80. data/lib/straddle/resources/embed/linked_bank_accounts.rb +11 -6
  81. data/lib/straddle/resources/embed/organizations.rb +7 -2
  82. data/lib/straddle/resources/embed/representatives.rb +15 -8
  83. data/lib/straddle/resources/embed.rb +19 -0
  84. data/lib/straddle/resources/funding_events.rb +22 -3
  85. data/lib/straddle/resources/paykeys/review.rb +7 -2
  86. data/lib/straddle/resources/paykeys.rb +36 -11
  87. data/lib/straddle/resources/payments.rb +12 -6
  88. data/lib/straddle/resources/payouts.rb +11 -7
  89. data/lib/straddle/version.rb +1 -1
  90. data/lib/straddle.rb +1 -0
  91. data/manifest.yaml +1 -0
  92. data/rbi/straddle/client.rbi +34 -0
  93. data/rbi/straddle/internal/util.rbi +21 -1
  94. data/rbi/straddle/models/bridge/link_create_paykey_response.rbi +40 -0
  95. data/rbi/straddle/models/bridge/link_create_tan_response.rbi +40 -0
  96. data/rbi/straddle/models/charge_cancel_params.rbi +6 -0
  97. data/rbi/straddle/models/charge_create_params.rbi +19 -3
  98. data/rbi/straddle/models/charge_get_params.rbi +6 -0
  99. data/rbi/straddle/models/charge_hold_params.rbi +6 -0
  100. data/rbi/straddle/models/charge_release_params.rbi +6 -0
  101. data/rbi/straddle/models/charge_unmask_params.rbi +6 -0
  102. data/rbi/straddle/models/charge_unmask_response.rbi +143 -6
  103. data/rbi/straddle/models/charge_update_params.rbi +9 -3
  104. data/rbi/straddle/models/charge_v1.rbi +135 -6
  105. data/rbi/straddle/models/customer_delete_params.rbi +6 -0
  106. data/rbi/straddle/models/customer_get_params.rbi +6 -0
  107. data/rbi/straddle/models/customer_unmasked_params.rbi +6 -0
  108. data/rbi/straddle/models/customer_update_params.rbi +6 -0
  109. data/rbi/straddle/models/customers/review_decision_params.rbi +6 -0
  110. data/rbi/straddle/models/customers/review_get_params.rbi +6 -0
  111. data/rbi/straddle/models/customers/review_refresh_review_params.rbi +6 -0
  112. data/rbi/straddle/models/embed/account_get_params.rbi +13 -1
  113. data/rbi/straddle/models/embed/account_onboard_params.rbi +6 -0
  114. data/rbi/straddle/models/embed/account_paged_v1.rbi +20 -0
  115. data/rbi/straddle/models/embed/account_simulate_params.rbi +6 -0
  116. data/rbi/straddle/models/embed/account_update_params.rbi +6 -0
  117. data/rbi/straddle/models/embed/account_v1.rbi +20 -0
  118. data/rbi/straddle/models/embed/accounts/capability_request_create_params.rbi +6 -0
  119. data/rbi/straddle/models/embed/accounts/capability_request_list_params.rbi +6 -0
  120. data/rbi/straddle/models/embed/accounts/capability_request_paged_v1.rbi +8 -0
  121. data/rbi/straddle/models/embed/address_v1.rbi +18 -42
  122. data/rbi/straddle/models/embed/linked_bank_account_cancel_params.rbi +6 -0
  123. data/rbi/straddle/models/embed/linked_bank_account_get_params.rbi +11 -1
  124. data/rbi/straddle/models/embed/linked_bank_account_unmask_params.rbi +11 -1
  125. data/rbi/straddle/models/embed/linked_bank_account_update_params.rbi +6 -0
  126. data/rbi/straddle/models/embed/organization_get_params.rbi +11 -1
  127. data/rbi/straddle/models/embed/representative_get_params.rbi +11 -1
  128. data/rbi/straddle/models/embed/representative_unmask_params.rbi +11 -1
  129. data/rbi/straddle/models/embed/representative_update_params.rbi +6 -0
  130. data/rbi/straddle/models/funding_event_get_params.rbi +6 -0
  131. data/rbi/straddle/models/funding_event_list_params.rbi +333 -0
  132. data/rbi/straddle/models/funding_event_summary_item_v1.rbi +392 -0
  133. data/rbi/straddle/models/funding_event_summary_paged_v1.rbi +393 -0
  134. data/rbi/straddle/models/paykey_cancel_params.rbi +6 -0
  135. data/rbi/straddle/models/paykey_get_params.rbi +6 -0
  136. data/rbi/straddle/models/paykey_list_params.rbi +30 -0
  137. data/rbi/straddle/models/paykey_reveal_params.rbi +6 -0
  138. data/rbi/straddle/models/paykey_reveal_response.rbi +40 -0
  139. data/rbi/straddle/models/paykey_summary_paged_v1.rbi +55 -3
  140. data/rbi/straddle/models/paykey_unmasked_params.rbi +6 -0
  141. data/rbi/straddle/models/paykey_unmasked_v1.rbi +40 -0
  142. data/rbi/straddle/models/paykey_update_balance_params.rbi +6 -0
  143. data/rbi/straddle/models/paykey_v1.rbi +52 -3
  144. data/rbi/straddle/models/paykeys/review_decision_params.rbi +6 -0
  145. data/rbi/straddle/models/paykeys/review_get_params.rbi +6 -0
  146. data/rbi/straddle/models/paykeys/review_get_response.rbi +55 -18
  147. data/rbi/straddle/models/paykeys/review_refresh_review_params.rbi +6 -0
  148. data/rbi/straddle/models/payment_list_params.rbi +51 -0
  149. data/rbi/straddle/models/payment_summary_paged_v1.rbi +16 -3
  150. data/rbi/straddle/models/payout_cancel_params.rbi +6 -0
  151. data/rbi/straddle/models/payout_create_params.rbi +19 -3
  152. data/rbi/straddle/models/payout_get_params.rbi +6 -0
  153. data/rbi/straddle/models/payout_hold_params.rbi +6 -0
  154. data/rbi/straddle/models/payout_release_params.rbi +6 -0
  155. data/rbi/straddle/models/payout_unmask_params.rbi +6 -0
  156. data/rbi/straddle/models/payout_unmask_response.rbi +140 -3
  157. data/rbi/straddle/models/payout_update_params.rbi +9 -3
  158. data/rbi/straddle/models/payout_v1.rbi +132 -3
  159. data/rbi/straddle/models/status_details_v1.rbi +29 -0
  160. data/rbi/straddle/resources/bridge/link.rbi +12 -6
  161. data/rbi/straddle/resources/bridge.rbi +13 -1
  162. data/rbi/straddle/resources/charges.rbi +13 -8
  163. data/rbi/straddle/resources/customers/review.rbi +7 -1
  164. data/rbi/straddle/resources/customers.rbi +20 -8
  165. data/rbi/straddle/resources/embed/accounts/capability_requests.rbi +6 -2
  166. data/rbi/straddle/resources/embed/accounts.rbi +19 -10
  167. data/rbi/straddle/resources/embed/linked_bank_accounts.rbi +8 -4
  168. data/rbi/straddle/resources/embed/organizations.rbi +4 -0
  169. data/rbi/straddle/resources/embed/representatives.rbi +12 -6
  170. data/rbi/straddle/resources/embed.rbi +19 -0
  171. data/rbi/straddle/resources/funding_events.rbi +27 -0
  172. data/rbi/straddle/resources/paykeys/review.rbi +7 -2
  173. data/rbi/straddle/resources/paykeys.rbi +26 -8
  174. data/rbi/straddle/resources/payments.rbi +8 -3
  175. data/rbi/straddle/resources/payouts.rbi +11 -7
  176. data/sig/straddle/internal/util.rbs +10 -0
  177. data/sig/straddle/models/bridge/link_create_paykey_response.rbs +17 -1
  178. data/sig/straddle/models/bridge/link_create_tan_response.rbs +17 -1
  179. data/sig/straddle/models/charge_cancel_params.rbs +5 -0
  180. data/sig/straddle/models/charge_create_params.rbs +14 -4
  181. data/sig/straddle/models/charge_get_params.rbs +5 -0
  182. data/sig/straddle/models/charge_hold_params.rbs +5 -0
  183. data/sig/straddle/models/charge_release_params.rbs +5 -0
  184. data/sig/straddle/models/charge_unmask_params.rbs +5 -0
  185. data/sig/straddle/models/charge_unmask_response.rbs +57 -7
  186. data/sig/straddle/models/charge_update_params.rbs +9 -4
  187. data/sig/straddle/models/charge_v1.rbs +57 -7
  188. data/sig/straddle/models/customer_delete_params.rbs +5 -0
  189. data/sig/straddle/models/customer_get_params.rbs +5 -0
  190. data/sig/straddle/models/customer_unmasked_params.rbs +5 -0
  191. data/sig/straddle/models/customer_update_params.rbs +5 -0
  192. data/sig/straddle/models/customers/review_decision_params.rbs +5 -0
  193. data/sig/straddle/models/customers/review_get_params.rbs +5 -0
  194. data/sig/straddle/models/customers/review_refresh_review_params.rbs +5 -0
  195. data/sig/straddle/models/embed/account_get_params.rbs +5 -1
  196. data/sig/straddle/models/embed/account_onboard_params.rbs +5 -0
  197. data/sig/straddle/models/embed/account_paged_v1.rbs +18 -2
  198. data/sig/straddle/models/embed/account_simulate_params.rbs +5 -0
  199. data/sig/straddle/models/embed/account_update_params.rbs +5 -0
  200. data/sig/straddle/models/embed/account_v1.rbs +18 -2
  201. data/sig/straddle/models/embed/accounts/capability_request_create_params.rbs +5 -0
  202. data/sig/straddle/models/embed/accounts/capability_request_list_params.rbs +5 -0
  203. data/sig/straddle/models/embed/accounts/capability_request_paged_v1.rbs +5 -0
  204. data/sig/straddle/models/embed/address_v1.rbs +12 -27
  205. data/sig/straddle/models/embed/linked_bank_account_cancel_params.rbs +10 -1
  206. data/sig/straddle/models/embed/linked_bank_account_get_params.rbs +9 -1
  207. data/sig/straddle/models/embed/linked_bank_account_unmask_params.rbs +9 -1
  208. data/sig/straddle/models/embed/linked_bank_account_update_params.rbs +5 -0
  209. data/sig/straddle/models/embed/organization_get_params.rbs +5 -1
  210. data/sig/straddle/models/embed/representative_get_params.rbs +9 -1
  211. data/sig/straddle/models/embed/representative_unmask_params.rbs +9 -1
  212. data/sig/straddle/models/embed/representative_update_params.rbs +5 -0
  213. data/sig/straddle/models/funding_event_get_params.rbs +5 -0
  214. data/sig/straddle/models/funding_event_list_params.rbs +125 -0
  215. data/sig/straddle/models/funding_event_summary_item_v1.rbs +164 -0
  216. data/sig/straddle/models/funding_event_summary_paged_v1.rbs +164 -0
  217. data/sig/straddle/models/paykey_cancel_params.rbs +5 -0
  218. data/sig/straddle/models/paykey_get_params.rbs +5 -0
  219. data/sig/straddle/models/paykey_list_params.rbs +17 -1
  220. data/sig/straddle/models/paykey_reveal_params.rbs +5 -0
  221. data/sig/straddle/models/paykey_reveal_response.rbs +17 -1
  222. data/sig/straddle/models/paykey_summary_paged_v1.rbs +25 -4
  223. data/sig/straddle/models/paykey_unmasked_params.rbs +5 -0
  224. data/sig/straddle/models/paykey_unmasked_v1.rbs +17 -1
  225. data/sig/straddle/models/paykey_update_balance_params.rbs +5 -0
  226. data/sig/straddle/models/paykey_v1.rbs +25 -4
  227. data/sig/straddle/models/paykeys/review_decision_params.rbs +5 -0
  228. data/sig/straddle/models/paykeys/review_get_params.rbs +5 -0
  229. data/sig/straddle/models/paykeys/review_get_response.rbs +28 -10
  230. data/sig/straddle/models/paykeys/review_refresh_review_params.rbs +5 -0
  231. data/sig/straddle/models/payment_list_params.rbs +23 -0
  232. data/sig/straddle/models/payment_summary_paged_v1.rbs +11 -4
  233. data/sig/straddle/models/payout_cancel_params.rbs +5 -0
  234. data/sig/straddle/models/payout_create_params.rbs +14 -4
  235. data/sig/straddle/models/payout_get_params.rbs +5 -0
  236. data/sig/straddle/models/payout_hold_params.rbs +5 -0
  237. data/sig/straddle/models/payout_release_params.rbs +5 -0
  238. data/sig/straddle/models/payout_unmask_params.rbs +5 -0
  239. data/sig/straddle/models/payout_unmask_response.rbs +54 -4
  240. data/sig/straddle/models/payout_update_params.rbs +9 -4
  241. data/sig/straddle/models/payout_v1.rbs +54 -4
  242. data/sig/straddle/models/status_details_v1.rbs +14 -0
  243. data/sig/straddle/resources/charges.rbs +2 -2
  244. data/sig/straddle/resources/funding_events.rbs +4 -0
  245. data/sig/straddle/resources/paykeys.rbs +2 -0
  246. data/sig/straddle/resources/payments.rbs +1 -0
  247. data/sig/straddle/resources/payouts.rbs +2 -2
  248. metadata +16 -2
@@ -3,6 +3,10 @@
3
3
  module Straddle
4
4
  module Resources
5
5
  class Embed
6
+ # Linked bank accounts connect your platform users' external bank accounts to
7
+ # Straddle for settlements and payment funding. Each linked account undergoes
8
+ # automated verification and continuous monitoring. Use linked accounts to manage
9
+ # where clients receive deposits, fund payouts, and track settlement preferences.
6
10
  class LinkedBankAccounts
7
11
  # Creates a new linked bank account associated with a Straddle account. This
8
12
  # endpoint allows you to associate external bank accounts with a Straddle account
@@ -32,7 +36,7 @@ module Straddle
32
36
  # Body param: The unique identifier of the Straddle account to associate this bank
33
37
  # account with.
34
38
  account_id:,
35
- # Body param:
39
+ # Body param
36
40
  bank_account:,
37
41
  # Body param: Optional description for the bank account.
38
42
  description: nil,
@@ -72,9 +76,9 @@ module Straddle
72
76
  ).returns(Straddle::Embed::LinkedBankAccountV1)
73
77
  end
74
78
  def update(
75
- # Path param:
79
+ # Path param
76
80
  linked_bank_account_id,
77
- # Body param:
81
+ # Body param
78
82
  bank_account:,
79
83
  # Body param: Up to 20 additional user-defined key-value pairs. Useful for storing
80
84
  # additional information about the linked bank account in a structured format.
@@ -120,7 +124,7 @@ module Straddle
120
124
  def list(
121
125
  # Query param: The unique identifier of the related account.
122
126
  account_id: nil,
123
- # Query param:
127
+ # Query param
124
128
  level: nil,
125
129
  # Query param: Results page number. Starts at page 1.
126
130
  page_number: nil,
@@ -3,6 +3,10 @@
3
3
  module Straddle
4
4
  module Resources
5
5
  class Embed
6
+ # Organizations are a powerful feature in Straddle that allow you to manage
7
+ # multiple accounts under a single umbrella. This hierarchical structure is
8
+ # particularly useful for businesses with complex operations, multiple
9
+ # departments, or legally related entities.
6
10
  class Organizations
7
11
  # Creates a new organization related to your Straddle integration. Organizations
8
12
  # can be used to group related accounts and manage permissions across multiple
@@ -3,6 +3,12 @@
3
3
  module Straddle
4
4
  module Resources
5
5
  class Embed
6
+ # Representatives are individuals who have legal authority or significant
7
+ # responsibility within a business entity associated with a Straddle account. Each
8
+ # representative undergoes automated verification as part of KYC/KYB compliance.
9
+ # Use representatives to collect and verify beneficial owners, control persons,
10
+ # and authorized signers required for account onboarding. Representatives also
11
+ # determine who can legally operate the account and make important changes.
6
12
  class Representatives
7
13
  # Creates a new representative associated with an account. Representatives are
8
14
  # individuals who have legal authority or significant responsibility within the
@@ -41,7 +47,7 @@ module Straddle
41
47
  last_name:,
42
48
  # Body param: The mobile phone number of the representative.
43
49
  mobile_number:,
44
- # Body param:
50
+ # Body param
45
51
  relationship:,
46
52
  # Body param: The last 4 digits of the representative's Social Security Number.
47
53
  ssn_last4:,
@@ -85,7 +91,7 @@ module Straddle
85
91
  ).returns(Straddle::Embed::Representative)
86
92
  end
87
93
  def update(
88
- # Path param:
94
+ # Path param
89
95
  representative_id,
90
96
  # Body param: The date of birth of the representative, in ISO 8601 format
91
97
  # (YYYY-MM-DD).
@@ -98,7 +104,7 @@ module Straddle
98
104
  last_name:,
99
105
  # Body param: The mobile phone number of the representative.
100
106
  mobile_number:,
101
- # Body param:
107
+ # Body param
102
108
  relationship:,
103
109
  # Body param: The last 4 digits of the representative's Social Security Number.
104
110
  ssn_last4:,
@@ -146,15 +152,15 @@ module Straddle
146
152
  def list(
147
153
  # Query param: The unique identifier of the account to list representatives for.
148
154
  account_id: nil,
149
- # Query param:
155
+ # Query param
150
156
  level: nil,
151
- # Query param:
157
+ # Query param
152
158
  organization_id: nil,
153
159
  # Query param: Results page number. Starts at page 1.
154
160
  page_number: nil,
155
161
  # Query param: Page size. Max value: 1000
156
162
  page_size: nil,
157
- # Query param:
163
+ # Query param
158
164
  platform_id: nil,
159
165
  # Query param: Sort By.
160
166
  sort_by: nil,
@@ -3,15 +3,34 @@
3
3
  module Straddle
4
4
  module Resources
5
5
  class Embed
6
+ # Accounts represent businesses using Straddle through your platform. Each account
7
+ # must complete automated verification before processing payments. Use accounts to
8
+ # manage your users' payment capabilities, track verification status, and control
9
+ # access to features. Accounts can be instantly created in sandbox and require
10
+ # additional verification for production access.
6
11
  sig { returns(Straddle::Resources::Embed::Accounts) }
7
12
  attr_reader :accounts
8
13
 
14
+ # Linked bank accounts connect your platform users' external bank accounts to
15
+ # Straddle for settlements and payment funding. Each linked account undergoes
16
+ # automated verification and continuous monitoring. Use linked accounts to manage
17
+ # where clients receive deposits, fund payouts, and track settlement preferences.
9
18
  sig { returns(Straddle::Resources::Embed::LinkedBankAccounts) }
10
19
  attr_reader :linked_bank_accounts
11
20
 
21
+ # Organizations are a powerful feature in Straddle that allow you to manage
22
+ # multiple accounts under a single umbrella. This hierarchical structure is
23
+ # particularly useful for businesses with complex operations, multiple
24
+ # departments, or legally related entities.
12
25
  sig { returns(Straddle::Resources::Embed::Organizations) }
13
26
  attr_reader :organizations
14
27
 
28
+ # Representatives are individuals who have legal authority or significant
29
+ # responsibility within a business entity associated with a Straddle account. Each
30
+ # representative undergoes automated verification as part of KYC/KYB compliance.
31
+ # Use representatives to collect and verify beneficial owners, control persons,
32
+ # and authorized signers required for account onboarding. Representatives also
33
+ # determine who can legally operate the account and make important changes.
15
34
  sig { returns(Straddle::Resources::Embed::Representatives) }
16
35
  attr_reader :representatives
17
36
 
@@ -2,6 +2,12 @@
2
2
 
3
3
  module Straddle
4
4
  module Resources
5
+ # Funding events represent all money movement between Straddle and an Account's
6
+ # external bank accounts. They are automatically generated when charges settle or
7
+ # payouts are initiated. Each event provides detailed tracking of settlement
8
+ # status, fee breakdowns, and reconciliation data across both incoming and
9
+ # outgoing transfers. Use funding events to monitor your platform's entire money
10
+ # movement lifecycle.
5
11
  class FundingEvents
6
12
  # Retrieves a list of funding events for your account. This endpoint supports
7
13
  # advanced sorting and filtering options.
@@ -16,6 +22,19 @@ module Straddle
16
22
  search_text: T.nilable(String),
17
23
  sort_by: Straddle::FundingEventListParams::SortBy::OrSymbol,
18
24
  sort_order: Straddle::FundingEventListParams::SortOrder::OrSymbol,
25
+ status:
26
+ T.nilable(
27
+ T::Array[Straddle::FundingEventListParams::Status::OrSymbol]
28
+ ),
29
+ status_reason:
30
+ T.nilable(
31
+ T::Array[Straddle::FundingEventListParams::StatusReason::OrSymbol]
32
+ ),
33
+ status_source:
34
+ T.nilable(
35
+ T::Array[Straddle::FundingEventListParams::StatusSource::OrSymbol]
36
+ ),
37
+ trace_id: T.nilable(String),
19
38
  trace_number: T.nilable(String),
20
39
  correlation_id: String,
21
40
  request_id: String,
@@ -50,6 +69,14 @@ module Straddle
50
69
  sort_by: nil,
51
70
  # Query param: The order in which to sort the results.
52
71
  sort_order: nil,
72
+ # Query param: Funding Event status.
73
+ status: nil,
74
+ # Query param: Reason for latest payment status change.
75
+ status_reason: nil,
76
+ # Query param: Source of latest payment status change.
77
+ status_source: nil,
78
+ # Query param: Trace Id.
79
+ trace_id: nil,
53
80
  # Query param: Trace number.
54
81
  trace_number: nil,
55
82
  # Header param: Optional client generated identifier to trace and debug a series
@@ -3,6 +3,11 @@
3
3
  module Straddle
4
4
  module Resources
5
5
  class Paykeys
6
+ # Paykeys are secure tokens that link verified customer identities to their bank
7
+ # accounts. Each Paykey includes built-in balance checking, fraud detection
8
+ # through LSTM machine learning models, and can be reused for subscriptions and
9
+ # recurring payments without storing sensitive data. Paykeys eliminate fraud by
10
+ # ensuring the person initiating payment owns the funding account.
6
11
  class Review
7
12
  # Update the status of a paykey when in review status
8
13
  sig do
@@ -17,9 +22,9 @@ module Straddle
17
22
  ).returns(Straddle::PaykeyV1)
18
23
  end
19
24
  def decision(
20
- # Path param:
25
+ # Path param
21
26
  id,
22
- # Body param:
27
+ # Body param
23
28
  status:,
24
29
  # Header param: Optional client generated identifier to trace and debug a series
25
30
  # of requests.
@@ -2,7 +2,17 @@
2
2
 
3
3
  module Straddle
4
4
  module Resources
5
+ # Paykeys are secure tokens that link verified customer identities to their bank
6
+ # accounts. Each Paykey includes built-in balance checking, fraud detection
7
+ # through LSTM machine learning models, and can be reused for subscriptions and
8
+ # recurring payments without storing sensitive data. Paykeys eliminate fraud by
9
+ # ensuring the person initiating payment owns the funding account.
5
10
  class Paykeys
11
+ # Paykeys are secure tokens that link verified customer identities to their bank
12
+ # accounts. Each Paykey includes built-in balance checking, fraud detection
13
+ # through LSTM machine learning models, and can be reused for subscriptions and
14
+ # recurring payments without storing sensitive data. Paykeys eliminate fraud by
15
+ # ensuring the person initiating payment owns the funding account.
6
16
  sig { returns(Straddle::Resources::Paykeys::Review) }
7
17
  attr_reader :review
8
18
 
@@ -13,10 +23,12 @@ module Straddle
13
23
  customer_id: String,
14
24
  page_number: Integer,
15
25
  page_size: Integer,
26
+ search_text: String,
16
27
  sort_by: Straddle::PaykeyListParams::SortBy::OrSymbol,
17
28
  sort_order: Straddle::PaykeyListParams::SortOrder::OrSymbol,
18
29
  source: T::Array[Straddle::PaykeyListParams::Source::OrSymbol],
19
30
  status: T::Array[Straddle::PaykeyListParams::Status::OrSymbol],
31
+ unblock_eligible: T::Boolean,
20
32
  correlation_id: String,
21
33
  request_id: String,
22
34
  straddle_account_id: String,
@@ -34,14 +46,21 @@ module Straddle
34
46
  page_number: nil,
35
47
  # Query param: Number of results per page. Maximum: 1000.
36
48
  page_size: nil,
37
- # Query param:
49
+ # Query param: General search term to filter paykeys.
50
+ search_text: nil,
51
+ # Query param
38
52
  sort_by: nil,
39
- # Query param:
53
+ # Query param
40
54
  sort_order: nil,
41
55
  # Query param: Filter paykeys by their source.
42
56
  source: nil,
43
57
  # Query param: Filter paykeys by their current status.
44
58
  status: nil,
59
+ # Query param: Filter paykeys by unblock eligibility. When true, returns only
60
+ # blocked paykeys eligible for client-initiated unblocking (blocked due to R29
61
+ # returns and not previously unblocked). When false, returns only blocked paykeys
62
+ # that are not eligible for unblocking.
63
+ unblock_eligible: nil,
45
64
  # Header param: Optional client generated identifier to trace and debug a series
46
65
  # of requests.
47
66
  correlation_id: nil,
@@ -66,9 +85,9 @@ module Straddle
66
85
  ).returns(Straddle::PaykeyV1)
67
86
  end
68
87
  def cancel(
69
- # Path param:
88
+ # Path param
70
89
  id,
71
- # Body param:
90
+ # Body param
72
91
  reason: nil,
73
92
  # Header param: Optional client generated identifier to trace and debug a series
74
93
  # of requests.
@@ -108,10 +127,9 @@ module Straddle
108
127
  )
109
128
  end
110
129
 
111
- # Retrieves the details of a paykey that has previously been created, including
112
- # unmasked bank account fields. Supply the unique paykey ID that was returned from
113
- # your previous request, and Straddle will return the corresponding paykey
114
- # information.
130
+ # Retrieves the details of a paykey that has previously been created. Supply the
131
+ # unique paykey ID that was returned from your previous request, and Straddle will
132
+ # return the corresponding paykey information including the unmasked token.
115
133
  sig do
116
134
  params(
117
135
  id: String,
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Straddle
4
4
  module Resources
5
+ # Payments provide endpoints to filter both Charges and Payouts with multiple
6
+ # different parameters.
5
7
  class Payments
6
8
  # Search for payments, including `charges` and `payouts`, using a variety of
7
9
  # criteria. This endpoint supports advanced sorting and filtering options.
@@ -14,6 +16,7 @@ module Straddle
14
16
  Straddle::PaymentListParams::DefaultSortOrder::OrSymbol,
15
17
  external_id: String,
16
18
  funding_id: String,
19
+ include_metadata: T::Boolean,
17
20
  max_amount: Integer,
18
21
  max_created_at: Time,
19
22
  max_effective_at: Time,
@@ -51,16 +54,18 @@ module Straddle
51
54
  def list(
52
55
  # Query param: Search using the `customer_id` of a `charge` or `payout`.
53
56
  customer_id: nil,
54
- # Query param:
57
+ # Query param
55
58
  default_page_size: nil,
56
59
  # Query param: The field to sort the results by.
57
60
  default_sort: nil,
58
- # Query param:
61
+ # Query param
59
62
  default_sort_order: nil,
60
63
  # Query param: Search using the `external_id` of a `charge` or `payout`.
61
64
  external_id: nil,
62
65
  # Query param: Search using the `funding_id` of a `charge` or `payout`.
63
66
  funding_id: nil,
67
+ # Query param: Include the metadata for payments in the returned data.
68
+ include_metadata: nil,
64
69
  # Query param: Search using a maximum `amount` of a `charge` or `payout`.
65
70
  max_amount: nil,
66
71
  # Query param: Search using the latest `created_at` date of a `charge` or
@@ -98,7 +103,7 @@ module Straddle
98
103
  search_text: nil,
99
104
  # Query param: The field to sort the results by.
100
105
  sort_by: nil,
101
- # Query param:
106
+ # Query param
102
107
  sort_order: nil,
103
108
  # Query param: Reason for latest payment status change.
104
109
  status_reason: nil,
@@ -2,13 +2,17 @@
2
2
 
3
3
  module Straddle
4
4
  module Resources
5
+ # Payouts represent transfers from Straddle to customer bank accounts. Create
6
+ # payouts to handle disbursements, process refunds, or manage marketplace
7
+ # settlements. Use payouts to send money quickly and securely with the most
8
+ # cost-effective rail automatically selected.
5
9
  class Payouts
6
10
  # Use payouts to send money to your customers.
7
11
  sig do
8
12
  params(
9
13
  amount: Integer,
10
14
  currency: String,
11
- description: String,
15
+ description: T.nilable(String),
12
16
  device: Straddle::DeviceInfoV1::OrHash,
13
17
  external_id: String,
14
18
  paykey: String,
@@ -40,7 +44,7 @@ module Straddle
40
44
  # Body param: The desired date on which the payout should be occur. For payouts,
41
45
  # this means the date you want the funds to be sent from your bank account.
42
46
  payment_date:,
43
- # Body param:
47
+ # Body param
44
48
  config: nil,
45
49
  # Body param: Up to 20 additional user-defined key-value pairs. Useful for storing
46
50
  # additional information about the payout in a structured format.
@@ -65,7 +69,7 @@ module Straddle
65
69
  params(
66
70
  id: String,
67
71
  amount: Integer,
68
- description: String,
72
+ description: T.nilable(String),
69
73
  payment_date: Date,
70
74
  metadata: T.nilable(T::Hash[Symbol, String]),
71
75
  correlation_id: String,
@@ -76,7 +80,7 @@ module Straddle
76
80
  ).returns(Straddle::PayoutV1)
77
81
  end
78
82
  def update(
79
- # Path param:
83
+ # Path param
80
84
  id,
81
85
  # Body param: The amount of the payout in cents.
82
86
  amount:,
@@ -116,7 +120,7 @@ module Straddle
116
120
  ).returns(Straddle::PayoutV1)
117
121
  end
118
122
  def cancel(
119
- # Path param:
123
+ # Path param
120
124
  id,
121
125
  # Body param: Details about why the payout status was updated.
122
126
  reason:,
@@ -171,7 +175,7 @@ module Straddle
171
175
  ).returns(Straddle::PayoutV1)
172
176
  end
173
177
  def hold(
174
- # Path param:
178
+ # Path param
175
179
  id,
176
180
  # Body param: Details about why the payout status was updated.
177
181
  reason:,
@@ -203,7 +207,7 @@ module Straddle
203
207
  ).returns(Straddle::PayoutV1)
204
208
  end
205
209
  def release(
206
- # Path param:
210
+ # Path param
207
211
  id,
208
212
  # Body param: Details about why the payout status was updated.
209
213
  reason:,
@@ -106,6 +106,16 @@ module Straddle
106
106
  JSON_CONTENT: Regexp
107
107
  JSONL_CONTENT: Regexp
108
108
 
109
+ def encode_query_params: (
110
+ ::Hash[Symbol, top] query
111
+ ) -> ::Hash[Symbol, top]
112
+
113
+ private def write_query_param_element!: (
114
+ ::Hash[Symbol, top] collection,
115
+ String key,
116
+ top element
117
+ ) -> nil
118
+
109
119
  def self?.write_multipart_content: (
110
120
  Enumerator::Yielder y,
111
121
  val: top,
@@ -201,7 +201,8 @@ module Straddle
201
201
  def self?.values: -> ::Array[Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::source]
202
202
  end
203
203
 
204
- type status = :pending | :active | :inactive | :rejected | :review
204
+ type status =
205
+ :pending | :active | :inactive | :rejected | :review | :blocked
205
206
 
206
207
  module Status
207
208
  extend Straddle::Internal::Type::Enum
@@ -211,6 +212,7 @@ module Straddle
211
212
  INACTIVE: :inactive
212
213
  REJECTED: :rejected
213
214
  REVIEW: :review
215
+ BLOCKED: :blocked
214
216
 
215
217
  def self?.values: -> ::Array[Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::status]
216
218
  end
@@ -349,6 +351,13 @@ module Straddle
349
351
  | :ok
350
352
  | :other_network_return
351
353
  | :payout_refused
354
+ | :cancel_request
355
+ | :failed_verification
356
+ | :require_review
357
+ | :blocked_by_system
358
+ | :watchtower_review
359
+ | :validating
360
+ | :auto_hold
352
361
 
353
362
  module Reason
354
363
  extend Straddle::Internal::Type::Enum
@@ -373,6 +382,13 @@ module Straddle
373
382
  OK: :ok
374
383
  OTHER_NETWORK_RETURN: :other_network_return
375
384
  PAYOUT_REFUSED: :payout_refused
385
+ CANCEL_REQUEST: :cancel_request
386
+ FAILED_VERIFICATION: :failed_verification
387
+ REQUIRE_REVIEW: :require_review
388
+ BLOCKED_BY_SYSTEM: :blocked_by_system
389
+ WATCHTOWER_REVIEW: :watchtower_review
390
+ VALIDATING: :validating
391
+ AUTO_HOLD: :auto_hold
376
392
 
377
393
  def self?.values: -> ::Array[Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::reason]
378
394
  end
@@ -201,7 +201,8 @@ module Straddle
201
201
  def self?.values: -> ::Array[Straddle::Models::Bridge::LinkCreateTanResponse::Data::source]
202
202
  end
203
203
 
204
- type status = :pending | :active | :inactive | :rejected | :review
204
+ type status =
205
+ :pending | :active | :inactive | :rejected | :review | :blocked
205
206
 
206
207
  module Status
207
208
  extend Straddle::Internal::Type::Enum
@@ -211,6 +212,7 @@ module Straddle
211
212
  INACTIVE: :inactive
212
213
  REJECTED: :rejected
213
214
  REVIEW: :review
215
+ BLOCKED: :blocked
214
216
 
215
217
  def self?.values: -> ::Array[Straddle::Models::Bridge::LinkCreateTanResponse::Data::status]
216
218
  end
@@ -349,6 +351,13 @@ module Straddle
349
351
  | :ok
350
352
  | :other_network_return
351
353
  | :payout_refused
354
+ | :cancel_request
355
+ | :failed_verification
356
+ | :require_review
357
+ | :blocked_by_system
358
+ | :watchtower_review
359
+ | :validating
360
+ | :auto_hold
352
361
 
353
362
  module Reason
354
363
  extend Straddle::Internal::Type::Enum
@@ -373,6 +382,13 @@ module Straddle
373
382
  OK: :ok
374
383
  OTHER_NETWORK_RETURN: :other_network_return
375
384
  PAYOUT_REFUSED: :payout_refused
385
+ CANCEL_REQUEST: :cancel_request
386
+ FAILED_VERIFICATION: :failed_verification
387
+ REQUIRE_REVIEW: :require_review
388
+ BLOCKED_BY_SYSTEM: :blocked_by_system
389
+ WATCHTOWER_REVIEW: :watchtower_review
390
+ VALIDATING: :validating
391
+ AUTO_HOLD: :auto_hold
376
392
 
377
393
  def self?.values: -> ::Array[Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::reason]
378
394
  end
@@ -2,6 +2,7 @@ module Straddle
2
2
  module Models
3
3
  type charge_cancel_params =
4
4
  {
5
+ id: String,
5
6
  reason: String?,
6
7
  correlation_id: String,
7
8
  idempotency_key: String,
@@ -14,6 +15,8 @@ module Straddle
14
15
  extend Straddle::Internal::Type::RequestParameters::Converter
15
16
  include Straddle::Internal::Type::RequestParameters
16
17
 
18
+ attr_accessor id: String
19
+
17
20
  attr_accessor reason: String?
18
21
 
19
22
  attr_reader correlation_id: String?
@@ -33,6 +36,7 @@ module Straddle
33
36
  def straddle_account_id=: (String) -> String
34
37
 
35
38
  def initialize: (
39
+ id: String,
36
40
  ?reason: String?,
37
41
  ?correlation_id: String,
38
42
  ?idempotency_key: String,
@@ -42,6 +46,7 @@ module Straddle
42
46
  ) -> void
43
47
 
44
48
  def to_hash: -> {
49
+ id: String,
45
50
  reason: String?,
46
51
  correlation_id: String,
47
52
  idempotency_key: String,
@@ -6,7 +6,7 @@ module Straddle
6
6
  config: Straddle::ChargeCreateParams::Config,
7
7
  consent_type: Straddle::Models::ChargeCreateParams::consent_type,
8
8
  currency: String,
9
- description: String,
9
+ description: String?,
10
10
  device: Straddle::DeviceInfoV1,
11
11
  external_id: String,
12
12
  paykey: String,
@@ -31,7 +31,7 @@ module Straddle
31
31
 
32
32
  attr_accessor currency: String
33
33
 
34
- attr_accessor description: String
34
+ attr_accessor description: String?
35
35
 
36
36
  attr_accessor device: Straddle::DeviceInfoV1
37
37
 
@@ -64,7 +64,7 @@ module Straddle
64
64
  config: Straddle::ChargeCreateParams::Config,
65
65
  consent_type: Straddle::Models::ChargeCreateParams::consent_type,
66
66
  currency: String,
67
- description: String,
67
+ description: String?,
68
68
  device: Straddle::DeviceInfoV1,
69
69
  external_id: String,
70
70
  paykey: String,
@@ -82,7 +82,7 @@ module Straddle
82
82
  config: Straddle::ChargeCreateParams::Config,
83
83
  consent_type: Straddle::Models::ChargeCreateParams::consent_type,
84
84
  currency: String,
85
- description: String,
85
+ description: String?,
86
86
  device: Straddle::DeviceInfoV1,
87
87
  external_id: String,
88
88
  paykey: String,
@@ -98,12 +98,18 @@ module Straddle
98
98
  type config =
99
99
  {
100
100
  balance_check: Straddle::Models::ChargeCreateParams::Config::balance_check,
101
+ auto_hold: bool?,
102
+ auto_hold_message: String?,
101
103
  sandbox_outcome: Straddle::Models::ChargeCreateParams::Config::sandbox_outcome
102
104
  }
103
105
 
104
106
  class Config < Straddle::Internal::Type::BaseModel
105
107
  attr_accessor balance_check: Straddle::Models::ChargeCreateParams::Config::balance_check
106
108
 
109
+ attr_accessor auto_hold: bool?
110
+
111
+ attr_accessor auto_hold_message: String?
112
+
107
113
  attr_reader sandbox_outcome: Straddle::Models::ChargeCreateParams::Config::sandbox_outcome?
108
114
 
109
115
  def sandbox_outcome=: (
@@ -112,11 +118,15 @@ module Straddle
112
118
 
113
119
  def initialize: (
114
120
  balance_check: Straddle::Models::ChargeCreateParams::Config::balance_check,
121
+ ?auto_hold: bool?,
122
+ ?auto_hold_message: String?,
115
123
  ?sandbox_outcome: Straddle::Models::ChargeCreateParams::Config::sandbox_outcome
116
124
  ) -> void
117
125
 
118
126
  def to_hash: -> {
119
127
  balance_check: Straddle::Models::ChargeCreateParams::Config::balance_check,
128
+ auto_hold: bool?,
129
+ auto_hold_message: String?,
120
130
  sandbox_outcome: Straddle::Models::ChargeCreateParams::Config::sandbox_outcome
121
131
  }
122
132
 
@@ -2,6 +2,7 @@ module Straddle
2
2
  module Models
3
3
  type charge_get_params =
4
4
  {
5
+ id: String,
5
6
  correlation_id: String,
6
7
  request_id: String,
7
8
  straddle_account_id: String
@@ -12,6 +13,8 @@ module Straddle
12
13
  extend Straddle::Internal::Type::RequestParameters::Converter
13
14
  include Straddle::Internal::Type::RequestParameters
14
15
 
16
+ attr_accessor id: String
17
+
15
18
  attr_reader correlation_id: String?
16
19
 
17
20
  def correlation_id=: (String) -> String
@@ -25,6 +28,7 @@ module Straddle
25
28
  def straddle_account_id=: (String) -> String
26
29
 
27
30
  def initialize: (
31
+ id: String,
28
32
  ?correlation_id: String,
29
33
  ?request_id: String,
30
34
  ?straddle_account_id: String,
@@ -32,6 +36,7 @@ module Straddle
32
36
  ) -> void
33
37
 
34
38
  def to_hash: -> {
39
+ id: String,
35
40
  correlation_id: String,
36
41
  request_id: String,
37
42
  straddle_account_id: String,