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
@@ -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
  # Some parameter documentations has been truncated, see
7
9
  # {Straddle::Models::PaymentListParams} for more details.
@@ -9,20 +11,22 @@ module Straddle
9
11
  # Search for payments, including `charges` and `payouts`, using a variety of
10
12
  # criteria. This endpoint supports advanced sorting and filtering options.
11
13
  #
12
- # @overload list(customer_id: nil, default_page_size: nil, default_sort: nil, default_sort_order: nil, external_id: nil, funding_id: nil, max_amount: nil, max_created_at: nil, max_effective_at: nil, max_payment_date: nil, min_amount: nil, min_created_at: nil, min_effective_at: nil, min_payment_date: nil, page_number: nil, page_size: nil, paykey: nil, paykey_id: nil, payment_id: nil, payment_status: nil, payment_type: nil, search_text: nil, sort_by: nil, sort_order: nil, status_reason: nil, status_source: nil, correlation_id: nil, request_id: nil, straddle_account_id: nil, request_options: {})
14
+ # @overload list(customer_id: nil, default_page_size: nil, default_sort: nil, default_sort_order: nil, external_id: nil, funding_id: nil, include_metadata: nil, max_amount: nil, max_created_at: nil, max_effective_at: nil, max_payment_date: nil, min_amount: nil, min_created_at: nil, min_effective_at: nil, min_payment_date: nil, page_number: nil, page_size: nil, paykey: nil, paykey_id: nil, payment_id: nil, payment_status: nil, payment_type: nil, search_text: nil, sort_by: nil, sort_order: nil, status_reason: nil, status_source: nil, correlation_id: nil, request_id: nil, straddle_account_id: nil, request_options: {})
13
15
  #
14
16
  # @param customer_id [String] Query param: Search using the `customer_id` of a `charge` or `payout`.
15
17
  #
16
- # @param default_page_size [Integer] Query param:
18
+ # @param default_page_size [Integer] Query param
17
19
  #
18
20
  # @param default_sort [Symbol, Straddle::Models::PaymentListParams::DefaultSort] Query param: The field to sort the results by.
19
21
  #
20
- # @param default_sort_order [Symbol, Straddle::Models::PaymentListParams::DefaultSortOrder] Query param:
22
+ # @param default_sort_order [Symbol, Straddle::Models::PaymentListParams::DefaultSortOrder] Query param
21
23
  #
22
24
  # @param external_id [String] Query param: Search using the `external_id` of a `charge` or `payout`.
23
25
  #
24
26
  # @param funding_id [String] Query param: Search using the `funding_id` of a `charge` or `payout`.
25
27
  #
28
+ # @param include_metadata [Boolean] Query param: Include the metadata for payments in the returned data.
29
+ #
26
30
  # @param max_amount [Integer] Query param: Search using a maximum `amount` of a `charge` or `payout`.
27
31
  #
28
32
  # @param max_created_at [Time] Query param: Search using the latest `created_at` date of a `charge` or `payout`
@@ -57,7 +61,7 @@ module Straddle
57
61
  #
58
62
  # @param sort_by [Symbol, Straddle::Models::PaymentListParams::SortBy] Query param: The field to sort the results by.
59
63
  #
60
- # @param sort_order [Symbol, Straddle::Models::PaymentListParams::SortOrder] Query param:
64
+ # @param sort_order [Symbol, Straddle::Models::PaymentListParams::SortOrder] Query param
61
65
  #
62
66
  # @param status_reason [Array<Symbol, Straddle::Models::PaymentListParams::StatusReason>] Query param: Reason for latest payment status change.
63
67
  #
@@ -75,7 +79,6 @@ module Straddle
75
79
  #
76
80
  # @see Straddle::Models::PaymentListParams
77
81
  def list(params = {})
78
- parsed, options = Straddle::PaymentListParams.dump_request(params)
79
82
  query_params =
