straddle 0.4.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/README.md +23 -1
  4. data/lib/straddle/client.rb +15 -1
  5. data/lib/straddle/internal/transport/base_client.rb +5 -0
  6. data/lib/straddle/internal/util.rb +22 -7
  7. data/lib/straddle/models/charge_create_params.rb +2 -0
  8. data/lib/straddle/models/charge_unmask_response.rb +142 -11
  9. data/lib/straddle/models/charge_v1.rb +140 -11
  10. data/lib/straddle/models/embed/account_list_params.rb +8 -1
  11. data/lib/straddle/models/embed/representative.rb +2 -2
  12. data/lib/straddle/models/embed/representative_create_params.rb +2 -2
  13. data/lib/straddle/models/embed/representative_paged.rb +2 -2
  14. data/lib/straddle/models/embed/representative_update_params.rb +2 -2
  15. data/lib/straddle/models/paykey_list_params.rb +17 -1
  16. data/lib/straddle/models/payment_list_params.rb +55 -1
  17. data/lib/straddle/models/payment_summary_paged_v1.rb +98 -1
  18. data/lib/straddle/models/payout_create_params.rb +2 -0
  19. data/lib/straddle/models/payout_unmask_response.rb +145 -11
  20. data/lib/straddle/models/payout_upload_authorization_document_params.rb +57 -0
  21. data/lib/straddle/models/payout_v1.rb +140 -11
  22. data/lib/straddle/models.rb +2 -0
  23. data/lib/straddle/resources/embed/accounts.rb +5 -2
  24. data/lib/straddle/resources/paykeys.rb +7 -1
  25. data/lib/straddle/resources/payments.rb +19 -1
  26. data/lib/straddle/resources/payouts.rb +49 -0
  27. data/lib/straddle/version.rb +1 -1
  28. data/lib/straddle.rb +1 -0
  29. data/rbi/straddle/internal/util.rbi +8 -0
  30. data/rbi/straddle/models/charge_create_params.rbi +10 -0
  31. data/rbi/straddle/models/charge_unmask_response.rbi +287 -34
  32. data/rbi/straddle/models/charge_v1.rbi +268 -39
  33. data/rbi/straddle/models/embed/account_list_params.rbi +9 -0
  34. data/rbi/straddle/models/embed/representative.rbi +2 -2
  35. data/rbi/straddle/models/embed/representative_create_params.rbi +2 -2
  36. data/rbi/straddle/models/embed/representative_paged.rbi +2 -2
  37. data/rbi/straddle/models/embed/representative_update_params.rbi +2 -2
  38. data/rbi/straddle/models/paykey_list_params.rbi +22 -0
  39. data/rbi/straddle/models/payment_list_params.rbi +75 -0
  40. data/rbi/straddle/models/payment_summary_paged_v1.rbi +198 -3
  41. data/rbi/straddle/models/payout_create_params.rbi +10 -0
  42. data/rbi/straddle/models/payout_unmask_response.rbi +287 -34
  43. data/rbi/straddle/models/payout_upload_authorization_document_params.rbi +88 -0
  44. data/rbi/straddle/models/payout_v1.rbi +268 -39
  45. data/rbi/straddle/models.rbi +3 -0
  46. data/rbi/straddle/resources/embed/accounts.rbi +3 -0
  47. data/rbi/straddle/resources/paykeys.rbi +6 -0
  48. data/rbi/straddle/resources/payments.rbi +20 -0
  49. data/rbi/straddle/resources/payouts.rbi +33 -0
  50. data/sig/straddle/internal/util.rbs +4 -0
  51. data/sig/straddle/models/charge_create_params.rbs +4 -0
  52. data/sig/straddle/models/charge_unmask_response.rbs +120 -11
  53. data/sig/straddle/models/charge_v1.rbs +120 -11
  54. data/sig/straddle/models/embed/account_list_params.rbs +7 -0
  55. data/sig/straddle/models/paykey_list_params.rbs +14 -0
  56. data/sig/straddle/models/payment_list_params.rbs +57 -2
  57. data/sig/straddle/models/payment_summary_paged_v1.rbs +78 -3
  58. data/sig/straddle/models/payout_create_params.rbs +4 -0
  59. data/sig/straddle/models/payout_unmask_response.rbs +120 -11
  60. data/sig/straddle/models/payout_upload_authorization_document_params.rbs +59 -0
  61. data/sig/straddle/models/payout_v1.rbs +120 -11
  62. data/sig/straddle/models.rbs +2 -0
  63. data/sig/straddle/resources/embed/accounts.rbs +1 -0
  64. data/sig/straddle/resources/paykeys.rbs +2 -0
  65. data/sig/straddle/resources/payments.rbs +6 -0
  66. data/sig/straddle/resources/payouts.rbs +10 -0
  67. metadata +5 -2
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Straddle
4
- VERSION = "0.4.0"
4
+ VERSION = "0.5.0"
5
5
  end
