Class: VisaAcceptanceMergedSpec::AccountFeatures

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/visa_acceptance_merged_spec/models/account_features.rb

Overview

AccountFeatures Model.

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(account_type: SKIP, account_status: SKIP, balances: SKIP, balance_amount: SKIP, balance_amount_type: SKIP, currency: SKIP, balance_sign: SKIP, affluence_indicator: SKIP, category: SKIP, commercial: SKIP, group: SKIP, health_care: SKIP, payroll: SKIP, level3_eligible: SKIP, pinless_debit: SKIP, signature_debit: SKIP, prepaid: SKIP, regulated: SKIP, account_holder_type: SKIP, additional_properties: nil) ⇒ AccountFeatures

Returns a new instance of AccountFeatures.



306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 306

def initialize(account_type: SKIP, account_status: SKIP, balances: SKIP,
               balance_amount: SKIP, balance_amount_type: SKIP,
               currency: SKIP, balance_sign: SKIP,
               affluence_indicator: SKIP, category: SKIP, commercial: SKIP,
               group: SKIP, health_care: SKIP, payroll: SKIP,
               level3_eligible: SKIP, pinless_debit: SKIP,
               signature_debit: SKIP, prepaid: SKIP, regulated: SKIP,
               account_holder_type: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @account_type =  unless  == SKIP
  @account_status =  unless  == SKIP
  @balances = balances unless balances == SKIP
  @balance_amount = balance_amount unless balance_amount == SKIP
  @balance_amount_type = balance_amount_type unless balance_amount_type == SKIP
  @currency = currency unless currency == SKIP
  @balance_sign = balance_sign unless balance_sign == SKIP
  @affluence_indicator = affluence_indicator unless affluence_indicator == SKIP
  @category = category unless category == SKIP
  @commercial = commercial unless commercial == SKIP
  @group = group unless group == SKIP
  @health_care = health_care unless health_care == SKIP
  @payroll = payroll unless payroll == SKIP
  @level3_eligible = level3_eligible unless level3_eligible == SKIP
  @pinless_debit = pinless_debit unless pinless_debit == SKIP
  @signature_debit = signature_debit unless signature_debit == SKIP
  @prepaid = prepaid unless prepaid == SKIP
  @regulated = regulated unless regulated == SKIP
  @account_holder_type =  unless  == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#account_holder_typeString

This is the account owner information, valid values are:

  • 01 : primary account holder
  • 02 : secondary account holder This is returned in the response of an account verification transaction by the Issuer.

Returns:

  • (String)


249
250
251
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 249

def 
  @account_holder_type
end

#account_statusString

Possible values:

  • N: Nonregulated
  • R: Regulated Returned by PIN debit credit or PIN debit purchase. Note This field is returned only for Visa Acceptance through VisaNet.

Returns:

  • (String)


39
40
41
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 39

def 
  @account_status
end

#account_typeString

Type of account. This value is returned only if you requested a balance inquiry. Possible values:

  • 00: Not applicable or not specified
  • 10: Savings account
  • 20: Checking account
  • 30: Credit card account
  • 40: Universal account

PIN debit

Type of account. This value is returned only if you requested a balance inquiry. Possible values:

  • 00: Not applicable or not specified
  • 10: Savings account
  • 20: Checking account
  • 40: Universal account
  • 96: Cash benefits account
  • 98: Food stamp account Returned by PIN debit purchase.

Returns:

  • (String)


31
32
33
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 31

def 
  @account_type
end

#affluence_indicatorString

Chase Paymentech Solutions Indicates whether a customer has high credit limits. This information enables you to market high cost items to these customers and to understand the kinds of cards that high income customers are using. This field is supported for Visa, Mastercard, Discover, and Diners Club. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Litle

Flag that indicates that a Visa cardholder or Mastercard cardholder is in one of the affluent categories. Possible values:

  • AFFLUENT: High income customer with high spending pattern (>100k USD annual income and >40k USD annual card usage).
  • MASS AFFLUENT: High income customer (>100k USD annual income). Maximum length is 13.

Chase Paymentech Solutions

Maximum length is 1.

Returns:

  • (String)


111
112
113
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 111

def affluence_indicator
  @affluence_indicator
end

#balance_amountString

Remaining balance on the account. Returned by authorization service.

PIN debit

Remaining balance on the prepaid card. Returned by PIN debit purchase.

Returns:

  • (String)


52
53
54
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 52

def balance_amount
  @balance_amount
end

#balance_amount_typeString

Type of amount. This value is returned only if you requested a balance inquiry. The issuer determines the value that is returned. Possible values for deposit accounts:

  • 01: Current ledger (posted) balance.
  • 02: Current available balance, which is typically the ledger balance less outstanding authorizations. Some depository institutions also include pending deposits and the credit or overdraft line associated with the account. Possible values for credit card accounts:
  • 01: Credit amount remaining for customer (open to buy).
  • 02: Credit limit.

Returns:

  • (String)


66
67
68
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 66

def balance_amount_type
  @balance_amount_type
end

#balance_signString

Sign for the remaining balance on the account. Returned only when the processor returns this value. Possible values: Possible values:

  • Positive
  • Negative

PIN debit

Sign for the remaining balance on the prepaid card. Returned only when the processor returns this value. Returned by PIN debit purchase.

Returns:

  • (String)


87
88
89
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 87

def balance_sign
  @balance_sign
end

#balancesArray[Balance]

This is an array of multiple balances information an issuer can return for a given card.

Returns:



44
45
46
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 44

def balances
  @balances
end

#categoryString

GPX

Mastercard product ID associated with the primary account number (PAN). Returned by authorization service.

Visa Acceptance through VisaNet

Visa or Mastercard product ID that is associated with the primary account number (PAN). For descriptions of the Visa product IDs, see the Product ID table on the [Visa Request & Response Codes web page.]( Data Length: String (3)

GPN

Visa or Mastercard product ID that is associated with the primary account number (PAN). For descriptions of the Visa product IDs, see the Product ID table on the [Visa Request & Response Codes web page.]( Data Length: String (3)

Worldpay VAP

Important Before using this field on Worldpay VAP, you must contact Visa Acceptance Customer Support to have your account configured for this feature. Type of card used in the transaction. The only possible value is:

  • PREPAID: Prepaid Card Data Length: String (7)

RBS WorldPay Atlanta

Type of card used in the transaction. Possible values:

  • B: Business Card
  • O: Noncommercial Card
  • R: Corporate Card
  • S: Purchase Card
  • Blank: Purchase card not supported Data Length: String (1)

Returns:

  • (String)


145
146
147
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 145

def category
  @category
end

#commercialString

Indicates whether the card is a commercial card, which enables you to include Level II data in your transaction requests. This field is supported for Visa and Mastercard on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


155
156
157
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 155

def commercial
  @commercial
end

#currencyString

Currency of the remaining balance on the account. For the possible values, see the [ISO Standard Currency Codes.]( Returned by authorization service.

PIN debit

Currency of the remaining balance on the prepaid card. Returned by PIN debit purchase.

Returns:

  • (String)


75
76
77
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 75

def currency
  @currency
end

#groupString

Type of commercial card. This field is supported only for Visa Acceptance through VisaNet. Possible values:

  • B: Business card
  • R: Corporate card
  • S: Purchasing card
  • 0: Noncommercial card Returned by authorization service.

Returns:

  • (String)


165
166
167
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 165

def group
  @group
end

#health_careString

Indicates whether the card is a healthcare card. This field is supported for Visa and Mastercard on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


174
175
176
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 174

def health_care
  @health_care
end

#level3_eligibleString

Indicates whether the card is eligible for Level III interchange fees, which enables you to include Level III data in your transaction requests. This field is supported for Visa and Mastercard on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


194
195
196
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 194

def level3_eligible
  @level3_eligible
end

#payrollString

Indicates whether the card is a payroll card. This field is supported for Visa, Discover, Diners Club, and JCB on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


183
184
185
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 183

def payroll
  @payroll
end

#pinless_debitString

Indicates whether the card is a PINless debit card. This field is supported for Visa and Mastercard on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


203
204
205
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 203

def pinless_debit
  @pinless_debit
end

#prepaidString

Indicates whether the card is a prepaid card. This information enables you to determine when a gift card or prepaid card is presented for use when establishing a new recurring, installment, or deferred billing relationship. This field is supported for Visa, Mastercard, Discover, Diners Club, and JCB on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


230
231
232
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 230

def prepaid
  @prepaid
end

#regulatedString

Indicates whether the card is regulated according to the Durbin Amendment. If the card is regulated, the card issuer is subject to price caps and interchange rules. This field is supported for Visa, Mastercard, Discover, Diners Club, and JCB on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


241
242
243
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 241

def regulated
  @regulated
end

#signature_debitString

Indicates whether the card is a signature debit card. This information enables you to alter the way an order is processed. For example, you might not want to reauthorize a transaction for a signature debit card, or you might want to perform reversals promptly for a signature debit card. This field is supported for Visa, Mastercard, and Maestro (International) on Chase Paymentech Solutions. Possible values:

  • Y: Yes
  • N: No
  • X: Not applicable / Unknown

Returns:

  • (String)


216
217
218
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 216

def signature_debit
  @signature_debit
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



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
404
405
406
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 340

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
   = hash.key?('accountType') ? hash['accountType'] : SKIP
   = hash.key?('accountStatus') ? hash['accountStatus'] : SKIP
  # Parameter is an array, so we need to iterate through it
  balances = nil
  unless hash['balances'].nil?
    balances = []
    hash['balances'].each do |structure|
      balances << (Balance.from_hash(structure) if structure)
    end
  end

  balances = SKIP unless hash.key?('balances')
  balance_amount = hash.key?('balanceAmount') ? hash['balanceAmount'] : SKIP
  balance_amount_type =
    hash.key?('balanceAmountType') ? hash['balanceAmountType'] : SKIP
  currency = hash.key?('currency') ? hash['currency'] : SKIP
  balance_sign = hash.key?('balanceSign') ? hash['balanceSign'] : SKIP
  affluence_indicator =
    hash.key?('affluenceIndicator') ? hash['affluenceIndicator'] : SKIP
  category = hash.key?('category') ? hash['category'] : SKIP
  commercial = hash.key?('commercial') ? hash['commercial'] : SKIP
  group = hash.key?('group') ? hash['group'] : SKIP
  health_care = hash.key?('healthCare') ? hash['healthCare'] : SKIP
  payroll = hash.key?('payroll') ? hash['payroll'] : SKIP
  level3_eligible =
    hash.key?('level3Eligible') ? hash['level3Eligible'] : SKIP
  pinless_debit = hash.key?('pinlessDebit') ? hash['pinlessDebit'] : SKIP
  signature_debit =
    hash.key?('signatureDebit') ? hash['signatureDebit'] : SKIP
  prepaid = hash.key?('prepaid') ? hash['prepaid'] : SKIP
  regulated = hash.key?('regulated') ? hash['regulated'] : SKIP
   =
    hash.key?('accountHolderType') ? hash['accountHolderType'] : 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.
  AccountFeatures.new(account_type: ,
                      account_status: ,
                      balances: balances,
                      balance_amount: balance_amount,
                      balance_amount_type: balance_amount_type,
                      currency: currency,
                      balance_sign: balance_sign,
                      affluence_indicator: affluence_indicator,
                      category: category,
                      commercial: commercial,
                      group: group,
                      health_care: health_care,
                      payroll: payroll,
                      level3_eligible: level3_eligible,
                      pinless_debit: pinless_debit,
                      signature_debit: signature_debit,
                      prepaid: prepaid,
                      regulated: regulated,
                      account_holder_type: ,
                      additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 252

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['account_type'] = 'accountType'
  @_hash['account_status'] = 'accountStatus'
  @_hash['balances'] = 'balances'
  @_hash['balance_amount'] = 'balanceAmount'
  @_hash['balance_amount_type'] = 'balanceAmountType'
  @_hash['currency'] = 'currency'
  @_hash['balance_sign'] = 'balanceSign'
  @_hash['affluence_indicator'] = 'affluenceIndicator'
  @_hash['category'] = 'category'
  @_hash['commercial'] = 'commercial'
  @_hash['group'] = 'group'
  @_hash['health_care'] = 'healthCare'
  @_hash['payroll'] = 'payroll'
  @_hash['level3_eligible'] = 'level3Eligible'
  @_hash['pinless_debit'] = 'pinlessDebit'
  @_hash['signature_debit'] = 'signatureDebit'
  @_hash['prepaid'] = 'prepaid'
  @_hash['regulated'] = 'regulated'
  @_hash['account_holder_type'] = 'accountHolderType'
  @_hash
end

.nullablesObject

An array for nullable fields



302
303
304
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 302

def self.nullables
  []
end

.optionalsObject

An array for optional fields



277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 277

def self.optionals
  %w[
    account_type
    account_status
    balances
    balance_amount
    balance_amount_type
    currency
    balance_sign
    affluence_indicator
    category
    commercial
    group
    health_care
    payroll
    level3_eligible
    pinless_debit
    signature_debit
    prepaid
    regulated
    account_holder_type
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



422
423
424
425
426
427
428
429
430
431
432
433
434
435
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 422

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} account_type: #{@account_type.inspect}, account_status:"\
  " #{@account_status.inspect}, balances: #{@balances.inspect}, balance_amount:"\
  " #{@balance_amount.inspect}, balance_amount_type: #{@balance_amount_type.inspect},"\
  " currency: #{@currency.inspect}, balance_sign: #{@balance_sign.inspect},"\
  " affluence_indicator: #{@affluence_indicator.inspect}, category: #{@category.inspect},"\
  " commercial: #{@commercial.inspect}, group: #{@group.inspect}, health_care:"\
  " #{@health_care.inspect}, payroll: #{@payroll.inspect}, level3_eligible:"\
  " #{@level3_eligible.inspect}, pinless_debit: #{@pinless_debit.inspect}, signature_debit:"\
  " #{@signature_debit.inspect}, prepaid: #{@prepaid.inspect}, regulated:"\
  " #{@regulated.inspect}, account_holder_type: #{@account_holder_type.inspect},"\
  " additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



409
410
411
412
413
414
415
416
417
418
419
# File 'lib/visa_acceptance_merged_spec/models/account_features.rb', line 409

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} account_type: #{@account_type}, account_status: #{@account_status},"\
  " balances: #{@balances}, balance_amount: #{@balance_amount}, balance_amount_type:"\
  " #{@balance_amount_type}, currency: #{@currency}, balance_sign: #{@balance_sign},"\
  " affluence_indicator: #{@affluence_indicator}, category: #{@category}, commercial:"\
  " #{@commercial}, group: #{@group}, health_care: #{@health_care}, payroll: #{@payroll},"\
  " level3_eligible: #{@level3_eligible}, pinless_debit: #{@pinless_debit}, signature_debit:"\
  " #{@signature_debit}, prepaid: #{@prepaid}, regulated: #{@regulated}, account_holder_type:"\
  " #{@account_holder_type}, additional_properties: #{@additional_properties}>"
end