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
@@ -66,6 +66,21 @@ module Straddle
66
66
  sig { params(funding_id: String).void }
67
67
  attr_writer :funding_id
68
68
 
69
+ # Has the payment been refunded by an associated payout (only applicable to
70
+ # charges).
71
+ sig { returns(T.nilable(T::Boolean)) }
72
+ attr_reader :has_refund
73
+
74
+ sig { params(has_refund: T::Boolean).void }
75
+ attr_writer :has_refund
76
+
77
+ # Has the payment been resubmitted.
78
+ sig { returns(T.nilable(T::Boolean)) }
79
+ attr_reader :has_resubmit
80
+
81
+ sig { params(has_resubmit: T::Boolean).void }
82
+ attr_writer :has_resubmit
83
+
69
84
  # Include the metadata for payments in the returned data.
70
85
  sig { returns(T.nilable(T::Boolean)) }
71
86
  attr_reader :include_metadata
@@ -73,6 +88,20 @@ module Straddle
73
88
  sig { params(include_metadata: T::Boolean).void }
74
89
  attr_writer :include_metadata
75
90
 
91
+ # Is the payment a refund of an original charge (only applicable to payouts).
92
+ sig { returns(T.nilable(T::Boolean)) }
93
+ attr_reader :is_refund
94
+
95
+ sig { params(is_refund: T::Boolean).void }
96
+ attr_writer :is_refund
97
+
98
+ # Is the payment a resubmit of an original payment.
99
+ sig { returns(T.nilable(T::Boolean)) }
100
+ attr_reader :is_resubmit
101
+
102
+ sig { params(is_resubmit: T::Boolean).void }
103
+ attr_writer :is_resubmit
104
+
76
105
  # Search using a maximum `amount` of a `charge` or `payout`.
77
106
  sig { returns(T.nilable(Integer)) }
78
107
  attr_reader :max_amount
@@ -101,6 +130,13 @@ module Straddle
101
130
  sig { params(max_payment_date: Date).void }
102
131
  attr_writer :max_payment_date
103
132
 
133
+ # Filter to payments last updated on or before this timestamp.
134
+ sig { returns(T.nilable(Time)) }
135
+ attr_reader :max_updated_at
136
+
137
+ sig { params(max_updated_at: Time).void }
138
+ attr_writer :max_updated_at
139
+
104
140
  # Search using the minimum `amount of a `charge`or`payout`.
105
141
  sig { returns(T.nilable(Integer)) }
106
142
  attr_reader :min_amount
@@ -129,6 +165,13 @@ module Straddle
129
165
  sig { params(min_payment_date: Date).void }
130
166
  attr_writer :min_payment_date
131
167
 
168
+ # Filter to payments last updated on or after this timestamp.
169
+ sig { returns(T.nilable(Time)) }
170
+ attr_reader :min_updated_at
171
+
172
+ sig { params(min_updated_at: Time).void }
173
+ attr_writer :min_updated_at
174
+
132
175
  # Results page number. Starts at page 1.
133
176
  sig { returns(T.nilable(Integer)) }
134
177
  attr_reader :page_number
@@ -291,15 +334,21 @@ module Straddle
291
334
  Straddle::PaymentListParams::DefaultSortOrder::OrSymbol,
292
335
  external_id: String,
293
336
  funding_id: String,
337
+ has_refund: T::Boolean,
338
+ has_resubmit: T::Boolean,
294
339
  include_metadata: T::Boolean,
340
+ is_refund: T::Boolean,
341
+ is_resubmit: T::Boolean,
295
342
  max_amount: Integer,
296
343
  max_created_at: Time,
297
344
  max_effective_at: Time,
298
345
  max_payment_date: Date,
346
+ max_updated_at: Time,
299
347
  min_amount: Integer,
300
348
  min_created_at: Time,
301
349
  min_effective_at: Time,
302
350
  min_payment_date: Date,
351
+ min_updated_at: Time,
303
352
  page_number: Integer,
304
353
  page_size: Integer,
305
354
  paykey: String,
@@ -333,8 +382,17 @@ module Straddle
333
382
  external_id: nil,
334
383
  # Search using the `funding_id` of a `charge` or `payout`.
335
384
  funding_id: nil,
