increase 1.361.0 → 1.363.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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/increase/client.rb +0 -16
  4. data/lib/increase/internal/transport/pooled_net_requester.rb +3 -0
  5. data/lib/increase/internal/util.rb +22 -17
  6. data/lib/increase/models/ach_transfer.rb +38 -23
  7. data/lib/increase/models/ach_transfer_create_params.rb +73 -42
  8. data/lib/increase/models/check_transfer.rb +58 -44
  9. data/lib/increase/models/check_transfer_create_params.rb +35 -21
  10. data/lib/increase/models/export.rb +12 -1
  11. data/lib/increase/models/export_create_params.rb +26 -4
  12. data/lib/increase/models/inbound_real_time_payments_transfer.rb +10 -1
  13. data/lib/increase/models/inbound_real_time_payments_transfer_return_params.rb +36 -0
  14. data/lib/increase/models/real_time_payments_transfer.rb +21 -1
  15. data/lib/increase/models/simulations/card_dispute_action_params.rb +26 -4
  16. data/lib/increase/models/simulations/wire_drawdown_request_refuse_params.rb +52 -1
  17. data/lib/increase/models/transaction.rb +3 -3
  18. data/lib/increase/models/wire_drawdown_request.rb +78 -1
  19. data/lib/increase/models.rb +3 -20
  20. data/lib/increase/resources/ach_transfers.rb +43 -22
  21. data/lib/increase/resources/inbound_real_time_payments_transfers.rb +28 -0
  22. data/lib/increase/resources/simulations/wire_drawdown_requests.rb +12 -2
  23. data/lib/increase/version.rb +1 -1
  24. data/lib/increase.rb +1 -14
  25. data/rbi/increase/client.rbi +0 -12
  26. data/rbi/increase/internal/util.rbi +3 -1
  27. data/rbi/increase/models/ach_transfer.rbi +35 -23
  28. data/rbi/increase/models/ach_transfer_create_params.rbi +72 -42
  29. data/rbi/increase/models/check_transfer.rbi +72 -54
  30. data/rbi/increase/models/check_transfer_create_params.rbi +55 -21
  31. data/rbi/increase/models/export.rbi +15 -3
  32. data/rbi/increase/models/export_create_params.rbi +27 -3
  33. data/rbi/increase/models/inbound_real_time_payments_transfer.rbi +8 -0
  34. data/rbi/increase/models/inbound_real_time_payments_transfer_return_params.rbi +61 -0
  35. data/rbi/increase/models/real_time_payments_transfer.rbi +18 -0
  36. data/rbi/increase/models/simulations/card_dispute_action_params.rbi +56 -3
  37. data/rbi/increase/models/simulations/wire_drawdown_request_refuse_params.rbi +107 -0
  38. data/rbi/increase/models/transaction.rbi +3 -3
  39. data/rbi/increase/models/wire_drawdown_request.rbi +146 -0
  40. data/rbi/increase/models.rbi +3 -22
  41. data/rbi/increase/resources/ach_transfers.rbi +42 -22
  42. data/rbi/increase/resources/inbound_real_time_payments_transfers.rbi +19 -0
  43. data/rbi/increase/resources/simulations/wire_drawdown_requests.rbi +9 -0
  44. data/sig/increase/client.rbs +0 -8
  45. data/sig/increase/internal/util.rbs +1 -1
  46. data/sig/increase/models/ach_transfer.rbs +4 -4
  47. data/sig/increase/models/check_transfer.rbs +59 -49
  48. data/sig/increase/models/check_transfer_create_params.rbs +20 -12
  49. data/sig/increase/models/export.rbs +13 -3
  50. data/sig/increase/models/export_create_params.rbs +7 -0
  51. data/sig/increase/models/inbound_real_time_payments_transfer.rbs +5 -0
  52. data/sig/increase/models/inbound_real_time_payments_transfer_return_params.rbs +30 -0
  53. data/sig/increase/models/real_time_payments_transfer.rbs +10 -0
  54. data/sig/increase/models/simulations/card_dispute_action_params.rbs +24 -3
  55. data/sig/increase/models/simulations/wire_drawdown_request_refuse_params.rbs +51 -1
  56. data/sig/increase/models/transaction.rbs +4 -4
  57. data/sig/increase/models/wire_drawdown_request.rbs +64 -0
  58. data/sig/increase/models.rbs +2 -20
  59. data/sig/increase/resources/inbound_real_time_payments_transfers.rbs +6 -0
  60. data/sig/increase/resources/simulations/wire_drawdown_requests.rbs +2 -0
  61. metadata +20 -45
  62. data/lib/increase/models/group.rb +0 -57
  63. data/lib/increase/models/group_retrieve_params.rb +0 -14
  64. data/lib/increase/models/oauth_application.rb +0 -111
  65. data/lib/increase/models/oauth_application_list_params.rb +0 -129
  66. data/lib/increase/models/oauth_application_retrieve_params.rb +0 -22
  67. data/lib/increase/models/oauth_connection.rb +0 -107
  68. data/lib/increase/models/oauth_connection_list_params.rb +0 -88
  69. data/lib/increase/models/oauth_connection_retrieve_params.rb +0 -22
  70. data/lib/increase/models/oauth_token.rb +0 -76
  71. data/lib/increase/models/oauth_token_create_params.rb +0 -85
  72. data/lib/increase/resources/groups.rb +0 -32
  73. data/lib/increase/resources/oauth_applications.rb +0 -68
  74. data/lib/increase/resources/oauth_connections.rb +0 -70
  75. data/lib/increase/resources/oauth_tokens.rb +0 -54
  76. data/rbi/increase/models/group.rbi +0 -74
  77. data/rbi/increase/models/group_retrieve_params.rbi +0 -27
  78. data/rbi/increase/models/oauth_application.rbi +0 -146
  79. data/rbi/increase/models/oauth_application_list_params.rbi +0 -263
  80. data/rbi/increase/models/oauth_application_retrieve_params.rbi +0 -46
  81. data/rbi/increase/models/oauth_connection.rbi +0 -142
  82. data/rbi/increase/models/oauth_connection_list_params.rbi +0 -187
  83. data/rbi/increase/models/oauth_connection_retrieve_params.rbi +0 -46
  84. data/rbi/increase/models/oauth_token.rbi +0 -106
  85. data/rbi/increase/models/oauth_token_create_params.rbi +0 -133
  86. data/rbi/increase/resources/groups.rbi +0 -21
  87. data/rbi/increase/resources/oauth_applications.rbi +0 -50
  88. data/rbi/increase/resources/oauth_connections.rbi +0 -52
  89. data/rbi/increase/resources/oauth_tokens.rbi +0 -44
  90. data/sig/increase/models/group.rbs +0 -36
  91. data/sig/increase/models/group_retrieve_params.rbs +0 -15
  92. data/sig/increase/models/oauth_application.rbs +0 -74
  93. data/sig/increase/models/oauth_application_list_params.rbs +0 -123
  94. data/sig/increase/models/oauth_application_retrieve_params.rbs +0 -24
  95. data/sig/increase/models/oauth_connection.rbs +0 -74
  96. data/sig/increase/models/oauth_connection_list_params.rbs +0 -86
  97. data/sig/increase/models/oauth_connection_retrieve_params.rbs +0 -24
  98. data/sig/increase/models/oauth_token.rbs +0 -55
  99. data/sig/increase/models/oauth_token_create_params.rbs +0 -68
  100. data/sig/increase/resources/groups.rbs +0 -11
  101. data/sig/increase/resources/oauth_applications.rbs +0 -20
  102. data/sig/increase/resources/oauth_connections.rbs +0 -20
  103. data/sig/increase/resources/oauth_tokens.rbs +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 693a4c244c1ccd7cd6ce2efec35ed0bb1c7852ffb11df31789decc7fdaaa703d
