Class: ThePlaidApi::TransferAuthorizationCreateRequest

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/the_plaid_api/models/transfer_authorization_create_request.rb

Overview

Defines the request schema for ‘/transfer/authorization/create`

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(access_token:, account_id:, type:, network:, amount:, user:, client_id: SKIP, secret: SKIP, funding_account_id: SKIP, ledger_id: SKIP, payment_profile_token: SKIP, ach_class: SKIP, wire_details: SKIP, device: SKIP, origination_account_id: SKIP, iso_currency_code: SKIP, idempotency_key: SKIP, user_present: SKIP, with_guarantee: true, request_guarantee: SKIP, beacon_session_id: SKIP, originator_client_id: SKIP, credit_funds_source: SKIP, test_clock_id: SKIP, ruleset_key: SKIP, additional_properties: nil) ⇒ TransferAuthorizationCreateRequest

Returns a new instance of TransferAuthorizationCreateRequest.



288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 288

def initialize(access_token:, account_id:, type:, network:, amount:, user:,
               client_id: SKIP, secret: SKIP, funding_account_id: SKIP,
               ledger_id: SKIP, payment_profile_token: SKIP,
               ach_class: SKIP, wire_details: SKIP, device: SKIP,
               origination_account_id: SKIP, iso_currency_code: SKIP,
               idempotency_key: SKIP, user_present: SKIP,
               with_guarantee: true, request_guarantee: SKIP,
               beacon_session_id: SKIP, originator_client_id: SKIP,
               credit_funds_source: SKIP, test_clock_id: SKIP,
               ruleset_key: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @client_id = client_id unless client_id == SKIP
  @secret = secret unless secret == SKIP
  @access_token = access_token
  @account_id = 
  @funding_account_id =  unless  == SKIP
  @ledger_id = ledger_id unless ledger_id == SKIP
  @payment_profile_token = payment_profile_token unless payment_profile_token == SKIP
  @type = type
  @network = network
  @amount = amount
  @ach_class = ach_class unless ach_class == SKIP
  @wire_details = wire_details unless wire_details == SKIP
  @user = user
  @device = device unless device == SKIP
  @origination_account_id =  unless  == SKIP
  @iso_currency_code = iso_currency_code unless iso_currency_code == SKIP
  @idempotency_key = idempotency_key unless idempotency_key == SKIP
  @user_present = user_present unless user_present == SKIP
  @with_guarantee = with_guarantee unless with_guarantee == SKIP
  @request_guarantee = request_guarantee unless request_guarantee == SKIP
  @beacon_session_id = beacon_session_id unless beacon_session_id == SKIP
  @originator_client_id = originator_client_id unless originator_client_id == SKIP
  @credit_funds_source = credit_funds_source unless credit_funds_source == SKIP
  @test_clock_id = test_clock_id unless test_clock_id == SKIP
  @ruleset_key = ruleset_key unless ruleset_key == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#access_tokenString

The Plaid ‘access_token` for the account that will be debited or credited.

Returns:

  • (String)


25
26
27
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 25

def access_token
  @access_token
end

#account_idString

The Plaid ‘account_id` corresponding to the end-user account that will be debited or credited.

Returns:

  • (String)


30
31
32
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 30

def 
  @account_id
end

#ach_classAchClass

Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC codes](plaid.com/docs/transfer/creating-transfers/#ach-sec-codes). Codes supported for credits: ‘ccd`, `ppd` Codes supported for debits: `ccd`, `tel`, `web` `“ccd”` - Corporate Credit or Debit - fund transfer between two corporate bank accounts `“ppd”` - Prearranged Payment or Deposit - The transfer is part of a pre-existing relationship with a consumer. Authorization was obtained in writing either in person or via an electronic document signing, e.g. Docusign, by the consumer. Can be used for credits or debits. `“web”` - Internet-Initiated Entry. The transfer debits a consumer’s bank account. Authorization from the consumer is obtained over the Internet (e.g. a web or mobile application). Can be used for single debits or recurring debits. `“tel”` - Telephone-Initiated Entry. The transfer debits a consumer. Debit authorization has been received orally over the telephone via a recorded call.

