straddle 0.3.0 → 0.5.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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +127 -0
  3. data/README.md +32 -1
  4. data/lib/straddle/client.rb +49 -1
  5. data/lib/straddle/internal/transport/base_client.rb +5 -0
  6. data/lib/straddle/internal/transport/pooled_net_requester.rb +13 -11
  7. data/lib/straddle/internal/util.rb +61 -10
  8. data/lib/straddle/models/bridge/link_create_paykey_response.rb +8 -0
  9. data/lib/straddle/models/bridge/link_create_tan_response.rb +8 -0
  10. data/lib/straddle/models/charge_cancel_params.rb +8 -1
  11. data/lib/straddle/models/charge_create_params.rb +22 -4
  12. data/lib/straddle/models/charge_get_params.rb +7 -1
  13. data/lib/straddle/models/charge_hold_params.rb +8 -1
  14. data/lib/straddle/models/charge_release_params.rb +8 -1
  15. data/lib/straddle/models/charge_unmask_params.rb +7 -1
  16. data/lib/straddle/models/charge_unmask_response.rb +190 -5
  17. data/lib/straddle/models/charge_update_params.rb +11 -4
  18. data/lib/straddle/models/charge_v1.rb +188 -5
  19. data/lib/straddle/models/customer_delete_params.rb +7 -1
  20. data/lib/straddle/models/customer_get_params.rb +7 -1
  21. data/lib/straddle/models/customer_unmasked_params.rb +7 -1
  22. data/lib/straddle/models/customer_update_params.rb +8 -1
  23. data/lib/straddle/models/customers/review_decision_params.rb +8 -1
  24. data/lib/straddle/models/customers/review_get_params.rb +7 -1
  25. data/lib/straddle/models/customers/review_refresh_review_params.rb +7 -1
  26. data/lib/straddle/models/embed/account_get_params.rb +11 -1
  27. data/lib/straddle/models/embed/account_list_params.rb +8 -1
  28. data/lib/straddle/models/embed/account_onboard_params.rb +7 -1
  29. data/lib/straddle/models/embed/account_paged_v1.rb +4 -0
  30. data/lib/straddle/models/embed/account_simulate_params.rb +7 -1
  31. data/lib/straddle/models/embed/account_update_params.rb +8 -1
  32. data/lib/straddle/models/embed/account_v1.rb +4 -0
  33. data/lib/straddle/models/embed/accounts/capability_request_create_params.rb +8 -1
  34. data/lib/straddle/models/embed/accounts/capability_request_list_params.rb +8 -1
  35. data/lib/straddle/models/embed/accounts/capability_request_paged_v1.rb +9 -1
  36. data/lib/straddle/models/embed/address_v1.rb +14 -38
  37. data/lib/straddle/models/embed/linked_bank_account_cancel_params.rb +7 -1
  38. data/lib/straddle/models/embed/linked_bank_account_get_params.rb +7 -1
  39. data/lib/straddle/models/embed/linked_bank_account_unmask_params.rb +7 -1
  40. data/lib/straddle/models/embed/linked_bank_account_update_params.rb +8 -1
  41. data/lib/straddle/models/embed/organization_get_params.rb +7 -1
  42. data/lib/straddle/models/embed/representative.rb +2 -2
  43. data/lib/straddle/models/embed/representative_create_params.rb +2 -2
  44. data/lib/straddle/models/embed/representative_get_params.rb +7 -1
  45. data/lib/straddle/models/embed/representative_paged.rb +2 -2
  46. data/lib/straddle/models/embed/representative_unmask_params.rb +7 -1
  47. data/lib/straddle/models/embed/representative_update_params.rb +10 -3
  48. data/lib/straddle/models/funding_event_get_params.rb +7 -1
  49. data/lib/straddle/models/funding_event_list_params.rb +105 -1
  50. data/lib/straddle/models/funding_event_summary_item_v1.rb +128 -1
  51. data/lib/straddle/models/funding_event_summary_paged_v1.rb +128 -1
  52. data/lib/straddle/models/paykey_cancel_params.rb +7 -1
  53. data/lib/straddle/models/paykey_get_params.rb +7 -1
  54. data/lib/straddle/models/paykey_list_params.rb +40 -1
  55. data/lib/straddle/models/paykey_reveal_params.rb +7 -1
  56. data/lib/straddle/models/paykey_reveal_response.rb +8 -0
  57. data/lib/straddle/models/paykey_summary_paged_v1.rb +19 -1
  58. data/lib/straddle/models/paykey_unmasked_params.rb +7 -1
  59. data/lib/straddle/models/paykey_unmasked_v1.rb +8 -0
  60. data/lib/straddle/models/paykey_update_balance_params.rb +7 -1
  61. data/lib/straddle/models/paykey_v1.rb +19 -1
  62. data/lib/straddle/models/paykeys/review_decision_params.rb +7 -1
  63. data/lib/straddle/models/paykeys/review_get_params.rb +7 -1
  64. data/lib/straddle/models/paykeys/review_get_response.rb +19 -4
  65. data/lib/straddle/models/paykeys/review_refresh_review_params.rb +7 -1
  66. data/lib/straddle/models/payment_list_params.rb +71 -1
  67. data/lib/straddle/models/payment_summary_paged_v1.rb +110 -4
  68. data/lib/straddle/models/payout_cancel_params.rb +8 -1
  69. data/lib/straddle/models/payout_create_params.rb +22 -4
  70. data/lib/straddle/models/payout_get_params.rb +7 -1
  71. data/lib/straddle/models/payout_hold_params.rb +8 -1
  72. data/lib/straddle/models/payout_release_params.rb +8 -1
  73. data/lib/straddle/models/payout_unmask_params.rb +7 -1
  74. data/lib/straddle/models/payout_unmask_response.rb +193 -5
  75. data/lib/straddle/models/payout_update_params.rb +11 -4
  76. data/lib/straddle/models/payout_upload_authorization_document_params.rb +57 -0
  77. data/lib/straddle/models/payout_v1.rb +188 -5
  78. data/lib/straddle/models/status_details_v1.rb +7 -0
  79. data/lib/straddle/models.rb +2 -0
  80. data/lib/straddle/resources/bridge/link.rb +12 -6
  81. data/lib/straddle/resources/bridge.rb +13 -1
  82. data/lib/straddle/resources/charges.rb +13 -8
  83. data/lib/straddle/resources/customers/review.rb +7 -1
  84. data/lib/straddle/resources/customers.rb +23 -10
  85. data/lib/straddle/resources/embed/accounts/capability_requests.rb +9 -4
  86. data/lib/straddle/resources/embed/accounts.rb +29 -15
  87. data/lib/straddle/resources/embed/linked_bank_accounts.rb +11 -6
  88. data/lib/straddle/resources/embed/organizations.rb +7 -2
  89. data/lib/straddle/resources/embed/representatives.rb +15 -8
  90. data/lib/straddle/resources/embed.rb +19 -0
  91. data/lib/straddle/resources/funding_events.rb +22 -3
  92. data/lib/straddle/resources/paykeys/review.rb +7 -2
  93. data/lib/straddle/resources/paykeys.rb +42 -11
  94. data/lib/straddle/resources/payments.rb +30 -6
  95. data/lib/straddle/resources/payouts.rb +60 -7
  96. data/lib/straddle/version.rb +1 -1
  97. data/lib/straddle.rb +2 -0
  98. data/manifest.yaml +1 -0
  99. data/rbi/straddle/client.rbi +34 -0
  100. data/rbi/straddle/internal/util.rbi +29 -1
  101. data/rbi/straddle/models/bridge/link_create_paykey_response.rbi +40 -0
  102. data/rbi/straddle/models/bridge/link_create_tan_response.rbi +40 -0
  103. data/rbi/straddle/models/charge_cancel_params.rbi +6 -0
  104. data/rbi/straddle/models/charge_create_params.rbi +29 -3
  105. data/rbi/straddle/models/charge_get_params.rbi +6 -0
  106. data/rbi/straddle/models/charge_hold_params.rbi +6 -0
  107. data/rbi/straddle/models/charge_release_params.rbi +6 -0
  108. data/rbi/straddle/models/charge_unmask_params.rbi +6 -0
  109. data/rbi/straddle/models/charge_unmask_response.rbi +396 -6
  110. data/rbi/straddle/models/charge_update_params.rbi +9 -3
  111. data/rbi/straddle/models/charge_v1.rbi +364 -6
  112. data/rbi/straddle/models/customer_delete_params.rbi +6 -0
  113. data/rbi/straddle/models/customer_get_params.rbi +6 -0
  114. data/rbi/straddle/models/customer_unmasked_params.rbi +6 -0
  115. data/rbi/straddle/models/customer_update_params.rbi +6 -0
  116. data/rbi/straddle/models/customers/review_decision_params.rbi +6 -0
  117. data/rbi/straddle/models/customers/review_get_params.rbi +6 -0
  118. data/rbi/straddle/models/customers/review_refresh_review_params.rbi +6 -0
  119. data/rbi/straddle/models/embed/account_get_params.rbi +13 -1
  120. data/rbi/straddle/models/embed/account_list_params.rbi +9 -0
  121. data/rbi/straddle/models/embed/account_onboard_params.rbi +6 -0
  122. data/rbi/straddle/models/embed/account_paged_v1.rbi +20 -0
  123. data/rbi/straddle/models/embed/account_simulate_params.rbi +6 -0
  124. data/rbi/straddle/models/embed/account_update_params.rbi +6 -0
  125. data/rbi/straddle/models/embed/account_v1.rbi +20 -0
  126. data/rbi/straddle/models/embed/accounts/capability_request_create_params.rbi +6 -0
  127. data/rbi/straddle/models/embed/accounts/capability_request_list_params.rbi +6 -0
  128. data/rbi/straddle/models/embed/accounts/capability_request_paged_v1.rbi +8 -0
  129. data/rbi/straddle/models/embed/address_v1.rbi +18 -42
  130. data/rbi/straddle/models/embed/linked_bank_account_cancel_params.rbi +6 -0
  131. data/rbi/straddle/models/embed/linked_bank_account_get_params.rbi +11 -1
  132. data/rbi/straddle/models/embed/linked_bank_account_unmask_params.rbi +11 -1
  133. data/rbi/straddle/models/embed/linked_bank_account_update_params.rbi +6 -0
  134. data/rbi/straddle/models/embed/organization_get_params.rbi +11 -1
  135. data/rbi/straddle/models/embed/representative.rbi +2 -2
  136. data/rbi/straddle/models/embed/representative_create_params.rbi +2 -2
  137. data/rbi/straddle/models/embed/representative_get_params.rbi +11 -1
  138. data/rbi/straddle/models/embed/representative_paged.rbi +2 -2
  139. data/rbi/straddle/models/embed/representative_unmask_params.rbi +11 -1
  140. data/rbi/straddle/models/embed/representative_update_params.rbi +8 -2
  141. data/rbi/straddle/models/funding_event_get_params.rbi +6 -0
  142. data/rbi/straddle/models/funding_event_list_params.rbi +333 -0
  143. data/rbi/straddle/models/funding_event_summary_item_v1.rbi +392 -0
  144. data/rbi/straddle/models/funding_event_summary_paged_v1.rbi +393 -0
  145. data/rbi/straddle/models/paykey_cancel_params.rbi +6 -0
  146. data/rbi/straddle/models/paykey_get_params.rbi +6 -0
  147. data/rbi/straddle/models/paykey_list_params.rbi +52 -0
  148. data/rbi/straddle/models/paykey_reveal_params.rbi +6 -0
  149. data/rbi/straddle/models/paykey_reveal_response.rbi +40 -0
  150. data/rbi/straddle/models/paykey_summary_paged_v1.rbi +55 -3
  151. data/rbi/straddle/models/paykey_unmasked_params.rbi +6 -0
  152. data/rbi/straddle/models/paykey_unmasked_v1.rbi +40 -0
  153. data/rbi/straddle/models/paykey_update_balance_params.rbi +6 -0
  154. data/rbi/straddle/models/paykey_v1.rbi +52 -3
  155. data/rbi/straddle/models/paykeys/review_decision_params.rbi +6 -0
  156. data/rbi/straddle/models/paykeys/review_get_params.rbi +6 -0
  157. data/rbi/straddle/models/paykeys/review_get_response.rbi +55 -18
  158. data/rbi/straddle/models/paykeys/review_refresh_review_params.rbi +6 -0
  159. data/rbi/straddle/models/payment_list_params.rbi +126 -0
  160. data/rbi/straddle/models/payment_summary_paged_v1.rbi +214 -6
  161. data/rbi/straddle/models/payout_cancel_params.rbi +6 -0
  162. data/rbi/straddle/models/payout_create_params.rbi +29 -3
  163. data/rbi/straddle/models/payout_get_params.rbi +6 -0
  164. data/rbi/straddle/models/payout_hold_params.rbi +6 -0
  165. data/rbi/straddle/models/payout_release_params.rbi +6 -0
  166. data/rbi/straddle/models/payout_unmask_params.rbi +6 -0
  167. data/rbi/straddle/models/payout_unmask_response.rbi +393 -3
  168. data/rbi/straddle/models/payout_update_params.rbi +9 -3
  169. data/rbi/straddle/models/payout_upload_authorization_document_params.rbi +88 -0
  170. data/rbi/straddle/models/payout_v1.rbi +361 -3
  171. data/rbi/straddle/models/status_details_v1.rbi +29 -0
  172. data/rbi/straddle/models.rbi +3 -0
  173. data/rbi/straddle/resources/bridge/link.rbi +12 -6
  174. data/rbi/straddle/resources/bridge.rbi +13 -1
  175. data/rbi/straddle/resources/charges.rbi +13 -8
  176. data/rbi/straddle/resources/customers/review.rbi +7 -1
  177. data/rbi/straddle/resources/customers.rbi +20 -8
  178. data/rbi/straddle/resources/embed/accounts/capability_requests.rbi +6 -2
  179. data/rbi/straddle/resources/embed/accounts.rbi +22 -10
  180. data/rbi/straddle/resources/embed/linked_bank_accounts.rbi +8 -4
  181. data/rbi/straddle/resources/embed/organizations.rbi +4 -0
  182. data/rbi/straddle/resources/embed/representatives.rbi +12 -6
  183. data/rbi/straddle/resources/embed.rbi +19 -0
  184. data/rbi/straddle/resources/funding_events.rbi +27 -0
  185. data/rbi/straddle/resources/paykeys/review.rbi +7 -2
  186. data/rbi/straddle/resources/paykeys.rbi +32 -8
  187. data/rbi/straddle/resources/payments.rbi +28 -3
  188. data/rbi/straddle/resources/payouts.rbi +44 -7
  189. data/sig/straddle/internal/util.rbs +14 -0
  190. data/sig/straddle/models/bridge/link_create_paykey_response.rbs +17 -1
  191. data/sig/straddle/models/bridge/link_create_tan_response.rbs +17 -1
  192. data/sig/straddle/models/charge_cancel_params.rbs +5 -0
  193. data/sig/straddle/models/charge_create_params.rbs +18 -4
  194. data/sig/straddle/models/charge_get_params.rbs +5 -0
  195. data/sig/straddle/models/charge_hold_params.rbs +5 -0
  196. data/sig/straddle/models/charge_release_params.rbs +5 -0
  197. data/sig/straddle/models/charge_unmask_params.rbs +5 -0
  198. data/sig/straddle/models/charge_unmask_response.rbs +166 -7
  199. data/sig/straddle/models/charge_update_params.rbs +9 -4
  200. data/sig/straddle/models/charge_v1.rbs +166 -7
  201. data/sig/straddle/models/customer_delete_params.rbs +5 -0
  202. data/sig/straddle/models/customer_get_params.rbs +5 -0
  203. data/sig/straddle/models/customer_unmasked_params.rbs +5 -0
  204. data/sig/straddle/models/customer_update_params.rbs +5 -0
  205. data/sig/straddle/models/customers/review_decision_params.rbs +5 -0
  206. data/sig/straddle/models/customers/review_get_params.rbs +5 -0
  207. data/sig/straddle/models/customers/review_refresh_review_params.rbs +5 -0
  208. data/sig/straddle/models/embed/account_get_params.rbs +5 -1
  209. data/sig/straddle/models/embed/account_list_params.rbs +7 -0
  210. data/sig/straddle/models/embed/account_onboard_params.rbs +5 -0
  211. data/sig/straddle/models/embed/account_paged_v1.rbs +18 -2
  212. data/sig/straddle/models/embed/account_simulate_params.rbs +5 -0
  213. data/sig/straddle/models/embed/account_update_params.rbs +5 -0
  214. data/sig/straddle/models/embed/account_v1.rbs +18 -2
  215. data/sig/straddle/models/embed/accounts/capability_request_create_params.rbs +5 -0
  216. data/sig/straddle/models/embed/accounts/capability_request_list_params.rbs +5 -0
  217. data/sig/straddle/models/embed/accounts/capability_request_paged_v1.rbs +5 -0
  218. data/sig/straddle/models/embed/address_v1.rbs +12 -27
  219. data/sig/straddle/models/embed/linked_bank_account_cancel_params.rbs +10 -1
  220. data/sig/straddle/models/embed/linked_bank_account_get_params.rbs +9 -1
  221. data/sig/straddle/models/embed/linked_bank_account_unmask_params.rbs +9 -1
  222. data/sig/straddle/models/embed/linked_bank_account_update_params.rbs +5 -0
  223. data/sig/straddle/models/embed/organization_get_params.rbs +5 -1
  224. data/sig/straddle/models/embed/representative_get_params.rbs +9 -1
  225. data/sig/straddle/models/embed/representative_unmask_params.rbs +9 -1
  226. data/sig/straddle/models/embed/representative_update_params.rbs +5 -0
  227. data/sig/straddle/models/funding_event_get_params.rbs +5 -0
  228. data/sig/straddle/models/funding_event_list_params.rbs +125 -0
  229. data/sig/straddle/models/funding_event_summary_item_v1.rbs +164 -0
  230. data/sig/straddle/models/funding_event_summary_paged_v1.rbs +164 -0
  231. data/sig/straddle/models/paykey_cancel_params.rbs +5 -0
  232. data/sig/straddle/models/paykey_get_params.rbs +5 -0
  233. data/sig/straddle/models/paykey_list_params.rbs +31 -1
  234. data/sig/straddle/models/paykey_reveal_params.rbs +5 -0
  235. data/sig/straddle/models/paykey_reveal_response.rbs +17 -1
  236. data/sig/straddle/models/paykey_summary_paged_v1.rbs +25 -4
  237. data/sig/straddle/models/paykey_unmasked_params.rbs +5 -0
  238. data/sig/straddle/models/paykey_unmasked_v1.rbs +17 -1
  239. data/sig/straddle/models/paykey_update_balance_params.rbs +5 -0
  240. data/sig/straddle/models/paykey_v1.rbs +25 -4
  241. data/sig/straddle/models/paykeys/review_decision_params.rbs +5 -0
  242. data/sig/straddle/models/paykeys/review_get_params.rbs +5 -0
  243. data/sig/straddle/models/paykeys/review_get_response.rbs +28 -10
  244. data/sig/straddle/models/paykeys/review_refresh_review_params.rbs +5 -0
  245. data/sig/straddle/models/payment_list_params.rbs +80 -2
  246. data/sig/straddle/models/payment_summary_paged_v1.rbs +89 -7
  247. data/sig/straddle/models/payout_cancel_params.rbs +5 -0
  248. data/sig/straddle/models/payout_create_params.rbs +18 -4
  249. data/sig/straddle/models/payout_get_params.rbs +5 -0
  250. data/sig/straddle/models/payout_hold_params.rbs +5 -0
  251. data/sig/straddle/models/payout_release_params.rbs +5 -0
  252. data/sig/straddle/models/payout_unmask_params.rbs +5 -0
  253. data/sig/straddle/models/payout_unmask_response.rbs +163 -4
  254. data/sig/straddle/models/payout_update_params.rbs +9 -4
  255. data/sig/straddle/models/payout_upload_authorization_document_params.rbs +59 -0
  256. data/sig/straddle/models/payout_v1.rbs +163 -4
  257. data/sig/straddle/models/status_details_v1.rbs +14 -0
  258. data/sig/straddle/models.rbs +2 -0
  259. data/sig/straddle/resources/charges.rbs +2 -2
  260. data/sig/straddle/resources/embed/accounts.rbs +1 -0
  261. data/sig/straddle/resources/funding_events.rbs +4 -0
  262. data/sig/straddle/resources/paykeys.rbs +4 -0
  263. data/sig/straddle/resources/payments.rbs +7 -0
  264. data/sig/straddle/resources/payouts.rbs +12 -2
  265. metadata +19 -2