data/lib/straddle.rb CHANGED
@@ -156,6 +156,7 @@ require_relative "straddle/models/payout_release_params"
156
156
  require_relative "straddle/models/payout_unmask_params"
157
157
  require_relative "straddle/models/payout_unmask_response"
158
158
  require_relative "straddle/models/payout_update_params"
159
+ require_relative "straddle/models/payout_upload_authorization_document_params"
159
160
  require_relative "straddle/models/payout_v1"
160
161
  require_relative "straddle/models/report_create_total_customers_by_status_params"
161
162
  require_relative "straddle/models/report_create_total_customers_by_status_response"
@@ -148,12 +148,20 @@ module Straddle
148
148
  end
149
149
  end
150
150
 
151
+ # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
152
+ RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp)
153
+
151
154
  class << self
152
155
  # @api private
153
156
  sig { params(uri: URI::Generic).returns(String) }
154
157
  def uri_origin(uri)
155
158
  end
156
159
 
160
+ # @api private
161
+ sig { params(path: T.any(String, Integer)).returns(String) }
162
+ def encode_path(path)
163
+ end
164
+
157
165
  # @api private
158
166
  sig { params(path: T.any(String, T::Array[String])).returns(String) }
159
167
  def interpolate_path(path)
@@ -344,6 +344,16 @@ module Straddle
344
344
  :reversed_closed_bank_account,
345
345
  Straddle::ChargeCreateParams::Config::SandboxOutcome::TaggedSymbol
346
346
  )
347
+ FAILED_NOT_AUTHORIZED =
348
+ T.let(
349
+ :failed_not_authorized,
350
+ Straddle::ChargeCreateParams::Config::SandboxOutcome::TaggedSymbol
351
+ )
352
+ REVERSED_NOT_AUTHORIZED =
353
+ T.let(
354
+ :reversed_not_authorized,
355
+ Straddle::ChargeCreateParams::Config::SandboxOutcome::TaggedSymbol
356
+ )
347
357
 
348
358
  sig do