Returns:



118
119
120
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 118

def ach_class
  @ach_class
end

#amountString

The amount of the transfer (decimal string with two digits of precision e.g. “10.00”). When calling ‘/transfer/authorization/create`, specify the maximum amount to authorize. When calling `/transfer/create`, specify the exact amount of the transfer, up to a maximum of the amount authorized. If this field is left blank when calling `/transfer/create`, the maximum amount authorized in the `authorization_id` will be sent.

Returns:

  • (String)


97
98
99
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 97

def amount
  @amount
end

#beacon_session_idString

The unique identifier returned by Plaid’s [beacon](plaid.com/docs/transfer/guarantee/#using-a-beacon) when it is run on your webpage.

Returns:

  • (String)


187
188
189
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 187

def beacon_session_id
  @beacon_session_id
end

#client_idString

Your Plaid API ‘client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.

Returns:

  • (String)


16
17
18
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 16

def client_id
  @client_id
end

#credit_funds_sourceTransferCreditFundsSource

The Plaid client ID that is the originator of this transfer. Only needed if creating transfers on behalf of another client as a [Platform customer](plaid.com/docs/transfer/application/#originators-vs-plat forms).



201
202
203
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 201

def credit_funds_source
  @credit_funds_source
end

#deviceTransferAuthorizationDevice

Information about the device being used to initiate the authorization. These fields are not currently incorporated into the risk check.



135
136
137
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 135

def device
  @device
end

#funding_account_idString

Specify the account used to fund the transfer. Should be specified if using legacy funding methods only. If using Plaid Ledger, leave this field blank. Customers can find a list of ‘funding_account_id`s in the Accounts page of your Plaid Dashboard, under the “Account ID” column. If this field is left blank and you are using legacy funding methods, this will default to the default `funding_account_id` specified during onboarding. Otherwise, Plaid Ledger will be used.

Returns:

  • (String)


40
41
42
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 40

def 
  @funding_account_id
end

#idempotency_keyString

A random key provided by the client, per unique authorization, which expires after 48 hours. Maximum of 50 characters. The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create an authorization fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single authorization is created. Idempotency does not apply to authorizations whose decisions are ‘user_action_required`. Therefore you may re-attempt the authorization after completing the required user action without changing `idempotency_key`. This idempotency key expires after 48 hours, after which the same key can be reused. Failure to provide this key may result in duplicate charges.

Returns:

  • (String)


160
161
162
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 160

def idempotency_key
  @idempotency_key
end

#iso_currency_codeString

The currency of the transfer amount. The default value is “USD”.

Returns:

  • (String)


144
145
146
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 144

def iso_currency_code
  @iso_currency_code
end

#ledger_idString

Specify which ledger balance should be used to fund the transfer. You can find a list of ‘ledger_id`s in the Accounts page of your Plaid Dashboard. If this field is left blank, this will default to id of the default ledger balance.

Returns:

  • (String)


47
48
49
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 47

def ledger_id
  @ledger_id
end

#networkTransferNetwork