@@ -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
 
@@ -10,13 +20,17 @@ module Straddle
10
20
  # supports advanced sorting and filtering options.
11
21
  sig do
12
22
  params(
23
+ created_from: Time,
24
+ created_to: Time,
13
25
  customer_id: String,
14
26
  page_number: Integer,
15
27
  page_size: Integer,
28
+ search_text: String,
16
29
  sort_by: Straddle::PaykeyListParams::SortBy::OrSymbol,
17
30
  sort_order: Straddle::PaykeyListParams::SortOrder::OrSymbol,
18
31
  source: T::Array[Straddle::PaykeyListParams::Source::OrSymbol],
19
32
  status: T::Array[Straddle::PaykeyListParams::Status::OrSymbol],
33
+ unblock_eligible: T::Boolean,
20
34
  correlation_id: String,
21
35
  request_id: String,
22
36
  straddle_account_id: String,
@@ -28,20 +42,31 @@ module Straddle
28
42
  )
29
43
  end
30
44
  def list(
45
+ # Query param: Start date for filtering by creation date.
46
+ created_from: nil,
47
+ # Query param: End date for filtering by creation date.
48
+ created_to: nil,
31
49
  # Query param: Filter paykeys by related customer ID.
32
50
  customer_id: nil,
33
51
  # Query param: Page number for paginated results. Starts at 1.
34
52
  page_number: nil,
35
53
  # Query param: Number of results per page. Maximum: 1000.
36
54
  page_size: nil,
37
- # Query param:
55
+ # Query param: General search term to filter paykeys.
56
+ search_text: nil,
57
+ # Query param
38
58
  sort_by: nil,
39
- # Query param:
59
+ # Query param
40
60
  sort_order: nil,
41
61
  # Query param: Filter paykeys by their source.
42
62
  source: nil,
43
63
  # Query param: Filter paykeys by their current status.
44
64
  status: nil,
65
+ # Query param: Filter paykeys by unblock eligibility. When true, returns only
66
+ # blocked paykeys eligible for client-initiated unblocking (blocked due to R29
67
+ # returns and not previously unblocked). When false, returns only blocked paykeys
68
+ # that are not eligible for unblocking.
69
+ unblock_eligible: nil,
45
70
  # Header param: Optional client generated identifier to trace and debug a series
46
71
  # of requests.
47
72
  correlation_id: nil,
@@ -66,9 +91,9 @@ module Straddle
66
91
  ).returns(Straddle::PaykeyV1)