80
83
  [
81
84
  :customer_id,
@@ -84,6 +87,7 @@ module Straddle
84
87
  :default_sort_order,
85
88
  :external_id,
86
89
  :funding_id,
90
+ :include_metadata,
87
91
  :max_amount,
88
92
  :max_created_at,
89
93
  :max_effective_at,
@@ -105,10 +109,12 @@ module Straddle
105
109
  :status_reason,
106
110
  :status_source
107
111
  ]
112
+ parsed, options = Straddle::PaymentListParams.dump_request(params)
113
+ query = Straddle::Internal::Util.encode_query_params(parsed.slice(*query_params))
108
114
  @client.request(
109
115
  method: :get,
110
116
  path: "v1/payments",
111
- query: parsed.slice(*query_params),
117
+ query: query,
112
118
  headers: parsed.except(*query_params).transform_keys(
113
119
  correlation_id: "correlation-id",
114
120
  request_id: "request-id",
@@ -2,6 +2,10 @@
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
  # Some parameter documentations has been truncated, see
7
11
  # {Straddle::Models::PayoutCreateParams} for more details.
@@ -14,7 +18,7 @@ module Straddle
14
18
  #
15
19
  # @param currency [String] Body param: The currency of the payout. Only USD is supported.
16
20
  #
17
- # @param description [String] Body param: An arbitrary description for the payout.
21
+ # @param description [String, nil] Body param: An arbitrary description for the payout.
18
22
  #
19
23
  # @param device [Straddle::Models::DeviceInfoV1] Body param: Information about the device used when the customer authorized the p
20
24
  #
@@ -24,7 +28,7 @@ module Straddle
24
28
  #
25
29
  # @param payment_date [Date] Body param: The desired date on which the payout should be occur. For payouts, t
26
30
  #
27
- # @param config [Straddle::Models::PayoutCreateParams::Config] Body param:
31
+ # @param config [Straddle::Models::PayoutCreateParams::Config] Body param
28
32
  #
29
33
  # @param metadata [Hash{Symbol=>String}, nil] Body param: Up to 20 additional user-defined key-value pairs. Useful for storing
30
34
  #
@@ -68,11 +72,11 @@ module Straddle
68
72
  #
69
73
  # @overload update(id, amount:, description:, payment_date:, metadata: nil, correlation_id: nil, idempotency_key: nil, request_id: nil, straddle_account_id: nil, request_options: {})
70
74
  #
71
- # @param id [String] Path param:
75
+ # @param id [String] Path param
72
76
  #
73
77
  # @param amount [Integer] Body param: The amount of the payout in cents.
74
78
  #
75
- # @param description [String] Body param: An arbitrary description for the payout.
79
+ # @param description [String, nil] Body param: An arbitrary description for the payout.
76
80
  #
77
81
  # @param payment_date [Date] Body param: The desired date on which the payment should be occur. For payouts,
78
82
  #
@@ -118,7 +122,7 @@ module Straddle
118
122
  #
119
123
  # @overload cancel(id, reason:, correlation_id: nil, idempotency_key: nil, request_id: nil, straddle_account_id: nil, request_options: {})
120
124
  #
121
- # @param id [String] Path param:
125
+ # @param id [String] Path param
122
126
  #
123
127
  # @param reason [String] Body param: Details about why the payout status was updated.
124
128
  #
@@ -195,7 +199,7 @@ module Straddle
195
199
  #
196
200
  # @overload hold(id, reason:, correlation_id: nil, idempotency_key: nil, request_id: nil, straddle_account_id: nil, request_options: {})
197
201
  #
198
- # @param id [String] Path param:
202
+ # @param id [String] Path param
199
203
  #
200
204
  # @param reason [String] Body param: Details about why the payout status was updated.
201
205
  #
@@ -239,7 +243,7 @@ module Straddle
239
243
  #
240
244
  # @overload release(id, reason:, correlation_id: nil, idempotency_key: nil, request_id: nil, straddle_account_id: nil, request_options: {})
241
245
  #
242
- # @param id [String] Path param:
246
+ # @param id [String] Path param
243
247
  #
244
248
  # @param reason [String] Body param: Details about why the payout status was updated.
245
249
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Straddle
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.0"
5
5
  end
data/lib/straddle.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  # Standard libraries.
4
4
  # rubocop:disable Lint/RedundantRequireStatement
5
5
  require "English"
6
+ require "base64"
6
7
  require "cgi"
7
8
  require "date"
8
9
  require "erb"
data/manifest.yaml CHANGED
@@ -1,5 +1,6 @@
1
1
  dependencies:
2
2
  - English
3
+ - base64
3
4
  - cgi
4
5
  - date
5
6
  - erb
@@ -27,24 +27,58 @@ module Straddle
27
27
  sig { returns(Straddle::Resources::Embed) }
28
28
  attr_reader :embed
29
29
 
30
+ # Bridge provides a comprehensive suite of tools for connecting customer bank
31
+ # accounts. Use it to generate secure widget sessions for instant account
32
+ # verification, accept tokens from major providers like Plaid and Finicity, or
33
+ # verify accounts directly via our API. Bridge handles all sensitive banking
34
+ # credentials and ensures secure, compliant connections with support for 90% of US
35
+ # bank accounts.
30
36
  sig { returns(Straddle::Resources::Bridge) }
31
37
  attr_reader :bridge
32
38
 
39
+ # Customers represent the end users who send or receive payments through your
40
+ # integration. Each customer undergoes automatic identity verification and fraud
41
+ # screening upon creation. Use customers to track payment history, manage bank
42
+ # account connections, and maintain a secure record of all transactions associated
43
+ # with a user. Customers can be either individuals or businesses with appropriate
44
+ # compliance checks for each type.
33
45
  sig { returns(Straddle::Resources::Customers) }
34
46
  attr_reader :customers
35
47
 
48
+ # Paykeys are secure tokens that link verified customer identities to their bank
49
+ # accounts. Each Paykey includes built-in balance checking, fraud detection
50
+ # through LSTM machine learning models, and can be reused for subscriptions and
51
+ # recurring payments without storing sensitive data. Paykeys eliminate fraud by
52
+ # ensuring the person initiating payment owns the funding account.
36
53
  sig { returns(Straddle::Resources::Paykeys) }
37
54
  attr_reader :paykeys
38
55
 
56
+ # Charges represent attempts to debit money from a customer's bank account using a
57
+ # Paykey. Each charge includes automatic balance verification, real-time fraud
58
+ # screening, and multi-rail optimization and detailed status tracking throughout
59
+ # the payment lifecycle. Use charges to accept bank payments with confidence
60
+ # knowing every transaction is protected.
39
61
  sig { returns(Straddle::Resources::Charges) }
40
62
  attr_reader :charges
41
63
 
64
+ # Funding events represent all money movement between Straddle and an Account's
65
+ # external bank accounts. They are automatically generated when charges settle or
66
+ # payouts are initiated. Each event provides detailed tracking of settlement
67
+ # status, fee breakdowns, and reconciliation data across both incoming and
68
+ # outgoing transfers. Use funding events to monitor your platform's entire money
69
+ # movement lifecycle.
42
70
  sig { returns(Straddle::Resources::FundingEvents) }
43
71
  attr_reader :funding_events
44
72
 
73
+ # Payments provide endpoints to filter both Charges and Payouts with multiple
74
+ # different parameters.
45
75
  sig { returns(Straddle::Resources::Payments) }
46
76
  attr_reader :payments
47
77
 
78
+ # Payouts represent transfers from Straddle to customer bank accounts. Create
79
+ # payouts to handle disbursements, process refunds, or manage marketplace
80
+ # settlements. Use payouts to send money quickly and securely with the most
81
+ # cost-effective rail automatically selected.
48
82
  sig { returns(Straddle::Resources::Payouts) }
49
83
  attr_reader :payouts
50
84
 
@@ -296,11 +296,31 @@ module Straddle
296
296
  end
297
297
 
298
298
  JSON_CONTENT =
299
- T.let(%r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}, Regexp)
299
+ T.let(%r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}, Regexp)
300
300
  JSONL_CONTENT =
