Class: ThePlaidApi::IdentityVerificationRetryRequest

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

Overview

Request input for retrying an identity verification attempt

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(client_user_id:, template_id:, strategy:, user: SKIP, steps: SKIP, is_shareable: SKIP, client_id: SKIP, secret: SKIP, additional_properties: nil) ⇒ IdentityVerificationRetryRequest

Returns a new instance of IdentityVerificationRetryRequest.



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 134

def initialize(client_user_id:, template_id:, strategy:, user: SKIP,
               steps: SKIP, is_shareable: SKIP, client_id: SKIP,
               secret: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @client_user_id = client_user_id
  @template_id = template_id
  @strategy = strategy
  @user = user unless user == SKIP
  @steps = steps unless steps == SKIP
  @is_shareable = is_shareable unless is_shareable == SKIP
  @client_id = client_id unless client_id == SKIP
  @secret = secret unless secret == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#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)


93
94
95
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 93

def client_id
  @client_id
end

#client_user_idString

A unique ID that identifies the end user in your system. Either a ‘user_id` or the `client_user_id` must be provided. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the `/link/token/create` `client_user_id` to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.

Returns:

  • (String)


20
21
22
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 20

def client_user_id
  @client_user_id
end

#is_shareableTrueClass | FalseClass

A flag specifying whether you would like Plaid to expose a shareable URL for the verification being retried. If a value for this flag is not specified, the ‘is_shareable` setting from the original verification attempt will be used.

Returns:

  • (TrueClass | FalseClass)


87
88
89
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 87

def is_shareable
  @is_shareable
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)


98
99
100
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 98

def secret
  @secret
end

#stepsIdentityVerificationRetryRequestStepsObject

Instructions for the ‘custom` retry strategy specifying which steps should be required or skipped. Note: This field must be provided when the retry strategy is `custom` and must be omitted otherwise. Custom retries override settings in your Plaid Template. For example, if your Plaid Template has `verify_sms` disabled, a custom retry with `verify_sms` enabled will still require the step. The `selfie_check` step is currently not supported on the sandbox server. Sandbox requests will silently disable the `selfie_check` step when provided.



80
81
82
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 80

def steps
  @steps
end

#strategyStrategy

An instruction specifying what steps the new Identity Verification attempt should require the user to complete: ‘reset` - Restart the user at the beginning of the session, regardless of whether they successfully completed part of their previous session. `incomplete` - Start the new session at the step that the user failed in the previous session, skipping steps that have already been successfully completed. `infer` - If the most recent Identity Verification attempt associated with the given `client_user_id` has a status of `failed` or `expired`, retry using the `incomplete` strategy. Otherwise, use the `reset` strategy. `custom` - Start the new session with a custom configuration, specified by the value of the `steps` field Note: The `incomplete` strategy cannot be applied if the session’s failing step is ‘screening` or `risk_check`. The `infer` strategy cannot be applied if the session’s status is still ‘active`

Returns:



45
46
47
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 45

def strategy
  @strategy
end

#template_idString

ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.

Returns:

  • (String)


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

def template_id
  @template_id
end

#userIdentityVerificationRequestUser

User information collected outside of Link, most likely via your own onboarding process. Each of the following identity fields are optional: ‘email_address` `phone_number` `date_of_birth` `name` `address` `id_number` Specifically, these fields are optional in that they can either be fully provided (satisfying every required field in their subschema) or omitted from the request entirely by not providing the key or value. Providing these fields via the API will result in Link skipping the data collection process for the associated user. All verification steps enabled in the associated Identity Verification Template will still be run. Verification steps will either be run immediately, or once the user completes the `accept_tos` step, depending on the value provided to the `gave_consent` field.



66
67
68
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 66

def user
  @user
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 152

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  client_user_id =
    hash.key?('client_user_id') ? hash['client_user_id'] : nil
  template_id = hash.key?('template_id') ? hash['template_id'] : nil
  strategy = hash.key?('strategy') ? hash['strategy'] : nil
  user = IdentityVerificationRequestUser.from_hash(hash['user']) if hash['user']
  steps = IdentityVerificationRetryRequestStepsObject.from_hash(hash['steps']) if
    hash['steps']
  is_shareable = hash.key?('is_shareable') ? hash['is_shareable'] : SKIP
  client_id = hash.key?('client_id') ? hash['client_id'] : SKIP
  secret = hash.key?('secret') ? hash['secret'] : 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.
  IdentityVerificationRetryRequest.new(client_user_id: client_user_id,
                                       template_id: template_id,
                                       strategy: strategy,
                                       user: user,
                                       steps: steps,
                                       is_shareable: is_shareable,
                                       client_id: client_id,
                                       secret: secret,
                                       additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 101

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['client_user_id'] = 'client_user_id'
  @_hash['template_id'] = 'template_id'
  @_hash['strategy'] = 'strategy'
  @_hash['user'] = 'user'
  @_hash['steps'] = 'steps'
  @_hash['is_shareable'] = 'is_shareable'
  @_hash['client_id'] = 'client_id'
  @_hash['secret'] = 'secret'
  @_hash
end

.nullablesObject

An array for nullable fields



126
127
128
129
130
131
132
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 126

def self.nullables
  %w[
    user
    steps
    is_shareable
  ]
end

.optionalsObject

An array for optional fields



115
116
117
118
119
120
121
122
123
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 115

def self.optionals
  %w[
    user
    steps
    is_shareable
    client_id
    secret
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



195
196
197
198
199
200
201
202
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 195

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} client_user_id: #{@client_user_id.inspect}, template_id:"\
  " #{@template_id.inspect}, strategy: #{@strategy.inspect}, user: #{@user.inspect}, steps:"\
  " #{@steps.inspect}, is_shareable: #{@is_shareable.inspect}, client_id:"\
  " #{@client_id.inspect}, secret: #{@secret.inspect}, additional_properties:"\
  " #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



187
188
189
190
191
192
# File 'lib/the_plaid_api/models/identity_verification_retry_request.rb', line 187

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} client_user_id: #{@client_user_id}, template_id: #{@template_id}, strategy:"\
  " #{@strategy}, user: #{@user}, steps: #{@steps}, is_shareable: #{@is_shareable}, client_id:"\
  " #{@client_id}, secret: #{@secret}, additional_properties: #{@additional_properties}>"
end