67
92
  end
68
93
  def cancel(
69
- # Path param:
94
+ # Path param
70
95
  id,
71
- # Body param:
96
+ # Body param
72
97
  reason: nil,
73
98
  # Header param: Optional client generated identifier to trace and debug a series
74
99
  # of requests.
@@ -108,10 +133,9 @@ module Straddle
108
133
  )
109
134
  end
110
135
 
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.
136
+ # Retrieves the details of a paykey that has previously been created. Supply the
137
+ # unique paykey ID that was returned from your previous request, and Straddle will
138
+ # return the corresponding paykey information including the unmasked token.
115
139
  sig do
116
140
  params(
117
141
  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,14 +16,21 @@ module Straddle
14
16
  Straddle::PaymentListParams::DefaultSortOrder::OrSymbol,
15
17
  external_id: String,
16
18
  funding_id: String,
19
+ has_refund: T::Boolean,
20
+ has_resubmit: T::Boolean,
21
+ include_metadata: T::Boolean,
22
+ is_refund: T::Boolean,
23
+ is_resubmit: T::Boolean,
17
24
  max_amount: Integer,
18
25
  max_created_at: Time,
19
26
  max_effective_at: Time,
20
27
  max_payment_date: Date,
28
+ max_updated_at: Time,
21
29
  min_amount: Integer,
22
30
  min_created_at: Time,
23
31
  min_effective_at: Time,
24
32
  min_payment_date: Date,
33
+ min_updated_at: Time,
25
34
  page_number: Integer,
26
35
  page_size: Integer,
27
36
  paykey: String,
@@ -51,16 +60,28 @@ module Straddle
51
60
  def list(
52
61
  # Query param: Search using the `customer_id` of a `charge` or `payout`.
53
62
  customer_id: nil,
54
- # Query param:
63
+ # Query param
55
64
  default_page_size: nil,
56
65
  # Query param: The field to sort the results by.
57
66
  default_sort: nil,
58
- # Query param:
67
+ # Query param
59
68
  default_sort_order: nil,
60
69
  # Query param: Search using the `external_id` of a `charge` or `payout`.
61
70
  external_id: nil,
62
71
  # Query param: Search using the `funding_id` of a `charge` or `payout`.
63
72
  funding_id: nil,
73
+ # Query param: Has the payment been refunded by an associated payout (only
74
+ # applicable to charges).
75
+ has_refund: nil,
76
+ # Query param: Has the payment been resubmitted.
77
+ has_resubmit: nil,
78
+ # Query param: Include the metadata for payments in the returned data.
79
+ include_metadata: nil,
80
+ # Query param: Is the payment a refund of an original charge (only applicable to
81
+ # payouts).
82
+ is_refund: nil,
83
+ # Query param: Is the payment a resubmit of an original payment.
84
+ is_resubmit: nil,
64
85
  # Query param: Search using a maximum `amount` of a `charge` or `payout`.
65
86
  max_amount: nil,
66
87
  # Query param: Search using the latest `created_at` date of a `charge` or
@@ -70,6 +91,8 @@ module Straddle
70
91
  max_effective_at: nil,
71
92
  # Query param: Search using the latest `payment_date` of a `charge` or `payout`.
72
93
  max_payment_date: nil,
94
+ # Query param: Filter to payments last updated on or before this timestamp.
95
+ max_updated_at: nil,
73
96
  # Query param: Search using the minimum `amount of a `charge`or`payout`.
74
97
  min_amount: nil,
75
98
  # Query param: Search using the earliest `created_at` date of a `charge` or
@@ -80,6 +103,8 @@ module Straddle
80
103
  min_effective_at: nil,
81
104
  # Query param: Search using the earliest ` `of a `charge` or `payout`.
82
105
  min_payment_date: nil,
106
+ # Query param: Filter to payments last updated on or after this timestamp.
107
+ min_updated_at: nil,
83
108
  # Query param: Results page number. Starts at page 1.
84
109
  page_number: nil,
85
110
  # Query param: Results page size. Max value: 1000
@@ -98,7 +123,7 @@ module Straddle
98
123
  search_text: nil,
99
124
  # Query param: The field to sort the results by.
100
125
  sort_by: nil,
101
- # Query param:
126
+ # Query param
102
127
  sort_order: nil,
103
128
  # Query param: Reason for latest payment status change.
104
129
  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:,
@@ -243,6 +247,39 @@ module Straddle
243
247
  )
244
248
  end
245
249
 
250
+ # Uploads a document as proof of authorization for a payout. Uploading again adds
251
+ # another entry to documents rather than replacing the previous one.
252
+ sig do
253
+ params(
254
+ id: String,
255
+ file: Straddle::Internal::FileInput,
256
+ correlation_id: String,
257
+ idempotency_key: String,
258
+ request_id: String,
259
+ straddle_account_id: String,
260
+ request_options: Straddle::RequestOptions::OrHash
261
+ ).returns(Straddle::PayoutV1)
262
+ end
263
+ def upload_authorization_document(
264
+ # Path param
265
+ id,
266
+ # Body param: The document file to upload as proof of authorization for this
267
+ # payout.
268
+ file:,
269
+ # Header param: Optional client generated identifier to trace and debug a series
270
+ # of requests.
271
+ correlation_id: nil,
272
+ # Header param: Optional client generated value to use for idempotent requests.
273
+ idempotency_key: nil,
274
+ # Header param: Optional client generated identifier to trace and debug a request.
275
+ request_id: nil,
276
+ # Header param: For use by platforms to specify an account id and set scope of a
277
+ # request.
278
+ straddle_account_id: nil,
279
+ request_options: {}
280
+ )
281
+ end
282
+
246
283
  # @api private
247
284
  sig { params(client: Straddle::Client).returns(T.attached_class) }
248
285
  def self.new(client:)
@@ -45,8 +45,12 @@ module Straddle
45
45
  -> top?
46
46
  } -> top?
