genesis_ruby 0.2.4 → 0.2.5

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/Gemfile.lock +14 -14
  4. data/README.md +38 -0
  5. data/VERSION +1 -1
  6. data/lib/genesis_ruby/api/constants/currencies/iso4217.rb +6 -0
  7. data/lib/genesis_ruby/api/constants/non_financial/kyc/document_types.rb +49 -0
  8. data/lib/genesis_ruby/api/constants/non_financial/kyc/genders.rb +22 -0
  9. data/lib/genesis_ruby/api/constants/transactions/parameters/african_mobile_operators.rb +37 -0
  10. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_owner.rb +24 -0
  11. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_subtype.rb +24 -0
  12. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_type.rb +63 -0
  13. data/lib/genesis_ruby/api/constants/transactions/parameters/digital_asset_types.rb +31 -0
  14. data/lib/genesis_ruby/api/constants/transactions/parameters/purpose_of_payment.rb +136 -0
  15. data/lib/genesis_ruby/api/constants/transactions/parameters/source_of_funds.rb +34 -0
  16. data/lib/genesis_ruby/api/mixins/requests/digital_asset_type_attributes.rb +26 -0
  17. data/lib/genesis_ruby/api/mixins/requests/financial/african_mobile_attributes.rb +30 -0
  18. data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_params_attributes.rb +36 -0
  19. data/lib/genesis_ruby/api/mixins/requests/financial/customer_identification_attributes.rb +82 -0
  20. data/lib/genesis_ruby/api/mixins/requests/financial/gift_cards_attributes.rb +26 -0
  21. data/lib/genesis_ruby/api/mixins/requests/financial/preauthorization_attributes.rb +25 -0
  22. data/lib/genesis_ruby/api/mixins/requests/financial/purpose_of_payment_attributes.rb +29 -0
  23. data/lib/genesis_ruby/api/mixins/requests/financial/source_of_funds_attributes.rb +38 -0
  24. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +1 -1
  25. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/id_attributes.rb +28 -0
  26. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/tier_id_attributes.rb +28 -0
  27. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/customer_information_attributes.rb +62 -0
  28. data/lib/genesis_ruby/api/request.rb +7 -0
  29. data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +4 -2
  30. data/lib/genesis_ruby/api/requests/base/non_financial/kyc/base.rb +33 -0
  31. data/lib/genesis_ruby/api/requests/base/reference.rb +1 -2
  32. data/lib/genesis_ruby/api/requests/financial/Preauthorizations/incremental_authorize.rb +24 -0
  33. data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +5 -1
  34. data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +5 -1
  35. data/lib/genesis_ruby/api/requests/financial/cards/credit.rb +39 -0
  36. data/lib/genesis_ruby/api/requests/financial/cards/payout.rb +72 -0
  37. data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +3 -1
  38. data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +3 -1
  39. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/payout.rb +52 -0
  40. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/refund.rb +36 -0
  41. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/sale.rb +55 -0
  42. data/lib/genesis_ruby/api/requests/financial/gift_cards/fashioncheque.rb +47 -0
  43. data/lib/genesis_ruby/api/requests/financial/gift_cards/intersolve.rb +46 -0
  44. data/lib/genesis_ruby/api/requests/financial/gift_cards/tcs.rb +47 -0
  45. data/lib/genesis_ruby/api/requests/financial/mobile/african_mobile_sale.rb +81 -0
  46. data/lib/genesis_ruby/api/requests/financial/mobile/russian_mobile_sale.rb +55 -0
  47. data/lib/genesis_ruby/api/requests/financial/vouchers/neosurf.rb +61 -0
  48. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/date_range.rb +82 -0
  49. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/transaction.rb +52 -0
  50. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/date_range.rb +108 -0
  51. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/transaction.rb +52 -0
  52. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rate.rb +55 -0
  53. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rates.rb +53 -0
  54. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tier.rb +53 -0
  55. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tiers.rb +35 -0
  56. data/lib/genesis_ruby/api/requests/non_financial/fx/search_rate.rb +61 -0
  57. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/create.rb +99 -0
  58. data/lib/genesis_ruby/api/requests/non_financial/tokenization/cryptogram.rb +5 -2
  59. data/lib/genesis_ruby/api/requests/wpf/create.rb +3 -1
  60. data/lib/genesis_ruby/configuration.rb +4 -0
  61. data/lib/genesis_ruby/dependencies.rb +1 -0
  62. data/lib/genesis_ruby/utils/country.rb +272 -0
  63. data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +1 -4
  64. data/lib/genesis_ruby/version.rb +1 -1
  65. metadata +46 -2