385
+ # Has the payment been refunded by an associated payout (only applicable to
386
+ # charges).
387
+ has_refund: nil,
388
+ # Has the payment been resubmitted.
389
+ has_resubmit: nil,
336
390
  # Include the metadata for payments in the returned data.
337
391
  include_metadata: nil,
392
+ # Is the payment a refund of an original charge (only applicable to payouts).
393
+ is_refund: nil,
394
+ # Is the payment a resubmit of an original payment.
395
+ is_resubmit: nil,
338
396
  # Search using a maximum `amount` of a `charge` or `payout`.
339
397
  max_amount: nil,
340
398
  # Search using the latest `created_at` date of a `charge` or `payout`.
@@ -343,6 +401,8 @@ module Straddle
343
401
  max_effective_at: nil,
344
402
  # Search using the latest `payment_date` of a `charge` or `payout`.
345
403
  max_payment_date: nil,
404
+ # Filter to payments last updated on or before this timestamp.
405
+ max_updated_at: nil,
346
406
  # Search using the minimum `amount of a `charge`or`payout`.
347
407
  min_amount: nil,
348
408
  # Search using the earliest `created_at` date of a `charge` or `payout`.
@@ -351,6 +411,8 @@ module Straddle
351
411
  min_effective_at: nil,
352
412
  # Search using the earliest ` `of a `charge` or `payout`.
353
413
  min_payment_date: nil,
414
+ # Filter to payments last updated on or after this timestamp.
415
+ min_updated_at: nil,
354
416
  # Results page number. Starts at page 1.
355
417
  page_number: nil,
356
418
  # Results page size. Max value: 1000
@@ -391,15 +453,21 @@ module Straddle
391
453
  Straddle::PaymentListParams::DefaultSortOrder::OrSymbol,
392
454
  external_id: String,
393
455
  funding_id: String,
456
+ has_refund: T::Boolean,
457
+ has_resubmit: T::Boolean,
394
458
  include_metadata: T::Boolean,
459
+ is_refund: T::Boolean,
460
+ is_resubmit: T::Boolean,
395
461
  max_amount: Integer,
396
462
  max_created_at: Time,
397
463
  max_effective_at: Time,
398
464
  max_payment_date: Date,
465
+ max_updated_at: Time,
399
466
  min_amount: Integer,
400
467
  min_created_at: Time,
401
468
  min_effective_at: Time,
402
469
  min_payment_date: Date,
470
+ min_updated_at: Time,
403
471
  page_number: Integer,
404
472
  page_size: Integer,
405
473
  paykey: String,
@@ -454,6 +522,11 @@ module Straddle
454
522
  ID = T.let(:id, Straddle::PaymentListParams::DefaultSort::TaggedSymbol)
455
523
  AMOUNT =
456
524
  T.let(:amount, Straddle::PaymentListParams::DefaultSort::TaggedSymbol)
525
+ UPDATED_AT =
526
+ T.let(
527
+ :updated_at,
528
+ Straddle::PaymentListParams::DefaultSort::TaggedSymbol
529
+ )
457
530
 
458
531
  sig do
