increase 1.113.0 → 1.114.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/increase/client.rb +8 -0
  5. data/lib/increase/models/fednow_transfer.rb +516 -0
  6. data/lib/increase/models/fednow_transfer_approve_params.rb +14 -0
  7. data/lib/increase/models/fednow_transfer_cancel_params.rb +14 -0
  8. data/lib/increase/models/fednow_transfer_create_params.rb +188 -0
  9. data/lib/increase/models/fednow_transfer_list_params.rb +170 -0
  10. data/lib/increase/models/fednow_transfer_retrieve_params.rb +14 -0
  11. data/lib/increase/models/inbound_fednow_transfer.rb +278 -0
  12. data/lib/increase/models/inbound_fednow_transfer_list_params.rb +100 -0
  13. data/lib/increase/models/inbound_fednow_transfer_retrieve_params.rb +14 -0
  14. data/lib/increase/models/simulations/inbound_fednow_transfer_create_params.rb +64 -0
  15. data/lib/increase/models.rb +18 -0
  16. data/lib/increase/resources/fednow_transfers.rb +159 -0
  17. data/lib/increase/resources/inbound_fednow_transfers.rb +68 -0
  18. data/lib/increase/resources/simulations/inbound_fednow_transfers.rb +49 -0
  19. data/lib/increase/resources/simulations.rb +4 -0
  20. data/lib/increase/version.rb +1 -1
  21. data/lib/increase.rb +13 -0
  22. data/rbi/increase/client.rbi +6 -0
  23. data/rbi/increase/models/fednow_transfer.rbi +877 -0
  24. data/rbi/increase/models/fednow_transfer_approve_params.rbi +30 -0
  25. data/rbi/increase/models/fednow_transfer_cancel_params.rbi +30 -0
  26. data/rbi/increase/models/fednow_transfer_create_params.rbi +289 -0
  27. data/rbi/increase/models/fednow_transfer_list_params.rbi +334 -0
  28. data/rbi/increase/models/fednow_transfer_retrieve_params.rbi +30 -0
  29. data/rbi/increase/models/inbound_fednow_transfer.rbi +444 -0
  30. data/rbi/increase/models/inbound_fednow_transfer_list_params.rbi +177 -0
  31. data/rbi/increase/models/inbound_fednow_transfer_retrieve_params.rbi +30 -0
  32. data/rbi/increase/models/simulations/inbound_fednow_transfer_create_params.rbi +100 -0
  33. data/rbi/increase/models.rbi +20 -0
  34. data/rbi/increase/resources/fednow_transfers.rbi +138 -0
  35. data/rbi/increase/resources/inbound_fednow_transfers.rbi +54 -0
  36. data/rbi/increase/resources/simulations/inbound_fednow_transfers.rbi +44 -0
  37. data/rbi/increase/resources/simulations.rbi +3 -0
  38. data/sig/increase/client.rbs +4 -0
  39. data/sig/increase/models/fednow_transfer.rbs +404 -0
  40. data/sig/increase/models/fednow_transfer_approve_params.rbs +15 -0
  41. data/sig/increase/models/fednow_transfer_cancel_params.rbs +15 -0
  42. data/sig/increase/models/fednow_transfer_create_params.rbs +155 -0
  43. data/sig/increase/models/fednow_transfer_list_params.rbs +174 -0
  44. data/sig/increase/models/fednow_transfer_retrieve_params.rbs +15 -0
  45. data/sig/increase/models/inbound_fednow_transfer.rbs +223 -0
  46. data/sig/increase/models/inbound_fednow_transfer_list_params.rbs +93 -0
  47. data/sig/increase/models/inbound_fednow_transfer_retrieve_params.rbs +15 -0
  48. data/sig/increase/models/simulations/inbound_fednow_transfer_create_params.rbs +61 -0
  49. data/sig/increase/models.rbs +18 -0
  50. data/sig/increase/resources/fednow_transfers.rbs +49 -0
  51. data/sig/increase/resources/inbound_fednow_transfers.rbs +21 -0
  52. data/sig/increase/resources/simulations/inbound_fednow_transfers.rbs +19 -0
  53. data/sig/increase/resources/simulations.rbs +2 -0
  54. metadata +41 -2