@@ -0,0 +1,52 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fraud
6
+ module Chargeback
7
+ # Retrieve a single chargeback or a list of chargebacks by ARN or by passing the unique ID
8
+ # of the original transaction
9
+ class Transaction < Api::Request
10
+
11
+ include Api::Mixins::Requests::NonFinancial::ModeAttributes
12
+
13
+ attr_accessor :arn, :original_transaction_unique_id
14
+
15
+ protected
16
+
17
+ # Set Gateway API configuration
18
+ def init_configuration
19
+ init_xml_configuration
20
+ init_api_gateway_configuration request_path: 'chargebacks', include_token: false
21
+ end
22
+
23
+ # Chargeback custom field validations
24
+ def check_requirements
25
+ unless arn.nil? ^ original_transaction_unique_id.nil?
26
+ raise(
27
+ ParameterError,
28
+ 'Either arn or original_transaction_unique_id field has to be set, not both.'
29
+ )
30
+ end
31
+
32
+ super
33
+ end
34
+
35
+ # API Request structure
36
+ def populate_structure
37
+ @tree_structure = {
38
+ chargeback_request: {
39
+ arn: arn,
40
+ original_transaction_unique_id: original_transaction_unique_id,
41
+ mode: mode
42
+ }
43
+ }
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,108 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fraud
6
+ module Reports
7
+ # Date range based SAFE/TC40 retrieval allows you to fetch information for
8
+ # all SAFE/TC40 reports for a given merchant within a given date range
9
+ class DateRange < Api::Request
10
+
11
+ include Api::Mixins::Requests::NonFinancial::DateAttributes
12
+ include Api::Mixins::Requests::NonFinancial::PagingAttributes
13
+
14
+ # Start of the requested date range
15
+ def start_date
16
+ @start_date&.strftime Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
17
+ end
18
+
19
+ # End of the requested date range
20
+ def end_date
21
+ @end_date&.strftime Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
22
+ end
23
+
24
+ # Date of import in the system
25
+ def import_date
26
+ @import_date&.strftime Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
27
+ end
28
+
29
+ # Date of import in the system
30
+ def import_date=(value)
31
+ parse_date attribute: __method__, value: value, allow_empty: true
32
+ end
33
+
34
+ # Start of the requested date range for the date when the fraud was reported
35
+ def report_start_date
36
+ @report_start_date&.strftime Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
37
+ end
38
+
39
+ # Start of the requested date range for the date when the fraud was reported
40
+ def report_start_date=(value)
41
+ parse_date attribute: __method__, value: value, allow_empty: true
42
+ end
43
+
44
+ # End of the requested date range for the date when the fraud was reported
45
+ def report_end_date
46
+ @report_end_date&.strftime Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
47
+ end
48
+
49
+ # End of the requested date range for the date when the fraud was reported
50
+ def report_end_date=(value)
51
+ parse_date attribute: __method__, value: value, allow_empty: true
52
+ end
53
+
54
+ protected
55
+
56
+ # Set Gateway API configuration
57
+ def init_configuration
58
+ init_xml_configuration
59
+ init_api_gateway_configuration request_path: 'fraud_reports/by_date', include_token: false
60
+ @api_config.parser_skip_root_node = false
61
+ end
62
+
63
+ # Field Validations
64
+ def init_field_validations
65
+ super
66
+
67
+ field_value_dependencies.merge!(
68
+ {
69
+ start_date: %i[end_date],
70
+ report_start_date: %i[report_end_date]
71
+ }
72
+ )
73
+ end
74
+
75
+ # Custom field validations
76
+ def check_requirements
77
+ fields = [start_date, import_date, report_start_date]
78
+ error_message =
79
+ 'Either start_date/end_date, import_date or report_start_date/report_end_date' \
80
+ ' fields have to be set, do not mix'
81
+
82
+ raise ParameterError, error_message if fields.compact.size != 1
83
+
84
+ super
85
+ end
86
+
87
+ # API Request structure
88
+ def populate_structure # rubocop:disable Metrics/MethodLength
89
+ @tree_structure = {
90
+ fraud_report_request: {
91
+ start_date: start_date,
92
+ end_date: end_date,
93
+ import_date: import_date,
94
+ report_start_date: report_start_date,
95
+ report_end_date: report_end_date,
96
+ page: page,
97
+ per_page: per_page
98
+ }
99
+ }
100
+ end
101
+
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,52 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fraud
6
+ module Reports
7
+ # Retrieve a single SAFE/TC40 or a list of SAFE/TC40 by ARN or by passing
8
+ # the unique ID of the original transaction
9
+ class Transaction < Api::Request
10
+
11
+ include Api::Mixins::Requests::NonFinancial::ModeAttributes
12
+
13
+ attr_accessor :arn, :original_transaction_unique_id
14
+
15
+ protected
16
+
17
+ # Set Gateway API configuration
18
+ def init_configuration
19
+ init_xml_configuration
20
+ init_api_gateway_configuration request_path: 'fraud_reports', include_token: false
21
+ end
22
+
23
+ # Report custom field validations
24
+ def check_requirements
25
+ unless arn.nil? ^ original_transaction_unique_id.nil?
26
+ raise(
27
+ ParameterError,
28
+ 'Either arn or original_transaction_unique_id field has to be set, not both.'
29
+ )
30
+ end
31
+
32
+ super
33
+ end
34
+
35
+ # API Request structure
36
+ def populate_structure
37
+ @tree_structure = {
38
+ fraud_report_request: {
39
+ arn: arn,
40
+ original_transaction_unique_id: original_transaction_unique_id,
41
+ mode: mode
42
+ }
43
+ }
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,55 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fx
6
+ # This call is used to return information about selected Rate for merchant
7
+ class GetRate < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Fx::IdAttributes
10
+ include Api::Mixins::Requests::NonFinancial::Fx::TierIdAttributes
11
+
12
+ # Get Rate initialization
13
+ def initialize(configuration, _builder_interface = nil)
14
+ super configuration
15
+
16
+ self.request_path = 'fx/tiers/:tier_id/rates/:id'
17
+ end
18
+
19
+ protected
20
+
21
+ # Override default Versioned Network configuration
22
+ def init_configuration
23
+ super
24
+
25
+ init_get_configuration
26
+ end
27
+
28
+ # Fetch request field validations
29
+ def init_field_validations
30
+ super
31
+
32
+ required_fields.push *id_required_fields, *tier_id_required_fields
33
+ end
34
+
35
+ # Get Rate request structure
36
+ def request_structure
37
+ {}
38
+ end
39
+
40
+ # Override API endpoint with provided IDs
41
+ def process_request_parameters
42
+ super
43
+
44
+ request_path.sub!(':tier_id', tier_id)
45
+ request_path.sub!(':id', id)
46
+
47
+ init_api_gateway_configuration request_path: "#{version}/#{request_path}", include_token: false
48
+ end
49
+
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,53 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fx
6
+ # This call is used to return all rates for Tier
7
+ class GetRates < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Fx::TierIdAttributes
10
+
11
+ # Get Rates initialization
12
+ def initialize(configuration, _builder_interface = nil)
13
+ super configuration
14
+
15
+ self.request_path = 'fx/tiers/:tier_id/rates'
16
+ end
17
+
18
+ protected
19
+
20
+ # Override default Versioned Network configuration
21
+ def init_configuration
22
+ super
23
+
24
+ init_get_configuration
25
+ end
26
+
27
+ # Fetch request field validations
28
+ def init_field_validations
29
+ super
30
+
31
+ required_fields.push *tier_id_required_fields
32
+ end
33
+
34
+ # Get Rates request structure
35
+ def request_structure
36
+ {}
37
+ end
38
+
39
+ # Override API endpoint with provided ID
40
+ def process_request_parameters
41
+ super
42
+
43
+ request_path.sub!(':tier_id', tier_id)
44
+
45
+ init_api_gateway_configuration request_path: "#{version}/#{request_path}", include_token: false
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,53 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fx
6
+ # This call is used to return information about selected Tier for your merchant
7
+ class GetTier < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Fx::IdAttributes
10
+
11
+ # Get Tier initialization
12
+ def initialize(configuration, _builder_interface = nil)
13
+ super configuration
14
+
15
+ self.request_path = 'fx/tiers/:id'
16
+ end
17
+
18
+ protected
19
+
20
+ # Override default Versioned Network configuration
21
+ def init_configuration
22
+ super
23
+
24
+ init_get_configuration
25
+ end
26
+
27
+ # Fetch request field validations
28
+ def init_field_validations
29
+ super
30
+
31
+ required_fields.push *id_required_fields
32
+ end
33
+
34
+ # Get Tier request structure
35
+ def request_structure
36
+ {}
37
+ end
38
+
39
+ # Override API endpoint with provided ID
40
+ def process_request_parameters
41
+ super
42
+
43
+ request_path.sub!(':id', id)
44
+
45
+ init_api_gateway_configuration request_path: "#{version}/#{request_path}", include_token: false
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,35 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fx
6
+ # This call is used to return all Tiers that are related to your account
7
+ class GetTiers < Base::Versioned
8
+
9
+ # Get Tiers initialization
10
+ def initialize(configuration, _builder_interface = nil)
11
+ super configuration
12
+
13
+ self.request_path = 'fx/tiers'
14
+ end
15
+
16
+ protected
17
+
18
+ # Override default Versioned Network configuration
19
+ def init_configuration
20
+ super
21
+
22
+ init_get_configuration
23
+ end
24
+
25
+ # Get Tiers request structure
26
+ def request_structure
27
+ {}
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,61 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Fx
6
+ # This call is used to return information about selected Rate by currency pair
7
+ class SearchRate < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Fx::TierIdAttributes
10
+
11
+ attr_writer :source_currency, :target_currency
12
+
13
+ # Search Rate initialization
14
+ def initialize(configuration, _builder_interface = nil)
15
+ super configuration
16
+
17
+ self.request_path = 'fx/tiers/:tier_id/rates/search'
18
+ end
19
+
20
+ # Source currency
21
+ def source_currency
22
+ @source_currency.to_s.upcase
23
+ end
24
+
25
+ # Target currency
26
+ def target_currency
27
+ @target_currency.to_s.upcase
28
+ end
29
+
30
+ protected
31
+
32
+ # Fetch request field validations
33
+ def init_field_validations
34
+ super
35
+
36
+ required_fields.push *tier_id_required_fields, *%i[source_currency target_currency]
37
+ end
38
+
39
+ # Search Rate request structure
40
+ def request_structure
41
+ {
42
+ source_currency: source_currency,
43
+ target_currency: target_currency
44
+ }
45
+ end
46
+
47
+ # Override API endpoint with provided ID
48
+ def process_request_parameters
49
+ super
50
+
51
+ request_path.sub!(':tier_id', tier_id)
52
+
53
+ init_api_gateway_configuration request_path: "#{version}/#{request_path}", include_token: false
54
+ end
55
+
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,99 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Kyc
6
+ module ConsumerRegistration
7
+ # Create Consumer Registration Request class for KYC Non-Financial API services
8
+ class Create < Api::Requests::Base::NonFinancial::Kyc::Base
9
+
10
+ include Api::Mixins::Requests::NonFinancial::Kyc::CustomerInformationAttributes
11
+
12
+ attr_accessor :session_id, :customer_unique_id, :transaction_unique_id, :customer_phone_number,
13
+ :service_language, :security_code, :service_type, :customer_username,
14
+ :customer_registration_date, :customer_registration_ip_address,
15
+ :customer_registration_device_id, :third_party_device_id, :device_fingerprint,
16
+ :bonus_code, :bonus_submission_date, :bonus_amount, :merchant_website,
17
+ :how_did_you_hear, :affiliate_id, :rule_context
18
+ attr_writer :profile_action_type, :device_fingerprint_type, :profile_current_status, :industry_type
19
+
20
+ # Initializes the Create Consumer Registration Request
21
+ def initialize(configuration, _builder_interface = nil)
22
+ super configuration
23
+
24
+ self.request_path = 'create_consumer'
25
+ end
26
+
27
+ # Returns device_fingerprint_type as an integer
28
+ def device_fingerprint_type
29
+ @device_fingerprint_type&.to_i
30
+ end
31
+
32
+ # Returns profile_action_type as an integer
33
+ def profile_action_type
34
+ @profile_action_type&.to_i
35
+ end
36
+
37
+ # Returns profile_current_status as an integer
38
+ def profile_current_status
39
+ @profile_current_status&.to_i
40
+ end
41
+
42
+ # Returns industry_type as an integer
43
+ def industry_type
44
+ @industry_type&.to_i
45
+ end
46
+
47
+ protected
48
+
49
+ # Sets the request field validations
50
+ def init_field_validations # rubocop:disable Metrics/MethodLength
51
+ super
52
+
53
+ required_fields.push *%i[
54
+ customer_information_structure
55
+ customer_unique_id
56
+ customer_registration_date
57
+ customer_registration_ip_address
58
+ ] + customer_information_required_fields
59
+
60
+ field_values.merge! device_fingerprint_type: [1, 2, 3],
61
+ profile_action_type: [1, 2],
62
+ profile_current_status: [0, 1, 2, 3],
63
+ industry_type: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
64
+ field_values.merge! customer_information_required_field_values
65
+ end
66
+
67
+ # Defines the request structure
68
+ def request_structure # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
69
+ {
70
+ session_id: session_id,
71
+ customer_username: customer_username,
72
+ customer_unique_id: customer_unique_id,
73
+ customer_registration_date: customer_registration_date,
74
+ customer_registration_ip_address: customer_registration_ip_address,
75
+ customer_registration_device_id: customer_registration_device_id,
76
+ customer_information: customer_information_structure,
77
+ third_party_device_id: third_party_device_id,
78
+ device_fingerprint: device_fingerprint,
79
+ device_fingerprint_type: device_fingerprint_type,
80
+ profile_action_type: profile_action_type,
81
+ profile_current_status: profile_current_status,
82
+ bonus_code: bonus_code,
83
+ bonus_submission_date: bonus_submission_date,
84
+ bonus_amount: bonus_amount,
85
+ merchant_website: merchant_website,
86
+ industry_type: industry_type,
87
+ how_did_you_hear: how_did_you_hear,
88
+ affiliate_id: affiliate_id,
89
+ rule_context: rule_context
90
+ }
91
+ end
92
+
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -9,6 +9,8 @@ module GenesisRuby
9
9
  include Api::Mixins::Requests::NonFinancial::Tokenization::TokenAttributes