4
- data.tar.gz: 71892bf2ecf9a4c8a3ad2738b00b835cccda0c7cbcd51c26b62782eb1b8cc04b
3
+ metadata.gz: f63ff7ab654a402cc90736db41326ac8d1c00edbda030c347801315125430860
4
+ data.tar.gz: 8a17ebc028b8d1eee17ad80ecdb98c3a9ba84f54b1fd86101070056909322c3a
5
5
  SHA512:
6
- metadata.gz: '08f7b1d238efae08f9195514392d5c4f4c2b35e2a6c7c07b61392d61445b92bba69edc231a3a922d6fd40fdac5753814db285ee49c718c4abda9126fde19f53c'
7
- data.tar.gz: 711946095b9706ebb435a07e0ac013805f6161f5848eb9e90226caebb23fb18279068f518f4b5476c766f38d43320c4f92be566cfd39a5b38f43d3df41e594bf
6
+ metadata.gz: 9bce475b357304a547e42aeb3e6ba9734c6dc11a8e8e7f70ccffcf075e6a921bbe598764f5ab3640c9c86da6c6d7d19576d43854b63f28fa47c473d7501b8b6f
7
+ data.tar.gz: c1033455aa379e2591718eae054b276977d10d300af62a9aedebf017bdb1a73ced407ce25765d12e849dcd461606ed851b253c2202608c41294db763552d7cca
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "increase", "~> 1.361.0"
18
+ gem "increase", "~> 1.363.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -173,18 +173,6 @@ module Increase
173
173
  # @return [Increase::Resources::RealTimeDecisions]