459
532
  override.returns(
@@ -604,6 +677,8 @@ module Straddle
604
677
  ID = T.let(:id, Straddle::PaymentListParams::SortBy::TaggedSymbol)
605
678
  AMOUNT =
606
679
  T.let(:amount, Straddle::PaymentListParams::SortBy::TaggedSymbol)
680
+ UPDATED_AT =
681
+ T.let(:updated_at, Straddle::PaymentListParams::SortBy::TaggedSymbol)
607
682
 
608
683
  sig do
609
684
  override.returns(
@@ -101,6 +101,23 @@ module Straddle
101
101
  sig { returns(T::Array[String]) }
102
102
  attr_accessor :funding_ids
103
103
 
104
+ # Has the payment been refunded by an associated payout (only applicable to
105
+ # charges).
106
+ sig { returns(T::Boolean) }
107
+ attr_accessor :has_refund
108
+
109
+ # Has the payment been resubmitted.
110
+ sig { returns(T::Boolean) }
111
+ attr_accessor :has_resubmit
112
+
113
+ # Is the payment a refund of an original charge (only applicable to payouts).
114
+ sig { returns(T::Boolean) }
115
+ attr_accessor :is_refund
116
+
117
+ # Is the payment a resubmit of an original payment.
118
+ sig { returns(T::Boolean) }
119
+ attr_accessor :is_resubmit
120
+
104
121
  # Value of the `paykey` used for the `charge` or `payout`.
105
122
  sig { returns(String) }
106
123
  attr_accessor :paykey
@@ -171,6 +188,17 @@ module Straddle
171
188
  sig { params(paykey_details: Straddle::PaykeyDetailsV1::OrHash).void }
172
189
  attr_writer :paykey_details
173
190
 
191
+ # Payments related to this one (e.g. refunds, resubmissions), mapped by payment ID
192
+ # to relationship type.
193
+ sig do
194
+ returns(
195
+ T.nilable(
196
+ T::Array[Straddle::PaymentSummaryPagedV1::Data::RelatedPayment]
197
+ )
198
+ )
199
+ end
200
+ attr_accessor :related_payments
201
+
174
202
  sig do
175
203
  params(
176
204
  id: String,
@@ -180,6 +208,10 @@ module Straddle
180
208
  description: T.nilable(String),
181
209
  external_id: String,
182
210
  funding_ids: T::Array[String],
211
+ has_refund: T::Boolean,
212
+ has_resubmit: T::Boolean,
213
+ is_refund: T::Boolean,
214
+ is_resubmit: T::Boolean,
183
215
  paykey: String,
184
216
  payment_date: Date,
185
217
  payment_type:
@@ -192,7 +224,13 @@ module Straddle
192
224
  effective_at: T.nilable(Time),
193
225
  funding_id: T.nilable(String),
194
226
  metadata: T.nilable(T::Hash[Symbol, String]),
195
- paykey_details: Straddle::PaykeyDetailsV1::OrHash
227
+ paykey_details: Straddle::PaykeyDetailsV1::OrHash,
228
+ related_payments:
229
+ T.nilable(
230
+ T::Array[
231
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::OrHash
232
+ ]
233
+ )
196
234
  ).returns(T.attached_class)
197
235
  end
198
236
  def self.new(
@@ -211,6 +249,15 @@ module Straddle
211
249
  external_id:,
212
250
  # Funding ids.
213
251
  funding_ids:,
252
+ # Has the payment been refunded by an associated payout (only applicable to
253
+ # charges).
254
+ has_refund:,
255
+ # Has the payment been resubmitted.
256
+ has_resubmit:,
257
+ # Is the payment a refund of an original charge (only applicable to payouts).
258
+ is_refund:,
259
+ # Is the payment a resubmit of an original payment.
260
+ is_resubmit:,
214
261
  # Value of the `paykey` used for the `charge` or `payout`.
215
262
  paykey:,
216
263
  # The desired date on which the payment should be occur. For charges, this means
@@ -239,7 +286,10 @@ module Straddle
239
286
  # Metadata for payment - only included if requested.
240
287
  metadata: nil,
241
288
  # Information about the paykey used for the `charge` or `payout`.
242
- paykey_details: nil
289
+ paykey_details: nil,
290
+ # Payments related to this one (e.g. refunds, resubmissions), mapped by payment ID
291
+ # to relationship type.
292
+ related_payments: nil
243
293
  )
244
294
  end
245
295
 
@@ -253,6 +303,10 @@ module Straddle
253
303
  description: T.nilable(String),
254
304
  external_id: String,
255
305
  funding_ids: T::Array[String],
306
+ has_refund: T::Boolean,
307
+ has_resubmit: T::Boolean,
308
+ is_refund: T::Boolean,
309
+ is_resubmit: T::Boolean,
256
310
  paykey: String,
257
311
  payment_date: Date,
258
312
  payment_type:
@@ -266,7 +320,13 @@ module Straddle
266
320
  effective_at: T.nilable(Time),
267
321
  funding_id: T.nilable(String),
268
322
  metadata: T.nilable(T::Hash[Symbol, String]),
269
- paykey_details: Straddle::PaykeyDetailsV1
323
+ paykey_details: Straddle::PaykeyDetailsV1,
324
+ related_payments:
325
+ T.nilable(
326
+ T::Array[
327
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment
328
+ ]
329
+ )
270
330
  }
271
331
  )