10
10
  include Api::Mixins::Requests::NonFinancial::Tokenization::TokenizationAttributes
11
11
 
12
+ attr_accessor :transaction_reference
13
+
12
14
  def initialize(configuration, builder_interface = Builder::XML)
13
15
  super configuration, builder_interface
14
16
 
@@ -21,7 +23,7 @@ module GenesisRuby
21
23
  def init_field_validations
22
24
  super
23
25
 
24
- required_fields.push *tokenization_required_fields, *%i[token]
26
+ required_fields.push *tokenization_required_fields, *%i[token transaction_reference]
25
27
  end
26
28
 
27
29
  # API Request structure
@@ -29,7 +31,8 @@ module GenesisRuby
29
31
  {
30
32
  cryptogram_request: tokenization_attributes_structure.merge(
31
33
  {
32
- token: token
34
+ token: token,
35
+ transaction_reference: transaction_reference
33
36
  }
34
37
  )
35
38
  }
@@ -11,6 +11,7 @@ module GenesisRuby
11
11
  class Create < Request # rubocop:disable Metrics/ClassLength
12
12
 
13
13
  include Mixins::Requests::AddressInfoAttributes
14
+ include Mixins::Requests::DigitalAssetTypeAttributes
14
15
  include Mixins::Requests::Financial::AsyncAttributes