@@ -0,0 +1,877 @@
1
+ # typed: strong
2
+
3
+ module Increase
4
+ module Models
5
+ class FednowTransfer < Increase::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Increase::FednowTransfer, Increase::Internal::AnyHash)
9
+ end
10
+
11
+ # The FedNow Transfer's identifier.
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # The Account from which the transfer was sent.
16
+ sig { returns(String) }
17
+ attr_accessor :account_id
18
+
19
+ # The destination account number.
20
+ sig { returns(String) }
21
+ attr_accessor :account_number
22
+
23
+ # If the transfer is acknowledged by the recipient bank, this will contain
24
+ # supplemental details.
25
+ sig { returns(T.nilable(Increase::FednowTransfer::Acknowledgement)) }
26
+ attr_reader :acknowledgement
27
+
28
+ sig do
29
+ params(
30
+ acknowledgement:
31
+ T.nilable(Increase::FednowTransfer::Acknowledgement::OrHash)
32
+ ).void
33
+ end
34
+ attr_writer :acknowledgement
35
+
36
+ # The transfer amount in USD cents.
37
+ sig { returns(Integer) }
38
+ attr_accessor :amount
39
+
40
+ # The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which
41
+ # the transfer was created.
42
+ sig { returns(Time) }
43
+ attr_accessor :created_at
44
+
45
+ # What object created the transfer, either via the API or the dashboard.
46
+ sig { returns(T.nilable(Increase::FednowTransfer::CreatedBy)) }
47
+ attr_reader :created_by
48
+
49
+ sig do
50
+ params(
51
+ created_by: T.nilable(Increase::FednowTransfer::CreatedBy::OrHash)
52
+ ).void
53
+ end
54
+ attr_writer :created_by
55
+
56
+ # The name of the transfer's recipient. This is set by the sender when creating
57
+ # the transfer.
58
+ sig { returns(String) }
59
+ attr_accessor :creditor_name
60
+
61
+ # The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transfer's
62
+ # currency. For FedNow transfers this is always equal to `USD`.
63
+ sig { returns(Increase::FednowTransfer::Currency::TaggedSymbol) }
64
+ attr_accessor :currency
65
+
66
+ # The name of the transfer's sender. If not provided, defaults to the name of the
67
+ # account's entity.
68
+ sig { returns(String) }
69
+ attr_accessor :debtor_name
70
+
71
+ # The identifier of the External Account the transfer was made to, if any.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_accessor :external_account_id
74
+
75
+ # The idempotency key you chose for this object. This value is unique across
76
+ # Increase and is used to ensure that a request is only processed once. Learn more
77
+ # about [idempotency](https://increase.com/documentation/idempotency-keys).
78
+ sig { returns(T.nilable(String)) }
79
+ attr_accessor :idempotency_key
80
+
81
+ # The ID for the pending transaction representing the transfer.
82
+ sig { returns(T.nilable(String)) }
83
+ attr_accessor :pending_transaction_id
84
+
85
+ # If the transfer is rejected by FedNow or the destination financial institution,
86
+ # this will contain supplemental details.
87
+ sig { returns(T.nilable(Increase::FednowTransfer::Rejection)) }
88
+ attr_reader :rejection
89
+
90
+ sig do
91
+ params(
92
+ rejection: T.nilable(Increase::FednowTransfer::Rejection::OrHash)
93
+ ).void
94
+ end
95
+ attr_writer :rejection
96
+
97
+ # The destination American Bankers' Association (ABA) Routing Transit Number
98
+ # (RTN).
99
+ sig { returns(String) }
100
+ attr_accessor :routing_number
101
+
102
+ # The Account Number the recipient will see as having sent the transfer.
103
+ sig { returns(String) }
104
+ attr_accessor :source_account_number_id
105
+
106
+ # The lifecycle status of the transfer.
107
+ sig { returns(Increase::FednowTransfer::Status::TaggedSymbol) }
108
+ attr_accessor :status
109
+
110
+ # After the transfer is submitted to FedNow, this will contain supplemental
111
+ # details.
112
+ sig { returns(T.nilable(Increase::FednowTransfer::Submission)) }
113
+ attr_reader :submission
114
+
115
+ sig do
116
+ params(
117
+ submission: T.nilable(Increase::FednowTransfer::Submission::OrHash)
118
+ ).void
119
+ end
120
+ attr_writer :submission
121
+
122
+ # The Transaction funding the transfer once it is complete.
123
+ sig { returns(T.nilable(String)) }
124
+ attr_accessor :transaction_id
125
+
126
+ # A constant representing the object's type. For this resource it will always be
127
+ # `fednow_transfer`.
128
+ sig { returns(Increase::FednowTransfer::Type::TaggedSymbol) }
129
+ attr_accessor :type
130
+
131
+ # The Unique End-to-end Transaction Reference
132
+ # ([UETR](https://www.swift.com/payments/what-unique-end-end-transaction-reference-uetr))
133
+ # of the transfer.
134
+ sig { returns(String) }
135
+ attr_accessor :unique_end_to_end_transaction_reference
136
+
137
+ # Unstructured information that will show on the recipient's bank statement.
138
+ sig { returns(String) }
139
+ attr_accessor :unstructured_remittance_information
140
+
141
+ # FedNow transfers move funds, within seconds, between your Increase account and
142
+ # any other account supporting FedNow.
143
+ sig do
144
+ params(
145
+ id: String,
146
+ account_id: String,
147
+ account_number: String,
148
+ acknowledgement:
149
+ T.nilable(Increase::FednowTransfer::Acknowledgement::OrHash),
150
+ amount: Integer,
151
+ created_at: Time,
152
+ created_by: T.nilable(Increase::FednowTransfer::CreatedBy::OrHash),
153
+ creditor_name: String,
154
+ currency: Increase::FednowTransfer::Currency::OrSymbol,
155
+ debtor_name: String,
156
+ external_account_id: T.nilable(String),
157
+ idempotency_key: T.nilable(String),
158
+ pending_transaction_id: T.nilable(String),
159
+ rejection: T.nilable(Increase::FednowTransfer::Rejection::OrHash),
160
+ routing_number: String,
161
+ source_account_number_id: String,
162
+ status: Increase::FednowTransfer::Status::OrSymbol,
163
+ submission: T.nilable(Increase::FednowTransfer::Submission::OrHash),
164
+ transaction_id: T.nilable(String),
165
+ type: Increase::FednowTransfer::Type::OrSymbol,
166
+ unique_end_to_end_transaction_reference: String,
167
+ unstructured_remittance_information: String
168
+ ).returns(T.attached_class)
169
+ end
170
+ def self.new(
171
+ # The FedNow Transfer's identifier.
172
+ id:,
173
+ # The Account from which the transfer was sent.
174
+ account_id:,
175
+ # The destination account number.
176
+ account_number:,
177
+ # If the transfer is acknowledged by the recipient bank, this will contain
178
+ # supplemental details.
179
+ acknowledgement:,
180
+ # The transfer amount in USD cents.
181
+ amount:,
182
+ # The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which
183
+ # the transfer was created.
184
+ created_at:,
185
+ # What object created the transfer, either via the API or the dashboard.
186
+ created_by:,
187
+ # The name of the transfer's recipient. This is set by the sender when creating
188
+ # the transfer.
189
+ creditor_name:,
190
+ # The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transfer's
191
+ # currency. For FedNow transfers this is always equal to `USD`.
192
+ currency:,
193
+ # The name of the transfer's sender. If not provided, defaults to the name of the
194
+ # account's entity.
195
+ debtor_name:,
196
+ # The identifier of the External Account the transfer was made to, if any.
197
+ external_account_id:,
198
+ # The idempotency key you chose for this object. This value is unique across
199
+ # Increase and is used to ensure that a request is only processed once. Learn more
200
+ # about [idempotency](https://increase.com/documentation/idempotency-keys).
201
+ idempotency_key:,
202
+ # The ID for the pending transaction representing the transfer.
203
+ pending_transaction_id:,
204
+ # If the transfer is rejected by FedNow or the destination financial institution,
205
+ # this will contain supplemental details.
206
+ rejection:,
207
+ # The destination American Bankers' Association (ABA) Routing Transit Number
208
+ # (RTN).
209
+ routing_number:,
210
+ # The Account Number the recipient will see as having sent the transfer.
211
+ source_account_number_id:,
212
+ # The lifecycle status of the transfer.
213
+ status:,
214
+ # After the transfer is submitted to FedNow, this will contain supplemental
215
+ # details.
216
+ submission:,
217
+ # The Transaction funding the transfer once it is complete.
218
+ transaction_id:,
219
+ # A constant representing the object's type. For this resource it will always be
220
+ # `fednow_transfer`.
221
+ type:,
222
+ # The Unique End-to-end Transaction Reference
223
+ # ([UETR](https://www.swift.com/payments/what-unique-end-end-transaction-reference-uetr))
224
+ # of the transfer.
225
+ unique_end_to_end_transaction_reference:,
226
+ # Unstructured information that will show on the recipient's bank statement.
227
+ unstructured_remittance_information:
228
+ )
229
+ end
230
+
231
+ sig do
232
+ override.returns(
233
+ {
234
+ id: String,
235
+ account_id: String,
236
+ account_number: String,
237
+ acknowledgement:
238
+ T.nilable(Increase::FednowTransfer::Acknowledgement),
239
+ amount: Integer,
240
+ created_at: Time,
241
+ created_by: T.nilable(Increase::FednowTransfer::CreatedBy),
242
+ creditor_name: String,
243
+ currency: Increase::FednowTransfer::Currency::TaggedSymbol,
244
+ debtor_name: String,
245
+ external_account_id: T.nilable(String),
246
+ idempotency_key: T.nilable(String),
247
+ pending_transaction_id: T.nilable(String),
248
+ rejection: T.nilable(Increase::FednowTransfer::Rejection),
249
+ routing_number: String,
250
+ source_account_number_id: String,
251
+ status: Increase::FednowTransfer::Status::TaggedSymbol,
252
+ submission: T.nilable(Increase::FednowTransfer::Submission),
253
+ transaction_id: T.nilable(String),
254
+ type: Increase::FednowTransfer::Type::TaggedSymbol,
255
+ unique_end_to_end_transaction_reference: String,
256
+ unstructured_remittance_information: String
257
+ }
258
+ )
259
+ end
260
+ def to_hash
261
+ end
262
+
263
+ class Acknowledgement < Increase::Internal::Type::BaseModel
264
+ OrHash =
265
+ T.type_alias do
266
+ T.any(
267
+ Increase::FednowTransfer::Acknowledgement,
268
+ Increase::Internal::AnyHash
269
+ )
270
+ end
271
+
272
+ # When the transfer was acknowledged.
273
+ sig { returns(Time) }
274
+ attr_accessor :acknowledged_at
275
+
276
+ # If the transfer is acknowledged by the recipient bank, this will contain
277
+ # supplemental details.
278
+ sig { params(acknowledged_at: Time).returns(T.attached_class) }
279
+ def self.new(
280
+ # When the transfer was acknowledged.
281
+ acknowledged_at:
282
+ )
283
+ end
284
+
285
+ sig { override.returns({ acknowledged_at: Time }) }
286
+ def to_hash
287
+ end
288
+ end
289
+
290
+ class CreatedBy < Increase::Internal::Type::BaseModel
291
+ OrHash =
292
+ T.type_alias do
293
+ T.any(
294
+ Increase::FednowTransfer::CreatedBy,
295
+ Increase::Internal::AnyHash
296
+ )
297
+ end
298
+
299
+ # If present, details about the API key that created the transfer.
300
+ sig { returns(T.nilable(Increase::FednowTransfer::CreatedBy::APIKey)) }
301
+ attr_reader :api_key
302
+
303
+ sig do
304
+ params(
305
+ api_key:
306
+ T.nilable(Increase::FednowTransfer::CreatedBy::APIKey::OrHash)
307
+ ).void
308
+ end
309
+ attr_writer :api_key
310
+
311
+ # The type of object that created this transfer.
312
+ sig do
313
+ returns(Increase::FednowTransfer::CreatedBy::Category::TaggedSymbol)
314
+ end
315
+ attr_accessor :category
316
+
317
+ # If present, details about the OAuth Application that created the transfer.
318
+ sig do
319
+ returns(
320
+ T.nilable(Increase::FednowTransfer::CreatedBy::OAuthApplication)
321
+ )
322
+ end
323
+ attr_reader :oauth_application
324
+
325
+ sig do
326
+ params(
327
+ oauth_application:
328
+ T.nilable(
329
+ Increase::FednowTransfer::CreatedBy::OAuthApplication::OrHash
330
+ )
331
+ ).void
332
+ end
333
+ attr_writer :oauth_application
334
+
335
+ # If present, details about the User that created the transfer.
336
+ sig { returns(T.nilable(Increase::FednowTransfer::CreatedBy::User)) }
337
+ attr_reader :user
338
+
339
+ sig do
340
+ params(
341
+ user: T.nilable(Increase::FednowTransfer::CreatedBy::User::OrHash)
342
+ ).void
343
+ end
344
+ attr_writer :user
345
+
346
+ # What object created the transfer, either via the API or the dashboard.
347
+ sig do
348
+ params(
349
+ api_key:
350
+ T.nilable(Increase::FednowTransfer::CreatedBy::APIKey::OrHash),
351
+ category: Increase::FednowTransfer::CreatedBy::Category::OrSymbol,
352
+ oauth_application:
353
+ T.nilable(
354
+ Increase::FednowTransfer::CreatedBy::OAuthApplication::OrHash
355
+ ),
356
+ user: T.nilable(Increase::FednowTransfer::CreatedBy::User::OrHash)
357
+ ).returns(T.attached_class)
358
+ end
359
+ def self.new(
360
+ # If present, details about the API key that created the transfer.
361
+ api_key:,
362
+ # The type of object that created this transfer.
363
+ category:,
364
+ # If present, details about the OAuth Application that created the transfer.
365
+ oauth_application:,
366
+ # If present, details about the User that created the transfer.
367
+ user:
368
+ )
369
+ end
370
+
371
+ sig do
372
+ override.returns(
373
+ {
374
+ api_key: T.nilable(Increase::FednowTransfer::CreatedBy::APIKey),
375
+ category:
376
+ Increase::FednowTransfer::CreatedBy::Category::TaggedSymbol,
377
+ oauth_application:
378
+ T.nilable(
379
+ Increase::FednowTransfer::CreatedBy::OAuthApplication
380
+ ),
381
+ user: T.nilable(Increase::FednowTransfer::CreatedBy::User)
382
+ }
383
+ )
384
+ end
385
+ def to_hash
386
+ end
387
+
388
+ class APIKey < Increase::Internal::Type::BaseModel
389
+ OrHash =
390
+ T.type_alias do
391
+ T.any(
392
+ Increase::FednowTransfer::CreatedBy::APIKey,
393
+ Increase::Internal::AnyHash
394
+ )
395
+ end
396
+
397
+ # The description set for the API key when it was created.
398
+ sig { returns(T.nilable(String)) }
399
+ attr_accessor :description
400
+
401
+ # If present, details about the API key that created the transfer.
402
+ sig do
403
+ params(description: T.nilable(String)).returns(T.attached_class)
404
+ end
405
+ def self.new(
406
+ # The description set for the API key when it was created.
407
+ description:
408
+ )
409
+ end
410
+
411
+ sig { override.returns({ description: T.nilable(String) }) }
412
+ def to_hash
413
+ end
414
+ end
415
+
416
+ # The type of object that created this transfer.
417
+ module Category
418
+ extend Increase::Internal::Type::Enum
419
+
420
+ TaggedSymbol =
421
+ T.type_alias do
422
+ T.all(Symbol, Increase::FednowTransfer::CreatedBy::Category)
423
+ end
424
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
425
+
426
+ # An API key. Details will be under the `api_key` object.
427
+ API_KEY =
428
+ T.let(
429
+ :api_key,
430
+ Increase::FednowTransfer::CreatedBy::Category::TaggedSymbol
431
+ )
432
+
433
+ # An OAuth application you connected to Increase. Details will be under the `oauth_application` object.
434
+ OAUTH_APPLICATION =
435
+ T.let(
436
+ :oauth_application,
437
+ Increase::FednowTransfer::CreatedBy::Category::TaggedSymbol
438
+ )
439
+
440
+ # A User in the Increase dashboard. Details will be under the `user` object.
441
+ USER =
442
+ T.let(
443
+ :user,
444
+ Increase::FednowTransfer::CreatedBy::Category::TaggedSymbol
445
+ )
446
+
447
+ sig do
448
+ override.returns(
449
+ T::Array[
450
+ Increase::FednowTransfer::CreatedBy::Category::TaggedSymbol
451
+ ]
452
+ )
453
+ end
454
+ def self.values
455
+ end
456
+ end
457
+
458
+ class OAuthApplication < Increase::Internal::Type::BaseModel
459
+ OrHash =
460
+ T.type_alias do
461
+ T.any(
462
+ Increase::FednowTransfer::CreatedBy::OAuthApplication,
463
+ Increase::Internal::AnyHash
464
+ )
465
+ end
466
+
467
+ # The name of the OAuth Application.
468
+ sig { returns(String) }
469
+ attr_accessor :name
470
+
471
+ # If present, details about the OAuth Application that created the transfer.
472
+ sig { params(name: String).returns(T.attached_class) }
473
+ def self.new(
474
+ # The name of the OAuth Application.
475
+ name:
476
+ )
477
+ end
478
+
479
+ sig { override.returns({ name: String }) }
480
+ def to_hash
481
+ end
482
+ end
483
+
484
+ class User < Increase::Internal::Type::BaseModel
485
+ OrHash =
486
+ T.type_alias do
487
+ T.any(
488
+ Increase::FednowTransfer::CreatedBy::User,
489
+ Increase::Internal::AnyHash
490
+ )
491
+ end
492
+
493
+ # The email address of the User.
494
+ sig { returns(String) }
495
+ attr_accessor :email
496
+
497
+ # If present, details about the User that created the transfer.
498
+ sig { params(email: String).returns(T.attached_class) }
499
+ def self.new(
500
+ # The email address of the User.
501
+ email:
502
+ )
503
+ end
504
+
505
+ sig { override.returns({ email: String }) }
506
+ def to_hash
507
+ end
508
+ end
509
+ end
510
+
511
+ # The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the transfer's
512
+ # currency. For FedNow transfers this is always equal to `USD`.
513
+ module Currency
514
+ extend Increase::Internal::Type::Enum
515
+
516
+ TaggedSymbol =
517
+ T.type_alias { T.all(Symbol, Increase::FednowTransfer::Currency) }
518
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
519
+
520
+ # Canadian Dollar (CAD)
521
+ CAD = T.let(:CAD, Increase::FednowTransfer::Currency::TaggedSymbol)
522
+
523
+ # Swiss Franc (CHF)
524
+ CHF = T.let(:CHF, Increase::FednowTransfer::Currency::TaggedSymbol)
525
+
526
+ # Euro (EUR)
527
+ EUR = T.let(:EUR, Increase::FednowTransfer::Currency::TaggedSymbol)
528
+
529
+ # British Pound (GBP)
530
+ GBP = T.let(:GBP, Increase::FednowTransfer::Currency::TaggedSymbol)
531
+
532
+ # Japanese Yen (JPY)
533
+ JPY = T.let(:JPY, Increase::FednowTransfer::Currency::TaggedSymbol)
534
+
535
+ # US Dollar (USD)
536
+ USD = T.let(:USD, Increase::FednowTransfer::Currency::TaggedSymbol)
537
+
538
+ sig do
539
+ override.returns(
540
+ T::Array[Increase::FednowTransfer::Currency::TaggedSymbol]
541
+ )
542
+ end
543
+ def self.values
544
+ end
545
+ end
546
+
547
+ class Rejection < Increase::Internal::Type::BaseModel
548
+ OrHash =
549
+ T.type_alias do
550
+ T.any(
551
+ Increase::FednowTransfer::Rejection,
552
+ Increase::Internal::AnyHash
553
+ )
554
+ end
555
+
556
+ # Additional information about the rejection provided by the recipient bank.
557
+ sig { returns(T.nilable(String)) }
558
+ attr_accessor :reject_reason_additional_information
559
+
560
+ # The reason the transfer was rejected as provided by the recipient bank or the
561
+ # FedNow network.
562
+ sig do
563
+ returns(
564
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
565
+ )
566
+ end
567
+ attr_accessor :reject_reason_code
568
+
569
+ # The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which
570
+ # the transfer was rejected.
571
+ sig { returns(T.nilable(Time)) }
572
+ attr_accessor :rejected_at
573
+
574
+ # If the transfer is rejected by FedNow or the destination financial institution,
575
+ # this will contain supplemental details.
576
+ sig do
577
+ params(
578
+ reject_reason_additional_information: T.nilable(String),
579
+ reject_reason_code:
580
+ Increase::FednowTransfer::Rejection::RejectReasonCode::OrSymbol,
581
+ rejected_at: T.nilable(Time)
582
+ ).returns(T.attached_class)
583
+ end
584
+ def self.new(
585
+ # Additional information about the rejection provided by the recipient bank.
586
+ reject_reason_additional_information:,
587
+ # The reason the transfer was rejected as provided by the recipient bank or the
588
+ # FedNow network.
589
+ reject_reason_code:,
590
+ # The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which
591
+ # the transfer was rejected.
592
+ rejected_at:
593
+ )
594
+ end
595
+
596
+ sig do
597
+ override.returns(
598
+ {
599
+ reject_reason_additional_information: T.nilable(String),
600
+ reject_reason_code:
601
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol,
602
+ rejected_at: T.nilable(Time)
603
+ }
604
+ )
605
+ end
606
+ def to_hash
607
+ end
608
+
609
+ # The reason the transfer was rejected as provided by the recipient bank or the
610
+ # FedNow network.
611
+ module RejectReasonCode
612
+ extend Increase::Internal::Type::Enum
613
+
614
+ TaggedSymbol =
615
+ T.type_alias do
616
+ T.all(
617
+ Symbol,
618
+ Increase::FednowTransfer::Rejection::RejectReasonCode
619
+ )
620
+ end
621
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
622
+
623
+ # The destination account is closed. Corresponds to the FedNow reason code `AC04`.
624
+ ACCOUNT_CLOSED =
625
+ T.let(
626
+ :account_closed,
627
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
628
+ )
629
+
630
+ # The destination account is currently blocked from receiving transactions. Corresponds to the FedNow reason code `AC06`.
631
+ ACCOUNT_BLOCKED =
632
+ T.let(
633
+ :account_blocked,
634
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
635
+ )
636
+
637
+ # The destination account is ineligible to receive FedNow transfers. Corresponds to the FedNow reason code `AC14`.
638
+ INVALID_CREDITOR_ACCOUNT_TYPE =
639
+ T.let(
640
+ :invalid_creditor_account_type,
641
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
642
+ )
643
+
644
+ # The destination account does not exist. Corresponds to the FedNow reason code `AC03`.
645
+ INVALID_CREDITOR_ACCOUNT_NUMBER =
646
+ T.let(
647
+ :invalid_creditor_account_number,
648
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
649
+ )
650
+
651
+ # The destination routing number is invalid. Corresponds to the FedNow reason code `RC04`.
652
+ INVALID_CREDITOR_FINANCIAL_INSTITUTION_IDENTIFIER =
653
+ T.let(
654
+ :invalid_creditor_financial_institution_identifier,
655
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
656
+ )
657
+
658
+ # The destination account holder is deceased. Corresponds to the FedNow reason code `MD07`.
659
+ END_CUSTOMER_DECEASED =
660
+ T.let(
661
+ :end_customer_deceased,
662
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
663
+ )
664
+
665
+ # The reason is provided as narrative information in the additional information field. Corresponds to the FedNow reason code `NARR`.
666
+ NARRATIVE =
667
+ T.let(
668
+ :narrative,
669
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
670
+ )
671
+
672
+ # FedNow transfers are not allowed to the destination account. Corresponds to the FedNow reason code `AG01`.
673
+ TRANSACTION_FORBIDDEN =
674
+ T.let(
675
+ :transaction_forbidden,
676
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
677
+ )
678
+
679
+ # FedNow transfers are not enabled for the destination account. Corresponds to the FedNow reason code `AG03`.
680
+ TRANSACTION_TYPE_NOT_SUPPORTED =
681
+ T.let(
682
+ :transaction_type_not_supported,
683
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
684
+ )
685
+
686
+ # The amount is higher than the recipient is authorized to send or receive. Corresponds to the FedNow reason code `E990`.
687
+ AMOUNT_EXCEEDS_BANK_LIMITS =
688
+ T.let(
689
+ :amount_exceeds_bank_limits,
690
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
691
+ )
692
+
693
+ # The creditor's address is required, but missing or invalid. Corresponds to the FedNow reason code `BE04`.
694
+ INVALID_CREDITOR_ADDRESS =
695
+ T.let(
696
+ :invalid_creditor_address,
697
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
698
+ )
699
+
700
+ # The debtor's address is required, but missing or invalid. Corresponds to the FedNow reason code `BE07`.
701
+ INVALID_DEBTOR_ADDRESS =
702
+ T.let(
703
+ :invalid_debtor_address,
704
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
705
+ )
706
+
707
+ # There was a timeout processing the transfer. Corresponds to the FedNow reason code `E997`.
708
+ TIMEOUT =
709
+ T.let(
710
+ :timeout,
711
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
712
+ )
713
+
714
+ # The transfer was rejected due to an internal Increase issue. We have been notified.
715
+ PROCESSING_ERROR =
716
+ T.let(
717
+ :processing_error,
718
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
719
+ )
720
+
721
+ # Some other error or issue has occurred.
722
+ OTHER =
723
+ T.let(
724
+ :other,
725
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
726
+ )
727
+
728
+ sig do
729
+ override.returns(
730
+ T::Array[
731
+ Increase::FednowTransfer::Rejection::RejectReasonCode::TaggedSymbol
732
+ ]
733
+ )
734
+ end
735
+ def self.values
736
+ end
737
+ end
738
+ end
739
+
740
+ # The lifecycle status of the transfer.
741
+ module Status
742
+ extend Increase::Internal::Type::Enum
743
+
744
+ TaggedSymbol =
745
+ T.type_alias { T.all(Symbol, Increase::FednowTransfer::Status) }
746
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
747
+
748
+ # The transfer is pending review by Increase.
749
+ PENDING_REVIEWING =
750
+ T.let(
751
+ :pending_reviewing,
752
+ Increase::FednowTransfer::Status::TaggedSymbol
753
+ )
754
+
755
+ # The transfer has been canceled.
756
+ CANCELED =
757
+ T.let(:canceled, Increase::FednowTransfer::Status::TaggedSymbol)
758
+
759
+ # The transfer has been rejected by Increase.
760
+ REVIEWING_REJECTED =
761
+ T.let(
762
+ :reviewing_rejected,
763
+ Increase::FednowTransfer::Status::TaggedSymbol
764
+ )
765
+
766
+ # The transfer requires attention from an Increase operator.
767
+ REQUIRES_ATTENTION =
768
+ T.let(
769
+ :requires_attention,
770
+ Increase::FednowTransfer::Status::TaggedSymbol
771
+ )
772
+
773
+ # The transfer is pending approval.
774
+ PENDING_APPROVAL =
775
+ T.let(
776
+ :pending_approval,
777
+ Increase::FednowTransfer::Status::TaggedSymbol
778
+ )
779
+
780
+ # The transfer is queued to be submitted to FedNow.
781
+ PENDING_SUBMITTING =
782
+ T.let(
783
+ :pending_submitting,
784
+ Increase::FednowTransfer::Status::TaggedSymbol
785
+ )
786
+
787
+ # The transfer has been submitted and is pending a response from FedNow.
788
+ PENDING_RESPONSE =
789
+ T.let(
790
+ :pending_response,
791
+ Increase::FednowTransfer::Status::TaggedSymbol
792
+ )
793
+
794
+ # The transfer has been sent successfully and is complete.
795
+ COMPLETE =
796
+ T.let(:complete, Increase::FednowTransfer::Status::TaggedSymbol)
797
+
798
+ # The transfer was rejected by the network or the recipient's bank.
799
+ REJECTED =
800
+ T.let(:rejected, Increase::FednowTransfer::Status::TaggedSymbol)
801
+
802
+ sig do
803
+ override.returns(
804
+ T::Array[Increase::FednowTransfer::Status::TaggedSymbol]
805
+ )
806
+ end
807
+ def self.values
808
+ end
809
+ end
810
+
811
+ class Submission < Increase::Internal::Type::BaseModel
812
+ OrHash =
813
+ T.type_alias do
814
+ T.any(
815
+ Increase::FednowTransfer::Submission,
816
+ Increase::Internal::AnyHash
817
+ )
818
+ end
819
+
820
+ # The FedNow network identification of the message submitted.
821
+ sig { returns(String) }
822
+ attr_accessor :message_identification
823
+
824
+ # The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which
825
+ # the transfer was submitted to FedNow.
826
+ sig { returns(T.nilable(Time)) }
827
+ attr_accessor :submitted_at
828
+
829
+ # After the transfer is submitted to FedNow, this will contain supplemental
830
+ # details.
831
+ sig do
832
+ params(
833
+ message_identification: String,
834
+ submitted_at: T.nilable(Time)
835
+ ).returns(T.attached_class)
836
+ end
837
+ def self.new(
838
+ # The FedNow network identification of the message submitted.
839
+ message_identification:,
840
+ # The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which
841
+ # the transfer was submitted to FedNow.
842
+ submitted_at:
843
+ )
844
+ end
845
+
846
+ sig do
847
+ override.returns(
848
+ { message_identification: String, submitted_at: T.nilable(Time) }
849
+ )
850
+ end
851
+ def to_hash
852
+ end
853
+ end
854
+
855
+ # A constant representing the object's type. For this resource it will always be
856
+ # `fednow_transfer`.
857
+ module Type
858
+ extend Increase::Internal::Type::Enum
859
+
860
+ TaggedSymbol =
861
+ T.type_alias { T.all(Symbol, Increase::FednowTransfer::Type) }
862
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
863
+
864
+ FEDNOW_TRANSFER =
865
+ T.let(:fednow_transfer, Increase::FednowTransfer::Type::TaggedSymbol)
866
+
867
+ sig do
868
+ override.returns(
869
+ T::Array[Increase::FednowTransfer::Type::TaggedSymbol]
870
+ )
871
+ end
872
+ def self.values
873
+ end
874
+ end
875
+ end
876
+ end
877
+ end