301
301
  T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
302
 
303
303
  class << self
304
+ # @api private
305
+ sig do
306
+ params(query: Straddle::Internal::AnyHash).returns(
307
+ Straddle::Internal::AnyHash
308
+ )
309
+ end
310
+ def encode_query_params(query)
311
+ end
312
+
313
+ # @api private
314
+ sig do
315
+ params(
316
+ collection: Straddle::Internal::AnyHash,
317
+ key: String,
318
+ element: T.anything
319
+ ).void
320
+ end
321
+ private def write_query_param_element!(collection, key, element)
322
+ end
323
+
304
324
  # @api private
305
325
  sig do
306
326
  params(
@@ -549,6 +549,11 @@ module Straddle
549
549
  :review,
550
550
  Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::Status::TaggedSymbol
551
551
  )
552
+ BLOCKED =
553
+ T.let(
554
+ :blocked,
555
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::Status::TaggedSymbol
556
+ )
552
557
 
553
558
  sig do
554
559
  override.returns(
@@ -932,6 +937,41 @@ module Straddle
932
937
  :payout_refused,
933
938
  Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
934
939
  )
940
+ CANCEL_REQUEST =
941
+ T.let(
942
+ :cancel_request,
943
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
944
+ )
945
+ FAILED_VERIFICATION =
946
+ T.let(
947
+ :failed_verification,
948
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
949
+ )
950
+ REQUIRE_REVIEW =
951
+ T.let(
952
+ :require_review,
953
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
954
+ )
955
+ BLOCKED_BY_SYSTEM =
956
+ T.let(
957
+ :blocked_by_system,
958
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
959
+ )
960
+ WATCHTOWER_REVIEW =
961
+ T.let(
962
+ :watchtower_review,
963
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
964
+ )
965
+ VALIDATING =
966
+ T.let(
967
+ :validating,
968
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
969
+ )
970
+ AUTO_HOLD =
971
+ T.let(
972
+ :auto_hold,
973
+ Straddle::Models::Bridge::LinkCreatePaykeyResponse::Data::StatusDetails::Reason::TaggedSymbol
974
+ )
935
975
 