47
47
 
48
+ RFC_3986_NOT_PCHARS: Regexp
49
+
48
50
  def self?.uri_origin: (URI::Generic uri) -> String
49
51
 
52
+ def self?.encode_path: (String | Integer path) -> String
53
+
50
54
  def self?.interpolate_path: (String | ::Array[String] path) -> String
51
55
 
52
56
  def self?.decode_query: (String? query) -> ::Hash[String, ::Array[String]]
@@ -106,6 +110,16 @@ module Straddle
106
110
  JSON_CONTENT: Regexp
107
111
  JSONL_CONTENT: Regexp
108
112
 
113
+ def encode_query_params: (
114
+ ::Hash[Symbol, top] query
115
+ ) -> ::Hash[Symbol, top]
116
+
117
+ private def write_query_param_element!: (
118
+ ::Hash[Symbol, top] collection,
119
+ String key,
120
+ top element
121
+ ) -> nil
122
+
109
123
  def self?.write_multipart_content: (
110
124
  Enumerator::Yielder y,
111
125
  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
 
@@ -144,6 +154,8 @@ module Straddle
144
154
  | :reversed_customer_dispute
145
155
  | :failed_closed_bank_account
146
156
  | :reversed_closed_bank_account
157
+ | :failed_not_authorized
158
+ | :reversed_not_authorized
147
159
 
148
160
  module SandboxOutcome
149
161
  extend Straddle::Internal::Type::Enum
@@ -159,6 +171,8 @@ module Straddle
159
171
  REVERSED_CUSTOMER_DISPUTE: :reversed_customer_dispute
160
172
  FAILED_CLOSED_BANK_ACCOUNT: :failed_closed_bank_account
161
173
  REVERSED_CLOSED_BANK_ACCOUNT: :reversed_closed_bank_account
174
+ FAILED_NOT_AUTHORIZED: :failed_not_authorized
175
+ REVERSED_NOT_AUTHORIZED: :reversed_not_authorized
162
176
 
163
177
  def self?.values: -> ::Array[Straddle::Models::ChargeCreateParams::Config::sandbox_outcome]
164
178
  end
@@ -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,
@@ -2,6 +2,7 @@ module Straddle
2
2
  module Models
3
3
  type charge_hold_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,
@@ -2,6 +2,7 @@ module Straddle
2
2
  module Models
3
3
  type charge_release_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,
@@ -2,6 +2,7 @@ module Straddle
2
2
  module Models
3
3
  type charge_unmask_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,