174
174
  attr_reader :real_time_decisions
175
175
 
176
- # @return [Increase::Resources::Groups]
177
- attr_reader :groups
178
-
179
- # @return [Increase::Resources::OAuthApplications]
180
- attr_reader :oauth_applications
181
-
182
- # @return [Increase::Resources::OAuthConnections]
183
- attr_reader :oauth_connections
184
-
185
- # @return [Increase::Resources::OAuthTokens]
186
- attr_reader :oauth_tokens
187
-
188
176
  # @return [Increase::Resources::IntrafiAccountEnrollments]
189
177
  attr_reader :intrafi_account_enrollments
190
178
 
@@ -343,10 +331,6 @@ module Increase
343
331
  @events = Increase::Resources::Events.new(client: self)
344
332
  @event_subscriptions = Increase::Resources::EventSubscriptions.new(client: self)
345
333
  @real_time_decisions = Increase::Resources::RealTimeDecisions.new(client: self)
346
- @groups = Increase::Resources::Groups.new(client: self)
347
- @oauth_applications = Increase::Resources::OAuthApplications.new(client: self)
348
- @oauth_connections = Increase::Resources::OAuthConnections.new(client: self)
349
- @oauth_tokens = Increase::Resources::OAuthTokens.new(client: self)
350
334
  @intrafi_account_enrollments = Increase::Resources::IntrafiAccountEnrollments.new(client: self)
351
335
  @intrafi_balances = Increase::Resources::IntrafiBalances.new(client: self)
352
336
  @intrafi_exclusions = Increase::Resources::IntrafiExclusions.new(client: self)
@@ -64,6 +64,9 @@ module Increase
64
64
  # @return [Array(Net::HTTPGenericRequest, Proc)]
65
65
  def build_request(request, &blk)
66
66
  method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