936
976
  sig do
937
977
  override.returns(
@@ -545,6 +545,11 @@ module Straddle
545
545
  :review,
546
546
  Straddle::Models::Bridge::LinkCreateTanResponse::Data::Status::TaggedSymbol
547
547
  )
548
+ BLOCKED =
549
+ T.let(
550
+ :blocked,
551
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::Status::TaggedSymbol
552
+ )
548
553
 
549
554
  sig do
550
555
  override.returns(
@@ -928,6 +933,41 @@ module Straddle
928
933
  :payout_refused,
929
934
  Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
930
935
  )
936
+ CANCEL_REQUEST =
937
+ T.let(
938
+ :cancel_request,
939
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
940
+ )
941
+ FAILED_VERIFICATION =
942
+ T.let(
943
+ :failed_verification,
944
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
945
+ )
946
+ REQUIRE_REVIEW =
947
+ T.let(
948
+ :require_review,
949
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
950
+ )
951
+ BLOCKED_BY_SYSTEM =
952
+ T.let(
953
+ :blocked_by_system,
954
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
955
+ )
956
+ WATCHTOWER_REVIEW =
957
+ T.let(
958
+ :watchtower_review,
959
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
960
+ )
961
+ VALIDATING =
962
+ T.let(
963
+ :validating,
964
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
965
+ )
966
+ AUTO_HOLD =
967
+ T.let(
968
+ :auto_hold,
969
+ Straddle::Models::Bridge::LinkCreateTanResponse::Data::StatusDetails::Reason::TaggedSymbol
970
+ )
931
971
 
932
972
  sig do