The network or rails used for the transfer. For transfers submitted as ‘ach` or `same-day-ach`, the Standard ACH cutoff is 8:30 PM Eastern Time. For transfers submitted as `same-day-ach`, the Same Day ACH cutoff is 3:00 PM Eastern Time. It is recommended to send the request 15 minutes prior to the cutoff to ensure that it will be processed in time for submission before the cutoff. If the transfer is processed after this cutoff but before the Standard ACH cutoff, it will be sent over Standard ACH rails and will not incur same-day charges; this will apply to both legs of the transfer if applicable. The transaction limit for a Same Day ACH transfer is $1,000,000. Authorization requests sent with an amount greater than $1,000,000 will fail. For transfers submitted as `rtp`, Plaid will automatically route between Real Time Payment rail by TCH or FedNow rails as necessary. If a transfer is submitted as `rtp` and the counterparty account is not eligible for RTP, the `/transfer/authorization/create` request will fail with an `INVALID_FIELD` error code. To pre-check to determine whether a counterparty account can support RTP, call `/transfer/capabilities/get` before calling `/transfer/authorization/create`. Wire transfers are currently in early availability. To request access to `wire` as a payment network, contact your Account Manager. For transfers submitted as `wire`, the `type` must be `credit`; wire debits are not supported. The cutoff to submit a wire payment is 6:30 PM Eastern Time on a business day; wires submitted after that time will be processed on the next business day. The transaction limit for a wire is $999,999.99. Authorization requests sent with an amount greater than $999,999.99 will fail.

Returns:



88
89
90
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 88

def network
  @network
end

#origination_account_idString

Plaid’s unique identifier for the origination account for this authorization. If not specified, the default account will be used.

Returns:

  • (String)


140
141
142
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 140

def 
  @origination_account_id
end

#originator_client_idString

The Plaid client ID that is the originator of this transfer. Only needed if creating transfers on behalf of another client as a [Platform customer](plaid.com/docs/transfer/application/#originators-vs-plat forms).

Returns:

  • (String)


194
195
196
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 194

def originator_client_id
  @originator_client_id
end

#payment_profile_tokenString

The payment profile token associated with the Payment Profile that will be debited or credited. Required if not using ‘access_token`.

Returns:

  • (String)


52
53
54
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 52

def payment_profile_token
  @payment_profile_token
end

#request_guaranteeTrueClass | FalseClass

Indicates whether the transfer should be evaluated for guarantee coverage. When set to ‘true`, Plaid assesses the transfer for guarantee coverage and returns a decision in the authorization response. When omitted or set to `false`, the authorization is evaluated without guarantee coverage.

Returns:

  • (TrueClass | FalseClass)


181
182
183
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 181

def request_guarantee
  @request_guarantee
end

#ruleset_keyString

The key of the Ruleset for the transaction. This feature is currently in closed beta; to request access, contact your account manager.

Returns:

  • (String)


212
213
214
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 212

def ruleset_key
  @ruleset_key
end

#secretString

Your Plaid API ‘secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.

Returns:

  • (String)


21
22
23
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 21

def secret
  @secret
end

#test_clock_idString

Plaid’s unique identifier for a test clock. This field may only be used when using ‘sandbox` environment. If provided, the `authorization` is created at the `virtual_time` on the provided test clock.

Returns:

  • (String)


207
208
209
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 207

def test_clock_id
  @test_clock_id
end

#typeTransferType1

The type of transfer. This will be either ‘debit` or `credit`. A `debit` indicates a transfer of money into the origination account; a `credit` indicates a transfer of money out of the origination account.

Returns:



58
59
60
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 58

def type
  @type
end

#userTransferAuthorizationUserInRequest

The legal name and other information for the account holder. If the account has multiple account holders, provide the information for the account holder on whose behalf the authorization is being requested. The ‘user.legal_name` field is required. Other fields are not currently used and are present to support planned future functionality.



130
131
132
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 130

def user
  @user
end

#user_presentTrueClass | FalseClass

If the end user is initiating the specific transfer themselves via an interactive UI, this should be ‘true`; for automatic recurring payments where the end user is not actually initiating each individual transfer, it should be `false`. This field is not currently used and is present to support planned future functionality.

Returns:

  • (TrueClass | FalseClass)


168
169
170
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 168

def user_present
  @user_present
end

#wire_detailsTransferWireDetails

Information specific to wire transfers.

Returns:



122
123
124
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 122

def wire_details
  @wire_details
end

#with_guaranteeTrueClass | FalseClass

If set to ‘false`, Plaid will not offer a `guarantee_decision` for this request (Guarantee customers only). This field is deprecated in favor for `guarantee`.

Returns:

  • (TrueClass | FalseClass)


174
175
176
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 174