67
+ # Streamed bodies (e.g. multipart) arrive as a factory so each attempt gets a fresh stream.
68
+ body = body.call if body.is_a?(Proc)
69
+
67
70
  req = Net::HTTPGenericRequest.new(
68
71
  method.to_s.upcase,
69
72
  !body.nil?,
@@ -608,34 +608,39 @@ module Increase
608
608
  #
609
609
  # @param body [Object]
610
610
  #
611
- # @return [Array(String, Enumerable<String>)]
611
+ # @return [Array(String, Proc)]
612
612
  private def encode_multipart_streaming(body)
613
613
  # rubocop:disable Style/CaseEquality
614
614
  # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
615
615
  boundary = SecureRandom.urlsafe_base64(46)
616
616
 
617
- closing = []
618
- strio = writable_enum do |y|
619
- case body
620
- in Hash
621
- body.each do |key, val|
622
- case val
623
- in Array if val.all? { primitive?(_1) || Increase::Internal::Type::FileInput === _1 }
624
- val.each do |v|
625
- write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
617
+ # Retries and redirects resend the request, and a streamed body can only be read
618
+ # once, so hand back a factory that builds a fresh stream for each attempt.
619
+ stream = lambda do
620
+ closing = []
621
+ strio = writable_enum do |y|
622
+ case body
623
+ in Hash
624
+ body.each do |key, val|
625
+ case val
626
+ in Array if val.all? { primitive?(_1) || Increase::Internal::Type::FileInput === _1 }
627
+ val.each do |v|
628
+ write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
629
+ end
630
+ else
631
+ write_multipart_chunk(y, boundary: boundary, key: key, val: val, closing: closing)
626
632
  end
627
- else
628
- write_multipart_chunk(y, boundary: boundary, key: key, val: val, closing: closing)
629
633
  end
634
+ else
635
+ write_multipart_chunk(y, boundary: boundary, key: nil, val: body, closing: closing)
630
636
  end
631
- else
632
- write_multipart_chunk(y, boundary: boundary, key: nil, val: body, closing: closing)
637
+ y << "--#{boundary}--\r\n"
633
638
  end
634
- y << "--#{boundary}--\r\n"
639
+
640
+ fused_enum(strio) { closing.each(&:call) }
635
641
  end
636
642
 
637
- fused_io = fused_enum(strio) { closing.each(&:call) }
638
- [boundary, fused_io]
643
+ [boundary, stream]
639
644
  # rubocop:enable Style/CaseEquality
640
645
  end
641
646
 
@@ -59,25 +59,34 @@ module Increase
59
59
  required :cancellation, -> { Increase::ACHTransfer::Cancellation }, nil?: true
60
60
 
61
61
  # @!attribute company_descriptive_date
62
- # The description of the date of the transfer.
62
+ # A description of the transfer date (typically `YYMMDD`), sent in the company
63
+ # batch header. This value is informational and does not affect funds movement,
64
+ # settlement timing, or returns.
63
65
  #
64
66
  # @return [String, nil]
65
67
  required :company_descriptive_date, String, nil?: true
66
68
 
67
69
  # @!attribute company_discretionary_data
68
- # The data you chose to associate with the transfer.
70
+ # Custom data sent in the company batch header, meant as metadata for the
71
+ # originator. This value is informational and does not affect funds movement,
72
+ # settlement timing, or returns.
69
73
  #
70
74
  # @return [String, nil]
71
75
  required :company_discretionary_data, String, nil?: true
72
76
 
73
77
  # @!attribute company_entry_description
74
- # The description of the transfer you set to be shown to the recipient.
78
+ # A short description sent in the company batch header, meant to provide the
79
+ # receiver with a reason for the transfer. Many receivers do not surface this data
80
+ # on the receiver's bank statement.
75
81
  #
76
82
  # @return [String, nil]
77
83
  required :company_entry_description, String, nil?: true
78
84
 
79
85
  # @!attribute company_id
80
- # The company ID associated with the transfer.
86
+ # The Company ID sent in the batch header, which identifies the originator to the
87
+ # receiving bank. Businesses use this value to allowlist the companies permitted
88
+ # to debit their accounts. This value is configured by Increase and will be the
89
+ # same for all your transfers.
81
90
  #
82
91
  # @return [String]
83
92
  required :company_id, String
@@ -179,10 +188,8 @@ module Increase
179
188
  required :pending_transaction_id, String, nil?: true
180
189
 
181
190
  # @!attribute preferred_effective_date
182
- # Configuration for how the effective date of the transfer will be set. This
183
- # determines same-day vs future-dated settlement timing. If not set, defaults to a
184
- # `settlement_schedule` of `same_day`. If set, exactly one of the child attributes
185
- # must be set.
191
+ # Configuration for how the effective date of the transfer was set. This
192
+ # determines same-day vs future-dated settlement timing.
186
193
  #
187
194
  # @return [Increase::Models::ACHTransfer::PreferredEffectiveDate]
188
195
  required :preferred_effective_date, -> { Increase::ACHTransfer::PreferredEffectiveDate }
@@ -218,8 +225,8 @@ module Increase
218
225
  # @!attribute statement_descriptor
219
226
  # The descriptor that will show on the recipient's bank statement.
220
227
  #
221
- # @return [String]
222
- required :statement_descriptor, String
228
+ # @return [String, nil]
229
+ required :statement_descriptor, String, nil?: true
223
230
 
224
231
  # @!attribute status
225
232
  # The lifecycle status of the transfer.
@@ -281,14 +288,26 @@ module Increase
281
288
  # If your account requires approvals for transfers and the transfer was not
282
289
  # approved, this will contain details of the cancellation.
283
290
  #
284
- # @param company_descriptive_date [String, nil] The description of the date of the transfer.
291
+ # @param company_descriptive_date [String, nil]
292
+ # A description of the transfer date (typically `YYMMDD`), sent in the company
293
+ # batch header. This value is informational and does not affect funds movement,
294
+ # settlement timing, or returns.
285
295
  #
286
- # @param company_discretionary_data [String, nil] The data you chose to associate with the transfer.
296
+ # @param company_discretionary_data [String, nil]
297
+ # Custom data sent in the company batch header, meant as metadata for the
298
+ # originator. This value is informational and does not affect funds movement,
299
+ # settlement timing, or returns.
287
300
  #
288
301
  # @param company_entry_description [String, nil]
289
- # The description of the transfer you set to be shown to the recipient.
302
+ # A short description sent in the company batch header, meant to provide the
303
+ # receiver with a reason for the transfer. Many receivers do not surface this data
304
+ # on the receiver's bank statement.
290
305
  #
291
- # @param company_id [String] The company ID associated with the transfer.
306
+ # @param company_id [String]
307
+ # The Company ID sent in the batch header, which identifies the originator to the
308
+ # receiving bank. Businesses use this value to allowlist the companies permitted
309
+ # to debit their accounts. This value is configured by Increase and will be the
310
+ # same for all your transfers.
292
311
  #
293
312
  # @param company_name [String, nil] The name by which the recipient knows you.
294
313
  #
@@ -341,10 +360,8 @@ module Increase
341
360
  # by someone else in your organization.
342
361
  #
343
362
  # @param preferred_effective_date [Increase::Models::ACHTransfer::PreferredEffectiveDate]
344
- # Configuration for how the effective date of the transfer will be set. This
345
- # determines same-day vs future-dated settlement timing. If not set, defaults to a
346
- # `settlement_schedule` of `same_day`. If set, exactly one of the child attributes
347
- # must be set.
363
+ # Configuration for how the effective date of the transfer was set. This
364
+ # determines same-day vs future-dated settlement timing.
348
365
  #
349
366
  # @param return_ [Increase::Models::ACHTransfer::Return, nil]
350
367
  # If your transfer is returned, this will contain details of the return.
@@ -362,7 +379,7 @@ module Increase
362
379
  # [Standard Entry Class (SEC) code](/documentation/ach-standard-entry-class-codes)
363
380
  # to use for the transfer.
364
381
  #
365
- # @param statement_descriptor [String] The descriptor that will show on the recipient's bank statement.
382
+ # @param statement_descriptor [String, nil] The descriptor that will show on the recipient's bank statement.
366
383
  #
367
384
  # @param status [Symbol, Increase::Models::ACHTransfer::Status] The lifecycle status of the transfer.
368
385
  #
@@ -1069,10 +1086,8 @@ module Increase
1069
1086
  nil?: true
1070
1087
 
1071
1088
  # @!method initialize(date:, settlement_schedule:)
1072
- # Configuration for how the effective date of the transfer will be set. This
1073
- # determines same-day vs future-dated settlement timing. If not set, defaults to a
1074
- # `settlement_schedule` of `same_day`. If set, exactly one of the child attributes
1075
- # must be set.
1089
+ # Configuration for how the effective date of the transfer was set. This
1090
+ # determines same-day vs future-dated settlement timing.
1076
1091
  #
1077
1092
  # @param date [Date, nil]
1078
1093
  # A specific date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format to
@@ -8,15 +8,20 @@ module Increase
8
8
  include Increase::Internal::Type::RequestParameters
9
9
 
10
10
  # @!attribute account_id
11
- # The Increase identifier for the account that will send the transfer.
11
+ # The Increase identifier for the account that will originate the transfer. For
12
+ # credit transfers (transfers with a positive `amount`), this is the account that
13
+ # funds will be sent from. For debit transfers (transfers with a negative
14
+ # `amount`), this is the account that funds will be pulled into.
12
15
  #
13
16
  # @return [String]
14
17
  required :account_id, String
15
18
 
16
19
  # @!attribute amount
17
20
  # The transfer amount in USD cents. A positive amount originates a credit transfer
18
- # pushing funds to the receiving account. A negative amount originates a debit
19
- # transfer pulling funds from the receiving account.
21
+ # pushing funds from Increase to the account at the other bank. A negative amount
22
+ # originates a debit transfer pulling funds from the account at the other bank
23
+ # into Increase. Debit transfers
24
+ # [might result in a hold before funds are available](/documentation/sending-ach-debit-transfers).
20
25
  #
21
26
  # @return [Integer]
22
27
  required :amount, Integer
@@ -33,9 +38,10 @@ module Increase
33
38
  required :statement_descriptor, String
34
39
 
35
40
  # @!attribute account_number
36
- # The receiver's account number. For credit transfers (positive `amount`) this is
37
- # the account that funds will be sent to. For debit transfers (negative `amount`)
38
- # this is the account that funds will be pulled from.
41
+ # The receiver's account number. For credit transfers (transfers with a positive
42
+ # `amount`), this is the account that funds will be sent to. For debit transfers
43
+ # (transfers with a negative `amount`), this is the account that funds will be
44
+ # pulled from.
39
45
  #
40
46
  # @return [String, nil]
41
47
  optional :account_number, String
@@ -58,27 +64,32 @@ module Increase
58
64
  optional :company_descriptive_date, String
59
65
 
60
66
  # @!attribute company_discretionary_data
61
- # Custom data sent in the company batch header. This value is informational and
62
- # does not affect funds movement, settlement timing, or returns. Most ACH
63
- # transfers do not need this. Only set this if your recipient has asked for it.
67
+ # Custom data sent in the company batch header, meant as metadata for the
68
+ # originator. This value is informational and does not affect funds movement,
69
+ # settlement timing, or returns. Most ACH transfers do not need this; we recommend
70
+ # storing metadata in your own application instead.
64
71
  #
65
72
  # @return [String, nil]
66
73
  optional :company_discretionary_data, String
67
74
 
68
75
  # @!attribute company_entry_description
69
- # A short description sent in the company batch header. Most receivers do not
70
- # surface this. Only set this if your recipient has asked for a specific value or
71
- # if Nacha mandates one for your Standard Entry Class (SEC) code and use case. For
72
- # example, Prearranged Payment and Deposit (PPD) payroll credits must use
73
- # `PAYROLL`, and reversals must use `REVERSAL`.
76
+ # A short description sent in the company batch header, meant to provide the
77
+ # receiver with a reason for the transfer. Many receivers do not surface this data
78
+ # on the receiver's bank statement. Only set this if your recipient has asked for
79
+ # a specific value or if Nacha mandates one for your Standard Entry Class (SEC)
80
+ # code and use case. For example, some use cases require constants like
81
+ # `ACCTVERIFY`, `PURCHASE`, `PAYROLL`, or `REVERSAL`.
74
82
  #
75
83
  # @return [String, nil]
76
84
  optional :company_entry_description, String
77
85
 
78
86
  # @!attribute company_name
79
- # The name by which the recipient knows you, sent in the company batch header. We
80
- # recommend setting this on every transfer; if you do not, we fall back to the
81
- # `statement_descriptor`.
87
+ # The name by which the recipient knows the counterparty of this transaction. If
88
+ # you're processing payments on behalf of another party, use their name, not your
89
+ # own, so that it's more likely the recipient understands the context of the
90
+ # payment. This value is usually displayed to the recipient on their bank
91
+ # statement. We recommend setting this on every transfer; if you do not, we fall
92
+ # back to the `statement_descriptor`.
82
93
  #
83
94
  # @return [String, nil]
84
95
  optional :company_name, String
@@ -106,15 +117,19 @@ module Increase
106
117
  optional :funding, enum: -> { Increase::ACHTransferCreateParams::Funding }
107
118
 
108
119
  # @!attribute individual_id
109
- # Your internal identifier for the transfer recipient. This value is informational
110
- # and not verified by the recipient's bank. Most callers can leave this unset.
120
+ # Your internal identifier for the recipient. This value is informational and
121
+ # generally not verified by the recipient's bank. Most callers can leave this
122
+ # unset. For the specific case of person-to-person credits with the WEB standard
123
+ # entry class code, this must include the name of the payer.
111
124
  #
112
125
  # @return [String, nil]
113
126
  optional :individual_id, String
114
127
 
115
128
  # @!attribute individual_name
116
- # The name of the transfer recipient. This value is informational and not verified
117
- # by the recipient's bank.
129
+ # The name of the transfer recipient. This value is informational and generally
130
+ # not verified by the recipient's bank. This value is usually displayed to the
131
+ # recipient on their bank statement. We recommend setting this on every transfer;
132
+ # if you do not, we fall back to the `statement_descriptor`.
118
133
  #
119
134
  # @return [String, nil]
120
135
  optional :individual_name, String
@@ -152,12 +167,18 @@ module Increase
152
167
  enum: -> { Increase::ACHTransferCreateParams::StandardEntryClassCode }
153
168
 
154
169
  # @!method initialize(account_id:, amount:, statement_descriptor:, account_number: nil, addenda: nil, company_descriptive_date: nil, company_discretionary_data: nil, company_entry_description: nil, company_name: nil, destination_account_holder: nil, external_account_id: nil, funding: nil, individual_id: nil, individual_name: nil, preferred_effective_date: nil, require_approval: nil, routing_number: nil, standard_entry_class_code: nil, request_options: {})
155
- # @param account_id [String] The Increase identifier for the account that will send the transfer.
170
+ # @param account_id [String]
171
+ # The Increase identifier for the account that will originate the transfer. For
172
+ # credit transfers (transfers with a positive `amount`), this is the account that
173
+ # funds will be sent from. For debit transfers (transfers with a negative
174
+ # `amount`), this is the account that funds will be pulled into.
156
175
  #
157
176
  # @param amount [Integer]
158
177
  # The transfer amount in USD cents. A positive amount originates a credit transfer
159
- # pushing funds to the receiving account. A negative amount originates a debit
160
- # transfer pulling funds from the receiving account.
178
+ # pushing funds from Increase to the account at the other bank. A negative amount
179
+ # originates a debit transfer pulling funds from the account at the other bank
180
+ # into Increase. Debit transfers
181
+ # [might result in a hold before funds are available](/documentation/sending-ach-debit-transfers).
161
182
  #
162
183
  # @param statement_descriptor [String]
163
184
  # A description you choose to give the transfer. This will be saved with the
@@ -168,9 +189,10 @@ module Increase
168
189
  # `individual_name` and `company_name` instead of relying on this fallback.
169
190
  #
170
191
  # @param account_number [String]
171
- # The receiver's account number. For credit transfers (positive `amount`) this is
172
- # the account that funds will be sent to. For debit transfers (negative `amount`)
173
- # this is the account that funds will be pulled from.
192
+ # The receiver's account number. For credit transfers (transfers with a positive
193
+ # `amount`), this is the account that funds will be sent to. For debit transfers
194
+ # (transfers with a negative `amount`), this is the account that funds will be
195
+ # pulled from.
174
196
  #
175
197
  # @param addenda [Increase::Models::ACHTransferCreateParams::Addenda]
176
198
  # Additional information passed through to the receiving bank with the transfer.
@@ -184,21 +206,26 @@ module Increase
184
206
  # settlement timing, or returns. Only set this if your recipient has asked for it.
185
207
  #
186
208
  # @param company_discretionary_data [String]
187
- # Custom data sent in the company batch header. This value is informational and
188
- # does not affect funds movement, settlement timing, or returns. Most ACH
189
- # transfers do not need this. Only set this if your recipient has asked for it.
209
+ # Custom data sent in the company batch header, meant as metadata for the
210
+ # originator. This value is informational and does not affect funds movement,
211
+ # settlement timing, or returns. Most ACH transfers do not need this; we recommend
212
+ # storing metadata in your own application instead.
190
213
  #
191
214
  # @param company_entry_description [String]
192
- # A short description sent in the company batch header. Most receivers do not
193
- # surface this. Only set this if your recipient has asked for a specific value or
194
- # if Nacha mandates one for your Standard Entry Class (SEC) code and use case. For
195
- # example, Prearranged Payment and Deposit (PPD) payroll credits must use
196
- # `PAYROLL`, and reversals must use `REVERSAL`.
215
+ # A short description sent in the company batch header, meant to provide the
216
+ # receiver with a reason for the transfer. Many receivers do not surface this data
217
+ # on the receiver's bank statement. Only set this if your recipient has asked for
218
+ # a specific value or if Nacha mandates one for your Standard Entry Class (SEC)
219
+ # code and use case. For example, some use cases require constants like
220
+ # `ACCTVERIFY`, `PURCHASE`, `PAYROLL`, or `REVERSAL`.
197
221
  #
198
222
  # @param company_name [String]
199
- # The name by which the recipient knows you, sent in the company batch header. We
200
- # recommend setting this on every transfer; if you do not, we fall back to the
201
- # `statement_descriptor`.
223
+ # The name by which the recipient knows the counterparty of this transaction. If
224
+ # you're processing payments on behalf of another party, use their name, not your
225
+ # own, so that it's more likely the recipient understands the context of the
226
+ # payment. This value is usually displayed to the recipient on their bank
227
+ # statement. We recommend setting this on every transfer; if you do not, we fall
228
+ # back to the `statement_descriptor`.
202
229
  #
203
230
  # @param destination_account_holder [Symbol, Increase::Models::ACHTransferCreateParams::DestinationAccountHolder]
204
231
  # The type of entity that owns the receiver's account.
@@ -213,12 +240,16 @@ module Increase
213
240
  # Defaults to `checking`.
214
241
  #
215
242
  # @param individual_id [String]
216
- # Your internal identifier for the transfer recipient. This value is informational
217
- # and not verified by the recipient's bank. Most callers can leave this unset.
243
+ # Your internal identifier for the recipient. This value is informational and
244
+ # generally not verified by the recipient's bank. Most callers can leave this
245
+ # unset. For the specific case of person-to-person credits with the WEB standard
246
+ # entry class code, this must include the name of the payer.
218
247
  #
219
248
  # @param individual_name [String]
220
- # The name of the transfer recipient. This value is informational and not verified
221
- # by the recipient's bank.
249
+ # The name of the transfer recipient. This value is informational and generally
250
+ # not verified by the recipient's bank. This value is usually displayed to the
251
+ # recipient on their bank statement. We recommend setting this on every transfer;
252
+ # if you do not, we fall back to the `statement_descriptor`.
222
253
  #
223
254
  # @param preferred_effective_date [Increase::Models::ACHTransferCreateParams::PreferredEffectiveDate]
224
255
  # Configuration for how the effective date of the transfer will be set. This