272
332
  end
@@ -371,6 +431,141 @@ module Straddle
371
431
  def self.values
372
432
  end
373
433
  end
434
+
435
+ class RelatedPayment < Straddle::Internal::Type::BaseModel
436
+ OrHash =
437
+ T.type_alias do
438
+ T.any(
439
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment,
440
+ Straddle::Internal::AnyHash
441
+ )
442
+ end
443
+
444
+ # The ID of the related payment.
445
+ sig { returns(String) }
446
+ attr_accessor :id
447
+
448
+ # The type of payment.
449
+ sig do
450
+ returns(
451
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType::TaggedSymbol
452
+ )
453
+ end
454
+ attr_accessor :payment_type
455
+
456
+ sig do
457
+ returns(
458
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::TaggedSymbol
459
+ )
460
+ end
461
+ attr_accessor :relationship
462
+
463
+ sig do
464
+ params(
465
+ id: String,
466
+ payment_type:
467
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType::OrSymbol,
468
+ relationship:
469
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::OrSymbol
470
+ ).returns(T.attached_class)
471
+ end
472
+ def self.new(
473
+ # The ID of the related payment.
474
+ id:,
475
+ # The type of payment.
476
+ payment_type:,
477
+ relationship:
478
+ )
479
+ end
480
+
481
+ sig do
482
+ override.returns(
483
+ {
484
+ id: String,
485
+ payment_type:
486
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType::TaggedSymbol,
487
+ relationship:
488
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::TaggedSymbol
489
+ }
490
+ )
491
+ end
492
+ def to_hash
493
+ end
494
+
495
+ # The type of payment.
496
+ module PaymentType
497
+ extend Straddle::Internal::Type::Enum
498
+
499
+ TaggedSymbol =
500
+ T.type_alias do
501
+ T.all(
502
+ Symbol,
503
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType
504
+ )
505
+ end
506
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
507
+
508
+ CHARGE =
509
+ T.let(
510
+ :charge,
511
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType::TaggedSymbol
512
+ )
513
+ PAYOUT =
514
+ T.let(
515
+ :payout,
516
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType::TaggedSymbol
517
+ )
518
+
519
+ sig do
520
+ override.returns(
521
+ T::Array[
522
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::PaymentType::TaggedSymbol
523
+ ]
524
+ )
525
+ end
526
+ def self.values
527
+ end
528
+ end
529
+
530
+ module Relationship
531
+ extend Straddle::Internal::Type::Enum
532
+
533
+ TaggedSymbol =
534
+ T.type_alias do
535
+ T.all(
536
+ Symbol,
537
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship
538
+ )
539
+ end
540
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
541
+
542
+ ORIGINAL =
543
+ T.let(
544
+ :original,
545
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::TaggedSymbol
546
+ )
547
+ RESUBMIT =
548
+ T.let(
549
+ :resubmit,
550
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::TaggedSymbol
551
+ )
552
+ REFUND =
553
+ T.let(
554
+ :refund,
555
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::TaggedSymbol
556
+ )
557
+
558
+ sig do
559
+ override.returns(
560
+ T::Array[
561
+ Straddle::PaymentSummaryPagedV1::Data::RelatedPayment::Relationship::TaggedSymbol
562
+ ]
563
+ )
564
+ end
565
+ def self.values
566
+ end
567
+ end
568
+ end
374
569
  end
375
570
 
376
571
  class Meta < Straddle::Internal::Type::BaseModel
@@ -283,6 +283,16 @@ module Straddle
283
283
  :reversed_closed_bank_account,
284
284
  Straddle::PayoutCreateParams::Config::SandboxOutcome::TaggedSymbol
285
285
  )
286
+ FAILED_NOT_AUTHORIZED =
287
+ T.let(
288
+ :failed_not_authorized,
289
+ Straddle::PayoutCreateParams::Config::SandboxOutcome::TaggedSymbol
290
+ )
291
+ REVERSED_NOT_AUTHORIZED =
292
+ T.let(
293
+ :reversed_not_authorized,
294
+ Straddle::PayoutCreateParams::Config::SandboxOutcome::TaggedSymbol
295
+ )
286
296
 
287
297
  sig do
288
298
  override.returns(