349
359
  override.returns(
@@ -144,6 +144,18 @@ module Straddle
144
144
  sig { returns(T::Array[String]) }
145
145
  attr_accessor :funding_ids
146
146
 
147
+ # Has the charge been refunded by an associated payout.
148
+ sig { returns(T::Boolean) }
149
+ attr_accessor :has_refund
150
+
151
+ # Has the charge been resubmitted.
152
+ sig { returns(T::Boolean) }
153
+ attr_accessor :has_resubmit
154
+
155
+ # Is the charge a resubmit of an original charge.
156
+ sig { returns(T::Boolean) }
157
+ attr_accessor :is_resubmit
158
+
147
159
  # Paykey.
148
160
  sig { returns(String) }
149
161
  attr_accessor :paykey
@@ -193,6 +205,17 @@ module Straddle
193
205
  end
194
206
  attr_writer :customer_details
195
207
 
208
+ # Documents uploaded for this charge (e.g. proof of authorization), in the order
209
+ # they were uploaded.
210
+ sig do
211
+ returns(
212
+ T.nilable(
213
+ T::Array[Straddle::Models::ChargeUnmaskResponse::Data::Document]
214
+ )
215
+ )
216
+ end
217
+ attr_accessor :documents
218
+
196
219
  # Effective at.
197
220
  sig { returns(T.nilable(Time)) }
198
221
  attr_accessor :effective_at
@@ -233,9 +256,8 @@ module Straddle
233
256
  sig do
234
257
  returns(
235
258
  T.nilable(
236
- T::Hash[
237
- Symbol,
238
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::TaggedSymbol
259
+ T::Array[
260
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment
239
261
  ]
240
262
  )
241
263
  )
@@ -257,6 +279,9 @@ module Straddle
257
279
  Straddle::Models::ChargeUnmaskResponse::Data::Device::OrHash,
258
280
  external_id: String,
259
281
  funding_ids: T::Array[String],
282
+ has_refund: T::Boolean,
283
+ has_resubmit: T::Boolean,
284
+ is_resubmit: T::Boolean,
260
285
  paykey: String,
261
286
  payment_date: Date,
262
287
  status:
@@ -269,6 +294,12 @@ module Straddle
269
294
  trace_ids: T::Hash[Symbol, String],
270
295
  updated_at: Time,
271
296
  customer_details: Straddle::CustomerDetailsV1::OrHash,
297
+ documents:
298
+ T.nilable(
299
+ T::Array[
300
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::OrHash
301
+ ]
302
+ ),
272
303
  effective_at: T.nilable(Time),
273
304
  metadata: T.nilable(T::Hash[Symbol, String]),
274
305
  paykey_details: Straddle::PaykeyDetailsV1::OrHash,
@@ -277,9 +308,8 @@ module Straddle
277
308
  processed_at: T.nilable(Time),
278
309
  related_payments:
279
310
  T.nilable(
280
- T::Hash[
281
- Symbol,
282
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::OrSymbol
311
+ T::Array[
312
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::OrHash
283
313
  ]
284
314
  )
285
315
  ).returns(T.attached_class)
@@ -306,6 +336,12 @@ module Straddle
306
336
  external_id:,
307
337
  # Funding Ids
308
338
  funding_ids:,
339
+ # Has the charge been refunded by an associated payout.
340
+ has_refund:,
341
+ # Has the charge been resubmitted.
342
+ has_resubmit:,
343
+ # Is the charge a resubmit of an original charge.
344
+ is_resubmit:,
309
345
  # Paykey.
310
346
  paykey:,
311
347
  # Payment date.
@@ -321,6 +357,9 @@ module Straddle
321
357
  updated_at:,
322
358
  # Information about the customer associated with the charge or payout.
323
359
  customer_details: nil,
360
+ # Documents uploaded for this charge (e.g. proof of authorization), in the order
361
+ # they were uploaded.
362
+ documents: nil,
324
363
  # Effective at.
325
364
  effective_at: nil,
326
365
  # Metadata.
@@ -349,6 +388,9 @@ module Straddle
349
388
  device: Straddle::Models::ChargeUnmaskResponse::Data::Device,
350
389
  external_id: String,
351
390
  funding_ids: T::Array[String],
391
+ has_refund: T::Boolean,
392
+ has_resubmit: T::Boolean,
393
+ is_resubmit: T::Boolean,
352
394
  paykey: String,
353
395
  payment_date: Date,
354
396
  status:
@@ -361,6 +403,12 @@ module Straddle
361
403
  trace_ids: T::Hash[Symbol, String],
362
404
  updated_at: Time,
363
405
  customer_details: Straddle::CustomerDetailsV1,
406
+ documents:
407
+ T.nilable(
408
+ T::Array[
409
+ Straddle::Models::ChargeUnmaskResponse::Data::Document
410
+ ]
411
+ ),
364
412
  effective_at: T.nilable(Time),
365
413
  metadata: T.nilable(T::Hash[Symbol, String]),
366
414
  paykey_details: Straddle::PaykeyDetailsV1,
@@ -369,9 +417,8 @@ module Straddle
369
417
  processed_at: T.nilable(Time),
370
418
  related_payments:
371
419
  T.nilable(
372
- T::Hash[
373
- Symbol,
374
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::TaggedSymbol
420
+ T::Array[
421
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment
375
422
  ]
376
423
  )
377
424
  }
@@ -568,6 +615,16 @@ module Straddle
568
615
  :reversed_closed_bank_account,
569
616
  Straddle::Models::ChargeUnmaskResponse::Data::Config::SandboxOutcome::TaggedSymbol
570
617
  )
618
+ FAILED_NOT_AUTHORIZED =
619
+ T.let(
620
+ :failed_not_authorized,
621
+ Straddle::Models::ChargeUnmaskResponse::Data::Config::SandboxOutcome::TaggedSymbol
622
+ )
623
+ REVERSED_NOT_AUTHORIZED =
624
+ T.let(
625
+ :reversed_not_authorized,
626
+ Straddle::Models::ChargeUnmaskResponse::Data::Config::SandboxOutcome::TaggedSymbol
627
+ )
571
628
 
572
629
  sig do
573
630
  override.returns(
@@ -1093,6 +1150,106 @@ module Straddle
1093
1150
  end
1094
1151
  end
1095
1152
 
1153
+ class Document < Straddle::Internal::Type::BaseModel
1154
+ OrHash =
1155
+ T.type_alias do
1156
+ T.any(
1157
+ Straddle::Models::ChargeUnmaskResponse::Data::Document,
1158
+ Straddle::Internal::AnyHash
1159
+ )
1160
+ end
1161
+
1162
+ # Unique identifier for this document.
1163
+ sig { returns(String) }
1164
+ attr_accessor :document_id
1165
+
1166
+ # The file name of this document as uploaded.
1167
+ sig { returns(String) }
1168
+ attr_accessor :document_name
1169
+
1170
+ # The size of this document in bytes.
1171
+ sig { returns(Integer) }
1172
+ attr_accessor :document_size
1173
+
1174
+ sig do
1175
+ returns(
1176
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::DocumentType::TaggedSymbol
1177
+ )
1178
+ end
1179
+ attr_accessor :document_type
1180
+
1181
+ # The UTC timestamp when this document was uploaded.
1182
+ sig { returns(Time) }
1183
+ attr_accessor :uploaded_at
1184
+
1185
+ sig do
1186
+ params(
1187
+ document_id: String,
1188
+ document_name: String,
1189
+ document_size: Integer,
1190
+ document_type:
1191
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::DocumentType::OrSymbol,
1192
+ uploaded_at: Time
1193
+ ).returns(T.attached_class)
1194
+ end
1195
+ def self.new(
1196
+ # Unique identifier for this document.
1197
+ document_id:,
1198
+ # The file name of this document as uploaded.
1199
+ document_name:,
1200
+ # The size of this document in bytes.
1201
+ document_size:,
1202
+ document_type:,
1203
+ # The UTC timestamp when this document was uploaded.
1204
+ uploaded_at:
1205
+ )
1206
+ end
1207
+
1208
+ sig do
1209
+ override.returns(
1210
+ {
1211
+ document_id: String,
1212
+ document_name: String,
1213
+ document_size: Integer,
1214
+ document_type:
1215
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::DocumentType::TaggedSymbol,
1216
+ uploaded_at: Time
1217
+ }
1218
+ )
1219
+ end
1220
+ def to_hash
1221
+ end
1222
+
1223
+ module DocumentType
1224
+ extend Straddle::Internal::Type::Enum
1225
+
1226
+ TaggedSymbol =
1227
+ T.type_alias do
1228
+ T.all(
1229
+ Symbol,
1230
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::DocumentType
1231
+ )
1232
+ end
1233
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1234
+
1235
+ PAYMENT_AUTHORIZATION =
1236
+ T.let(
1237
+ :payment_authorization,
1238
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::DocumentType::TaggedSymbol
1239
+ )
1240
+
1241
+ sig do
1242
+ override.returns(
1243
+ T::Array[
1244
+ Straddle::Models::ChargeUnmaskResponse::Data::Document::DocumentType::TaggedSymbol
1245
+ ]
1246
+ )
1247
+ end
1248
+ def self.values
1249
+ end
1250
+ end
1251
+ end
1252
+
1096
1253
  # The payment rail used for the charge or payout.
1097
1254
  module PaymentRail
1098
1255
  extend Straddle::Internal::Type::Enum
@@ -1123,42 +1280,138 @@ module Straddle
1123
1280
  end
1124
1281
  end
1125
1282
 
1126
- module RelatedPayment
1127
- extend Straddle::Internal::Type::Enum
1128
-
1129
- TaggedSymbol =
1283
+ class RelatedPayment < Straddle::Internal::Type::BaseModel
1284
+ OrHash =
1130
1285
  T.type_alias do
1131
- T.all(
1132
- Symbol,
1133
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment
1286
+ T.any(
1287
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment,
1288
+ Straddle::Internal::AnyHash
1134
1289
  )
1135
1290
  end
1136
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1137
1291
 
1138
- ORIGINAL =
1139
- T.let(
1140
- :original,
1141
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::TaggedSymbol
1142
- )
1143
- RESUBMIT =
1144
- T.let(
1145
- :resubmit,
1146
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::TaggedSymbol
1292
+ # The ID of the related payment.
1293
+ sig { returns(String) }
1294
+ attr_accessor :id
1295
+
1296
+ # The type of payment.
1297
+ sig do
1298
+ returns(
1299
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType::TaggedSymbol
1147
1300
  )
1148
- REFUND =
1149
- T.let(
1150
- :refund,
1151
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::TaggedSymbol
1301
+ end
1302
+ attr_accessor :payment_type
1303
+
1304
+ sig do
1305
+ returns(
1306
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::TaggedSymbol
1152
1307
  )
1308
+ end
1309
+ attr_accessor :relationship
1310
+
1311
+ sig do
1312
+ params(
1313
+ id: String,
1314
+ payment_type:
1315
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType::OrSymbol,
1316
+ relationship:
1317
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::OrSymbol
1318
+ ).returns(T.attached_class)
1319
+ end
1320
+ def self.new(
1321
+ # The ID of the related payment.
1322
+ id:,
1323
+ # The type of payment.
1324
+ payment_type:,
1325
+ relationship:
1326
+ )
1327
+ end
1153
1328
 
1154
1329
  sig do
1155
1330
  override.returns(
1156
- T::Array[
1157
- Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::TaggedSymbol
1158
- ]
1331
+ {
1332
+ id: String,
1333
+ payment_type:
1334
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType::TaggedSymbol,
1335
+ relationship:
1336
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::TaggedSymbol
1337
+ }
1159
1338
  )
1160
1339
  end
1161
- def self.values
1340
+ def to_hash
1341
+ end
1342
+
1343
+ # The type of payment.
1344
+ module PaymentType
1345
+ extend Straddle::Internal::Type::Enum
1346
+
1347
+ TaggedSymbol =
1348
+ T.type_alias do
1349
+ T.all(
1350
+ Symbol,
1351
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType
1352
+ )
1353
+ end
1354
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1355
+
1356
+ CHARGE =
1357
+ T.let(
1358
+ :charge,
1359
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType::TaggedSymbol
1360
+ )
1361
+ PAYOUT =
1362
+ T.let(
1363
+ :payout,
1364
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType::TaggedSymbol
1365
+ )
1366
+
1367
+ sig do
1368
+ override.returns(
1369
+ T::Array[
1370
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::PaymentType::TaggedSymbol
1371
+ ]
1372
+ )
1373
+ end
1374
+ def self.values
1375
+ end
1376
+ end
1377
+
1378
+ module Relationship
1379
+ extend Straddle::Internal::Type::Enum
1380
+
1381
+ TaggedSymbol =
1382
+ T.type_alias do
1383
+ T.all(
1384
+ Symbol,
1385
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship
1386
+ )
1387
+ end
1388
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1389
+
1390
+ ORIGINAL =
1391
+ T.let(
1392
+ :original,
1393
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::TaggedSymbol
1394
+ )
1395
+ RESUBMIT =
1396
+ T.let(
1397
+ :resubmit,
1398
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::TaggedSymbol
1399
+ )
1400
+ REFUND =
1401
+ T.let(
1402
+ :refund,
1403
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::TaggedSymbol
1404
+ )
1405
+
1406
+ sig do
1407
+ override.returns(
1408
+ T::Array[
1409
+ Straddle::Models::ChargeUnmaskResponse::Data::RelatedPayment::Relationship::TaggedSymbol
1410
+ ]
1411
+ )
1412
+ end
1413
+ def self.values
1414
+ end
1162
1415
  end
1163
1416
  end
1164
1417
  end