15
16
  include Mixins::Requests::Financial::Business::BusinessAttributes
16
17
  include Mixins::Requests::Financial::Cards::AccountOwnerAttributes
@@ -171,7 +172,8 @@ module GenesisRuby
171
172
  account_owner: account_owner_attributes_structure,
172
173
  pay_later: pay_later,
173
174
  reminders: pay_later ? reminders_structure : [],
174
- funding: funding_attributes_structure
175
+ funding: funding_attributes_structure,
176
+ digital_asset_type: digital_asset_type
175
177
  }
176
178
  }
177
179
  end
@@ -196,6 +196,10 @@ module GenesisRuby
196
196
  api_service: {
197
197
  GenesisRuby::Api::Constants::Environments::PRODUCTION => 'prod.api.',
198
198
  GenesisRuby::Api::Constants::Environments::STAGING => 'staging.api.'
199
+ },
200
+ kyc_service: {
201
+ GenesisRuby::Api::Constants::Environments::PRODUCTION => 'prod.kyc.',
202
+ GenesisRuby::Api::Constants::Environments::STAGING => 'staging.kyc.'
199
203
  }
200
204
  }
201
205
  end
@@ -25,6 +25,7 @@ require 'genesis_ruby/api/requests/base/consumer'
25
25
  require 'genesis_ruby/api/requests/financial/sdd/sale'
26
26
  require 'genesis_ruby/api/requests/base/graphql'
27
27
  require 'genesis_ruby/api/notification'
28
+ require 'genesis_ruby/api/requests/base/non_financial/kyc/base'
28
29
 
29
30
  # Load Financial and Non Financial API Requests
30
31
  Dir["#{File.dirname(__FILE__)}/api/requests/*financial/**/*.rb"].sort.each { |file| require file }