933
973
  override.returns(
@@ -11,6 +11,9 @@ module Straddle
11
11
  T.any(Straddle::ChargeCancelParams, Straddle::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  # Details about why the charge status was updated.
15
18
  sig { returns(T.nilable(String)) }
16
19
  attr_accessor :reason
@@ -41,6 +44,7 @@ module Straddle
41
44
 
42
45
  sig do
43
46
  params(
47
+ id: String,
44
48
  reason: T.nilable(String),
45
49
  correlation_id: String,
46
50
  idempotency_key: String,
@@ -50,6 +54,7 @@ module Straddle
50
54
  ).returns(T.attached_class)
51
55
  end
52
56
  def self.new(
57
+ id:,
53
58
  # Details about why the charge status was updated.
54
59
  reason: nil,
55
60
  correlation_id: nil,
@@ -63,6 +68,7 @@ module Straddle
63
68
  sig do
64
69
  override.returns(
65
70
  {
71
+ id: String,
66
72
  reason: T.nilable(String),
67
73
  correlation_id: String,
68
74
  idempotency_key: String,
@@ -33,7 +33,7 @@ module Straddle
33
33
  attr_accessor :currency
34
34
 
35
35
  # An arbitrary description for the charge.
36
- sig { returns(String) }
36
+ sig { returns(T.nilable(String)) }
37
37
  attr_accessor :description
38
38
 
39
39
  sig { returns(Straddle::DeviceInfoV1) }
@@ -91,7 +91,7 @@ module Straddle
91
91
  config: Straddle::ChargeCreateParams::Config::OrHash,
92
92
  consent_type: Straddle::ChargeCreateParams::ConsentType::OrSymbol,
93
93
  currency: String,
94
- description: String,
94
+ description: T.nilable(String),
95
95
  device: Straddle::DeviceInfoV1::OrHash,
96
96
  external_id: String,
97
97
  paykey: String,
@@ -144,7 +144,7 @@ module Straddle
144
144
  config: Straddle::ChargeCreateParams::Config,
145
145
  consent_type: Straddle::ChargeCreateParams::ConsentType::OrSymbol,
146
146
  currency: String,
147
- description: String,
147
+ description: T.nilable(String),
148
148
  device: Straddle::DeviceInfoV1,
149
149
  external_id: String,
150
150
  paykey: String,
@@ -176,6 +176,14 @@ module Straddle
176
176
  end
177
177
  attr_accessor :balance_check
178
178
 
179
+ # Defines whether to automatically place this charge on hold after being created.
180
+ sig { returns(T.nilable(T::Boolean)) }
181
+ attr_accessor :auto_hold
182
+
183
+ # The reason the charge is being automatically held on creation.
184
+ sig { returns(T.nilable(String)) }
185
+ attr_accessor :auto_hold_message
186
+
179
187
  # Payment will simulate processing if not Standard.
180
188
  sig do
181
189
  returns(
@@ -198,6 +206,8 @@ module Straddle
198
206
  params(
199
207
  balance_check:
200
208
  Straddle::ChargeCreateParams::Config::BalanceCheck::OrSymbol,
209
+ auto_hold: T.nilable(T::Boolean),
210
+ auto_hold_message: T.nilable(String),
201
211
  sandbox_outcome:
202
212
  Straddle::ChargeCreateParams::Config::SandboxOutcome::OrSymbol
203
213
  ).returns(T.attached_class)
@@ -205,6 +215,10 @@ module Straddle
205
215
  def self.new(
206
216
  # Defines whether to check the customer's balance before processing the charge.
207
217
  balance_check:,
218
+ # Defines whether to automatically place this charge on hold after being created.
219
+ auto_hold: nil,
220
+ # The reason the charge is being automatically held on creation.
221
+ auto_hold_message: nil,
208
222
  # Payment will simulate processing if not Standard.
209
223
  sandbox_outcome: nil
210
224
  )
@@ -215,6 +229,8 @@ module Straddle
215
229
  {
216
230
  balance_check:
217
231
  Straddle::ChargeCreateParams::Config::BalanceCheck::OrSymbol,
232
+ auto_hold: T.nilable(T::Boolean),
233
+ auto_hold_message: T.nilable(String),
218
234
  sandbox_outcome:
219
235
  Straddle::ChargeCreateParams::Config::SandboxOutcome::OrSymbol
220
236
  }
@@ -11,6 +11,9 @@ module Straddle
11
11
  T.any(Straddle::ChargeGetParams, Straddle::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  sig { returns(T.nilable(String)) }
15
18
  attr_reader :correlation_id
16
19
 
@@ -31,6 +34,7 @@ module Straddle
31
34
 
32
35
  sig do
33
36
  params(
37
+ id: String,
34
38
  correlation_id: String,
35
39
  request_id: String,
36
40
  straddle_account_id: String,
@@ -38,6 +42,7 @@ module Straddle
38
42
  ).returns(T.attached_class)
39
43
  end
40
44
  def self.new(
45
+ id:,
41
46
  correlation_id: nil,
42
47
  request_id: nil,
43
48
  straddle_account_id: nil,
@@ -48,6 +53,7 @@ module Straddle
48
53
  sig do
49
54
  override.returns(
50
55
  {
56
+ id: String,
51
57
  correlation_id: String,
52
58
  request_id: String,
53
59
  straddle_account_id: String,
@@ -11,6 +11,9 @@ module Straddle
11
11
  T.any(Straddle::ChargeHoldParams, Straddle::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  # Details about why the charge status was updated.
15
18
  sig { returns(T.nilable(String)) }
16
19
  attr_accessor :reason
@@ -41,6 +44,7 @@ module Straddle
41
44
 
42
45
  sig do
43
46
  params(
47
+ id: String,
44
48
  reason: T.nilable(String),
45
49
  correlation_id: String,
46
50
  idempotency_key: String,
@@ -50,6 +54,7 @@ module Straddle
50
54
  ).returns(T.attached_class)
51
55
  end
52
56
  def self.new(
57
+ id:,
53
58
  # Details about why the charge status was updated.
54
59
  reason: nil,
55
60
  correlation_id: nil,
@@ -63,6 +68,7 @@ module Straddle
63
68
  sig do
64
69
  override.returns(
65
70
  {
71
+ id: String,
66
72
  reason: T.nilable(String),
67
73
  correlation_id: String,
68
74
  idempotency_key: String,
@@ -11,6 +11,9 @@ module Straddle
11
11
  T.any(Straddle::ChargeReleaseParams, Straddle::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  # Details about why the charge status was updated.
15
18
  sig { returns(T.nilable(String)) }
16
19
  attr_accessor :reason
@@ -41,6 +44,7 @@ module Straddle
41
44
 
42
45
  sig do
43
46
  params(
47
+ id: String,
44
48
  reason: T.nilable(String),
45
49
  correlation_id: String,
46
50
  idempotency_key: String,
@@ -50,6 +54,7 @@ module Straddle
50
54
  ).returns(T.attached_class)
51
55
  end
52
56
  def self.new(
57
+ id:,
53
58
  # Details about why the charge status was updated.
54
59
  reason: nil,
55
60
  correlation_id: nil,
@@ -63,6 +68,7 @@ module Straddle
63
68
  sig do
64
69
  override.returns(
65
70
  {
71
+ id: String,
66
72
  reason: T.nilable(String),
67
73
  correlation_id: String,
68
74
  idempotency_key: String,
@@ -11,6 +11,9 @@ module Straddle
11
11
  T.any(Straddle::ChargeUnmaskParams, Straddle::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  sig { returns(T.nilable(String)) }
15
18
  attr_reader :correlation_id
16
19
 
@@ -31,6 +34,7 @@ module Straddle
31
34
 
32
35
  sig do
33
36
  params(
37
+ id: String,
34
38
  correlation_id: String,
35
39
  request_id: String,
36
40
  straddle_account_id: String,
@@ -38,6 +42,7 @@ module Straddle
38
42
  ).returns(T.attached_class)
39
43
  end
40
44
  def self.new(
45
+ id:,
41
46
  correlation_id: nil,
42
47
  request_id: nil,
43
48
  straddle_account_id: nil,
@@ -48,6 +53,7 @@ module Straddle
48
53
  sig do
49
54
  override.returns(
50
55
  {
56
+ id: String,
51
57
  correlation_id: String,
52
58
  request_id: String,
53
59
  straddle_account_id: String,