def with_guarantee
  @with_guarantee
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 330

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  access_token = hash.key?('access_token') ? hash['access_token'] : nil
   = hash.key?('account_id') ? hash['account_id'] : nil
  type = hash.key?('type') ? hash['type'] : nil
  network = hash.key?('network') ? hash['network'] : nil
  amount = hash.key?('amount') ? hash['amount'] : nil
  user = TransferAuthorizationUserInRequest.from_hash(hash['user']) if hash['user']
  client_id = hash.key?('client_id') ? hash['client_id'] : SKIP
  secret = hash.key?('secret') ? hash['secret'] : SKIP
   =
    hash.key?('funding_account_id') ? hash['funding_account_id'] : SKIP
  ledger_id = hash.key?('ledger_id') ? hash['ledger_id'] : SKIP
  payment_profile_token =
    hash.key?('payment_profile_token') ? hash['payment_profile_token'] : SKIP
  ach_class = hash.key?('ach_class') ? hash['ach_class'] : SKIP
  wire_details = TransferWireDetails.from_hash(hash['wire_details']) if hash['wire_details']
  device = TransferAuthorizationDevice.from_hash(hash['device']) if hash['device']
   =
    hash.key?('origination_account_id') ? hash['origination_account_id'] : SKIP
  iso_currency_code =
    hash.key?('iso_currency_code') ? hash['iso_currency_code'] : SKIP
  idempotency_key =
    hash.key?('idempotency_key') ? hash['idempotency_key'] : SKIP
  user_present = hash.key?('user_present') ? hash['user_present'] : SKIP
  with_guarantee = hash['with_guarantee'] ||= true
  request_guarantee =
    hash.key?('request_guarantee') ? hash['request_guarantee'] : SKIP
  beacon_session_id =
    hash.key?('beacon_session_id') ? hash['beacon_session_id'] : SKIP
  originator_client_id =
    hash.key?('originator_client_id') ? hash['originator_client_id'] : SKIP
  credit_funds_source =
    hash.key?('credit_funds_source') ? hash['credit_funds_source'] : SKIP
  test_clock_id = hash.key?('test_clock_id') ? hash['test_clock_id'] : SKIP
  ruleset_key = hash.key?('ruleset_key') ? hash['ruleset_key'] : SKIP

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  TransferAuthorizationCreateRequest.new(access_token: access_token,
                                         account_id: ,
                                         type: type,
                                         network: network,
                                         amount: amount,
                                         user: user,
                                         client_id: client_id,
                                         secret: secret,
                                         funding_account_id: ,
                                         ledger_id: ledger_id,
                                         payment_profile_token: payment_profile_token,
                                         ach_class: ach_class,
                                         wire_details: wire_details,
                                         device: device,
                                         origination_account_id: ,
                                         iso_currency_code: iso_currency_code,
                                         idempotency_key: idempotency_key,
                                         user_present: user_present,
                                         with_guarantee: with_guarantee,
                                         request_guarantee: request_guarantee,
                                         beacon_session_id: beacon_session_id,
                                         originator_client_id: originator_client_id,
                                         credit_funds_source: credit_funds_source,
                                         test_clock_id: test_clock_id,
                                         ruleset_key: ruleset_key,
                                         additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 215

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['client_id'] = 'client_id'
  @_hash['secret'] = 'secret'
  @_hash['access_token'] = 'access_token'
  @_hash['account_id'] = 'account_id'
  @_hash['funding_account_id'] = 'funding_account_id'
  @_hash['ledger_id'] = 'ledger_id'
  @_hash['payment_profile_token'] = 'payment_profile_token'
  @_hash['type'] = 'type'
  @_hash['network'] = 'network'
  @_hash['amount'] = 'amount'
  @_hash['ach_class'] = 'ach_class'
  @_hash['wire_details'] = 'wire_details'
  @_hash['user'] = 'user'
  @_hash['device'] = 'device'
  @_hash['origination_account_id'] = 'origination_account_id'
  @_hash['iso_currency_code'] = 'iso_currency_code'
  @_hash['idempotency_key'] = 'idempotency_key'
  @_hash['user_present'] = 'user_present'
  @_hash['with_guarantee'] = 'with_guarantee'
  @_hash['request_guarantee'] = 'request_guarantee'
  @_hash['beacon_session_id'] = 'beacon_session_id'
  @_hash['originator_client_id'] = 'originator_client_id'
  @_hash['credit_funds_source'] = 'credit_funds_source'
  @_hash['test_clock_id'] = 'test_clock_id'
  @_hash['ruleset_key'] = 'ruleset_key'
  @_hash
end

.nullablesObject

An array for nullable fields



271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 271

def self.nullables
  %w[
    funding_account_id
    ledger_id
    wire_details
    idempotency_key
    user_present
    with_guarantee
    request_guarantee
    beacon_session_id
    originator_client_id
    credit_funds_source
    test_clock_id
    ruleset_key
  ]
end

.optionalsObject

An array for optional fields



246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 246

def self.optionals
  %w[
    client_id
    secret
    funding_account_id
    ledger_id
    payment_profile_token
    ach_class
    wire_details
    device
    origination_account_id
    iso_currency_code
    idempotency_key
    user_present
    with_guarantee
    request_guarantee
    beacon_session_id
    originator_client_id
    credit_funds_source
    test_clock_id
    ruleset_key
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 423

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} client_id: #{@client_id.inspect}, secret: #{@secret.inspect}, access_token:"\
  " #{@access_token.inspect}, account_id: #{@account_id.inspect}, funding_account_id:"\
  " #{@funding_account_id.inspect}, ledger_id: #{@ledger_id.inspect}, payment_profile_token:"\
  " #{@payment_profile_token.inspect}, type: #{@type.inspect}, network: #{@network.inspect},"\
  " amount: #{@amount.inspect}, ach_class: #{@ach_class.inspect}, wire_details:"\
  " #{@wire_details.inspect}, user: #{@user.inspect}, device: #{@device.inspect},"\
  " origination_account_id: #{@origination_account_id.inspect}, iso_currency_code:"\
  " #{@iso_currency_code.inspect}, idempotency_key: #{@idempotency_key.inspect}, user_present:"\
  " #{@user_present.inspect}, with_guarantee: #{@with_guarantee.inspect}, request_guarantee:"\
  " #{@request_guarantee.inspect}, beacon_session_id: #{@beacon_session_id.inspect},"\
  " originator_client_id: #{@originator_client_id.inspect}, credit_funds_source:"\
  " #{@credit_funds_source.inspect}, test_clock_id: #{@test_clock_id.inspect}, ruleset_key:"\
  " #{@ruleset_key.inspect}, additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
# File 'lib/the_plaid_api/models/transfer_authorization_create_request.rb', line 406

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} client_id: #{@client_id}, secret: #{@secret}, access_token:"\
  " #{@access_token}, account_id: #{@account_id}, funding_account_id: #{@funding_account_id},"\
  " ledger_id: #{@ledger_id}, payment_profile_token: #{@payment_profile_token}, type:"\
  " #{@type}, network: #{@network}, amount: #{@amount}, ach_class: #{@ach_class},"\
  " wire_details: #{@wire_details}, user: #{@user}, device: #{@device},"\
  " origination_account_id: #{@origination_account_id}, iso_currency_code:"\
  " #{@iso_currency_code}, idempotency_key: #{@idempotency_key}, user_present:"\
  " #{@user_present}, with_guarantee: #{@with_guarantee}, request_guarantee:"\
  " #{@request_guarantee}, beacon_session_id: #{@beacon_session_id}, originator_client_id:"\
  " #{@originator_client_id}, credit_funds_source: #{@credit_funds_source}, test_clock_id:"\
  " #{@test_clock_id}, ruleset_key: #{@ruleset_key}, additional_properties:"\
  " #{@additional_properties}>"
end