genesis_ruby 0.1.5 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/Gemfile.lock +9 -11
  4. data/README.md +93 -3
  5. data/VERSION +1 -1
  6. data/lib/genesis_ruby/api/constants/i18n.rb +90 -0
  7. data/lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_sub_versions.rb +43 -0
  8. data/lib/genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types.rb +43 -0
  9. data/lib/genesis_ruby/api/constants/transactions/parameters/wpf/reminder_channels.rb +24 -0
  10. data/lib/genesis_ruby/api/constants/transactions.rb +1 -5
  11. data/lib/genesis_ruby/api/mixins/requests/financial/cards/mpi_attributes.rb +14 -4
  12. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_attributes.rb +2 -0
  13. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_indian_card_attributes.rb +4 -0
  14. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +166 -0
  15. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/car_rental_attributes.rb +119 -0
  16. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/hotel_rental_attributes.rb +77 -0
  17. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/reference_ticket_attributes.rb +75 -0
  18. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/travel_attributes.rb +34 -0
  19. data/lib/genesis_ruby/api/mixins/requests/wpf_reminders_attributes.rb +59 -0
  20. data/lib/genesis_ruby/api/requests/financial/capture.rb +3 -1
  21. data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +3 -1
  22. data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +3 -1
  23. data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +3 -1
  24. data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +3 -1
  25. data/lib/genesis_ruby/api/requests/wpf/create.rb +70 -3
  26. data/lib/genesis_ruby/builders/xml.rb +6 -0
  27. data/lib/genesis_ruby/utils/options/reminder.rb +60 -0
  28. data/lib/genesis_ruby/utils/transactions/financial_types.rb +1 -1
  29. data/lib/genesis_ruby/utils/transactions/references/refundable_types.rb +1 -1
  30. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/base.rb +33 -0
  31. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg.rb +97 -0
  32. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax.rb +42 -0
  33. data/lib/genesis_ruby/utils/transactions/wpf_types.rb +1 -1
  34. data/lib/genesis_ruby/version.rb +1 -1
  35. metadata +17 -3
@@ -0,0 +1,166 @@
1
+ require 'genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg'
2
+ require 'genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax'
3
+
4
+ module GenesisRuby
5
+ module Api
6
+ module Mixins
7
+ module Requests
8
+ module Financial
9
+ module TravelData
10
+ # Level 3 Data Airline Itinerary Attributes
11
+ module AirlineItineraryAttributes
12
+
13
+ attr_reader :travel_aid_restricted_ticket_indicator, :travel_aid_ticket_number,
14
+ :travel_aid_passenger_name, :travel_aid_customer_code, :travel_aid_issuing_carrier,
15
+ :travel_aid_agency_name, :travel_aid_agency_code
16
+ attr_accessor :travel_aid_total_fare, :travel_aid_confirmation_information
17
+
18
+ # Date Of Issue
19
+ def travel_aid_date_of_issue
20
+ @travel_aid_date_of_issue&.strftime GenesisRuby::Api::Constants::DateTimeFormats::DD_MM_YYYY_L_HYPHENS
21
+ end
22
+
23
+ # Date Of Issue
24
+ def travel_aid_date_of_issue=(value)
25
+ parse_date attribute: __method__, value: value, allow_empty: true
26
+ end
27
+
28
+ # Restricted Ticket Indicator
29
+ def travel_aid_restricted_ticket_indicator=(value)
30
+ allowed_options attribute: __method__, value: value.to_i, allow_empty: true, allowed: [0, 1]
31
+ end
32
+
33
+ # Ticket Number
34
+ def travel_aid_ticket_number=(value)
35
+ limited_string attribute: __method__, value: value, max: 15
36
+ end
37
+
38
+ # Passenger name
39
+ def travel_aid_passenger_name=(value)
40
+ limited_string attribute: __method__, value: value, max: 29
41
+ end
42
+
43
+ # Customer code
44
+ def travel_aid_customer_code=(value)
45
+ limited_string attribute: __method__, value: value, max: 17
46
+ end
47
+
48
+ # Issuing carrier
49
+ def travel_aid_issuing_carrier=(value)
50
+ limited_string attribute: __method__, value: value, max: 4
51
+ end
52
+
53
+ # Agency name
54
+ def travel_aid_agency_name=(value)
55
+ limited_string attribute: __method__, value: value, max: 30
56
+ end
57
+
58
+ # Agency code
59
+ def travel_aid_agency_code=(value)
60
+ limited_string attribute: __method__, value: value, max: 8
61
+ end
62
+
63
+ # AirlineItinerary Legs data. Max legs 10
64
+ def travel_aid_legs
65
+ @travel_aid_legs || []
66
+ end
67
+
68
+ # AirlineItinerary Taxes data. Max taxes 10
69
+ def travel_aid_taxes
70
+ @travel_aid_taxes || []
71
+ end
72
+
73
+ # Add a single AirlineItinerary Leg data
74
+ def add_travel_aid_leg(leg)
75
+ @travel_aid_legs ||= travel_aid_legs
76
+ leg_obj = GenesisRuby::Utils::Transactions::TravelData::AirlineItinerary::Leg
77
+
78
+ raise InvalidArgumentError, "Leg must be instance of #{leg_obj.name}" unless leg.instance_of? leg_obj
79
+
80
+ if travel_aid_legs.count == ALLOWED_ITEMS_COUNT
81
+ raise InvalidArgumentError, "Allowed Legs count exceeded. Allowed #{ALLOWED_ITEMS_COUNT}."
82
+ end
83
+
84
+ @travel_aid_legs.push leg
85
+ end
86
+
87
+ # Add a single AirlineItinerary Tax data
88
+ def add_travel_aid_tax(tax)
89
+ @travel_aid_taxes ||= travel_aid_taxes
90
+ tax_obj = GenesisRuby::Utils::Transactions::TravelData::AirlineItinerary::Tax
91
+
92
+ raise InvalidArgumentError, "Tax must be instance of #{tax_obj.name}" unless tax.instance_of? tax_obj
93
+
94
+ if travel_aid_taxes.count == ALLOWED_ITEMS_COUNT
95
+ raise InvalidArgumentError, "Allowed Legs count exceeded. Allowed #{ALLOWED_ITEMS_COUNT}."
96
+ end
97
+
98
+ @travel_aid_taxes.push tax
99
+ end
100
+
101
+ # Reset Legs data
102
+ def clear_travel_aid_legs
103
+ @travel_aid_legs = []
104
+ end
105
+
106
+ # Reset Taxes
107
+ def clear_travel_aid_taxes
108
+ @travel_aid_taxes = []
109
+ end
110
+
111
+ protected
112
+
113
+ ALLOWED_ITEMS_COUNT = 10
114
+
115
+ # Legs structure
116
+ def legs_structure
117
+ parse_items 'leg', travel_aid_legs
118
+ end
119
+
120
+ # Taxes structure
121
+ def taxes_structure
122
+ parse_items 'tax', travel_aid_taxes
123
+ end
124
+
125
+ # Prepare structure
126
+ def parse_items(node_name, items)
127
+ data = []
128
+
129
+ items.each do |item|
130
+ item.currency = currency if item.respond_to?(:currency) && respond_to?(:currency)
131
+ data.push item.attributes_structure
132
+ end
133
+
134
+ Hash[node_name.to_sym, data]
135
+ end
136
+
137
+ # Attributes Structure
138
+ def airline_attributes_structure # rubocop:disable RSpec/MethodLength
139
+ {
140
+ ticket_number: travel_aid_ticket_number,
141
+ passenger_name: travel_aid_passenger_name,
142
+ customer_code: travel_aid_customer_code,
143
+ restricted_ticket_indicator: travel_aid_restricted_ticket_indicator,
144
+ issuing_carrier: travel_aid_issuing_carrier,
145
+ total_fare: parse_total_fare,
146
+ agency_name: travel_aid_agency_name,
147
+ agency_code: travel_aid_agency_code,
148
+ confirmation_information: travel_aid_confirmation_information,
149
+ date_of_issue: travel_aid_date_of_issue
150
+ }
151
+ end
152
+
153
+ # Parse Total Fare amount
154
+ def parse_total_fare
155
+ return travel_aid_total_fare if currency.nil? || travel_aid_total_fare.nil?
156
+
157
+ transform_amount travel_aid_total_fare, currency
158
+ end
159
+
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,119 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Mixins
4
+ module Requests
5
+ module Financial
6
+ module TravelData
7
+ # Car Rental attributes
8
+ module CarRentalAttributes
9
+
10
+ attr_reader :travel_car_rental_purchase_identifier, :travel_car_rental_class_id,
11
+ :travel_car_rental_renter_name, :travel_car_rental_return_city,
12
+ :travel_car_rental_return_state, :travel_car_rental_return_country,
13
+ :travel_car_rental_renter_return_location_id, :travel_car_rental_customer_code,
14
+ :travel_car_rental_extra_charges, :travel_car_rental_no_show_indicator
15
+
16
+ # Travel Data Purchase Identifier
17
+ def travel_car_rental_purchase_identifier=(value)
18
+ limited_string attribute: __method__, value: value, max: 9
19
+ end
20
+
21
+ # Travel Data Class id
22
+ def travel_car_rental_class_id=(value)
23
+ allowed_options attribute: __method__,
24
+ value: value.to_i,
25
+ allow_empty: true,
26
+ allowed: [*1..30].push(9999)
27
+ end
28
+
29
+ # Travel Data PickUp Date
30
+ def travel_car_rental_pickup_date
31
+ @travel_car_rental_pickup_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
32
+ DD_MM_YYYY_L_HYPHENS
33
+ end
34
+
35
+ # Travel Data PickUp Date
36
+ def travel_car_rental_pickup_date=(value)
37
+ parse_date attribute: __method__, value: value, allow_empty: true
38
+ end
39
+
40
+ # Travel Data Renter Name
41
+ def travel_car_rental_renter_name=(value)
42
+ limited_string attribute: __method__, value: value, max: 20
43
+ end
44
+
45
+ # Travel Data Return City
46
+ def travel_car_rental_return_city=(value)
47
+ limited_string attribute: __method__, value: value, max: 18
48
+ end
49
+
50
+ # Travel Data Return State
51
+ def travel_car_rental_return_state=(value)
52
+ limited_string attribute: __method__, value: value, max: 3
53
+ end
54
+
55
+ # Travel Data Return Country
56
+ def travel_car_rental_return_country=(value)
57
+ limited_string attribute: __method__, value: value, max: 3
58
+ end
59
+
60
+ # Travel Data Return Date
61
+ def travel_car_rental_return_date
62
+ @travel_car_rental_return_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
63
+ DD_MM_YYYY_L_HYPHENS
64
+ end
65
+
66
+ # Travel Data Return Date
67
+ def travel_car_rental_return_date=(value)
68
+ parse_date attribute: __method__, value: value, allow_empty: true
69
+ end
70
+
71
+ # Travel Data Renter Return Location id
72
+ def travel_car_rental_renter_return_location_id=(value)
73
+ limited_string attribute: __method__, value: value, max: 10
74
+ end
75
+
76
+ # Travel Data Customer Code
77
+ def travel_car_rental_customer_code=(value)
78
+ limited_string attribute: __method__, value: value, max: 17
79
+ end
80
+
81
+ # Travel Data Extra Charges
82
+ def travel_car_rental_extra_charges=(value)
83
+ allowed_options attribute: __method__, value: value.to_i, allow_empty: true, allowed: [*1..5]
84
+ end
85
+
86
+ # Travel Data No Show Indicator
87
+ def travel_car_rental_no_show_indicator=(value)
88
+ allowed_options attribute: __method__, value: value.to_i, allow_empty: true, allowed: [0, 1]
89
+ end
90
+
91
+ protected
92
+
93
+ # Travel Data Car Rental Attributes Structure
94
+ def car_rental_attributes_structure # rubocop:disable Metrics/MethodLength
95
+ {
96
+ car_rental: {
97
+ purchase_identifier: travel_car_rental_purchase_identifier,
98
+ class_id: travel_car_rental_class_id,
99
+ pickup_date: travel_car_rental_pickup_date,
100
+ renter_name: travel_car_rental_renter_name,
101
+ return_city: travel_car_rental_return_city,
102
+ return_state: travel_car_rental_return_state,
103
+ return_country: travel_car_rental_return_country,
104
+ return_date: travel_car_rental_return_date,
105
+ renter_return_location_id: travel_car_rental_renter_return_location_id,
106
+ customer_code: travel_car_rental_customer_code,
107
+ extra_charges: travel_car_rental_extra_charges,
108
+ no_show_indicator: travel_car_rental_no_show_indicator
109
+ }
110
+ }
111
+ end
112
+
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,77 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Mixins
4
+ module Requests
5
+ module Financial
6
+ module TravelData
7
+ # Hotel Rental Attributes
8
+ module HotelRentalAttributes
9
+
10
+ attr_reader :travel_hotel_rental_purchase_identifier, :travel_hotel_rental_customer_code,
11
+ :travel_hotel_rental_extra_charges, :travel_hotel_rental_no_show_indicator
12
+
13
+ # Hotel Rental Purchase Identifier
14
+ def travel_hotel_rental_purchase_identifier=(value)
15
+ limited_string attribute: __method__, value: value, max: 10
16
+ end
17
+
18
+ # Travel Data Arrival date
19
+ def travel_hotel_rental_arrival_date
20
+ @travel_hotel_rental_arrival_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
21
+ DD_MM_YYYY_L_HYPHENS
22
+ end
23
+
24
+ # Travel Data Arrival Date
25
+ def travel_hotel_rental_arrival_date=(value)
26
+ parse_date attribute: __method__, value: value, allow_empty: true
27
+ end
28
+
29
+ # Travel Data Departure date
30
+ def travel_hotel_rental_departure_date
31
+ @travel_hotel_rental_departure_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::
32
+ DD_MM_YYYY_L_HYPHENS
33
+ end
34
+
35
+ # Travel Data Departure Date
36
+ def travel_hotel_rental_departure_date=(value)
37
+ parse_date attribute: __method__, value: value, allow_empty: true
38
+ end
39
+
40
+ # Travel Data Customer Code
41
+ def travel_hotel_rental_customer_code=(value)
42
+ limited_string attribute: __method__, value: value, max: 17
43
+ end
44
+
45
+ # Travel Data Extra Charges
46
+ def travel_hotel_rental_extra_charges=(value)
47
+ allowed_options attribute: __method__, value: value, allow_empty: true, allowed: [*2..7]
48
+ end
49
+
50
+ # Travel Data No Show Indicator
51
+ def travel_hotel_rental_no_show_indicator=(value)
52
+ allowed_options attribute: __method__, value: value, allow_empty: true, allowed: [0, 1]
53
+ end
54
+
55
+ protected
56
+
57
+ # Hotel Rental attributes structure
58
+ def hotel_rental_attributes_structure
59
+ {
60
+ hotel_rental: {
61
+ purchase_identifier: travel_hotel_rental_purchase_identifier,
62
+ arrival_date: travel_hotel_rental_arrival_date,
63
+ departure_date: travel_hotel_rental_departure_date,
64
+ customer_code: travel_hotel_rental_customer_code,
65
+ extra_charges: travel_hotel_rental_extra_charges,
66
+ no_show_indicator: travel_hotel_rental_no_show_indicator
67
+ }
68
+ }
69
+ end
70
+
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,75 @@
1
+ require 'genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types'
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ module Financial
8
+ module TravelData
9
+ # Ancillary Charges
10
+ module ReferenceTicketAttributes
11
+
12
+ attr_reader :travel_ac_ticket_reference_id, :travel_ac_type, :travel_ac_ticket_document_number,
13
+ :travel_ac_issued_with_ticket_number, :travel_ac_sub_type
14
+
15
+ # Ancillary Charges ticker reference id
16
+ def travel_ac_ticket_reference_id=(value)
17
+ limited_string attribute: __method__, value: value, max: 32
18
+ end
19
+
20
+ # Ancillary Charges Type
21
+ def travel_ac_type=(value)
22
+ allowed_options attribute: __method__,
23
+ value: value.to_s.upcase,
24
+ allowed: GenesisRuby::Api::Constants::Transactions::Parameters::TravelData::
25
+ AncillaryChargesTypes.all,
26
+ allow_empty: true
27
+ end
28
+
29
+ # Ancillary Charges Ticket document number
30
+ def travel_ac_ticket_document_number=(value)
31
+ limited_string attribute: __method__, value: value, max: 15
32
+ end
33
+
34
+ # Ancillary Charges issued with ticket number
35
+ def travel_ac_issued_with_ticket_number=(value)
36
+ limited_string attribute: __method__, value: value, max: 15
37
+ end
38
+
39
+ # Ancillary Charges Sub Type
40
+ def travel_ac_sub_type=(value)
41
+ allowed_options attribute: __method__,
42
+ value: value.to_s.upcase,
43
+ allowed: GenesisRuby::Api::Constants::Transactions::Parameters::TravelData::
44
+ AncillaryChargesTypes.all,
45
+ allow_empty: true
46
+ end
47
+
48
+ protected
49
+
50
+ # Reference Ticket attributes structure
51
+ def reference_ticket_attributes_structure
52
+ {
53
+ ticket_reference_id: travel_ac_ticket_reference_id,
54
+ ticket_document_number: travel_ac_ticket_document_number,
55
+ issued_with_ticket_number: travel_ac_issued_with_ticket_number
56
+ }
57
+ end
58
+
59
+ # Ancillary Charges attributes structure
60
+ def charges_attributes_structure
61
+ {
62
+ charge: {
63
+ type: travel_ac_type,
64
+ sub_type: travel_ac_sub_type
65
+ }
66
+ }
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,34 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Mixins
4
+ module Requests
5
+ module Financial
6
+ module TravelData
7
+ # Travel Data Attributes
8
+ module TravelAttributes
9
+
10
+ include TravelData::AirlineItineraryAttributes
11
+ include TravelData::CarRentalAttributes
12
+ include TravelData::HotelRentalAttributes
13
+ include TravelData::ReferenceTicketAttributes
14
+
15
+ protected
16
+
17
+ # Travel Data attributes structure
18
+ def travel_data_attributes_structure
19
+ {
20
+ ticket: airline_attributes_structure.merge(reference_ticket_attributes_structure),
21
+ legs: legs_structure,
22
+ taxes: taxes_structure,
23
+ rentals: car_rental_attributes_structure.merge(hotel_rental_attributes_structure),
24
+ charges: charges_attributes_structure
25
+ }
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,59 @@
1
+ require 'genesis_ruby/utils/options/reminder'
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ # Settings for reminders sending when using the ’Pay Later’ feature
8
+ module WpfRemindersAttributes
9
+
10
+ attr_reader :reminder_language
11
+ attr_writer :reminders
12
+
13
+ # It must be a valid language abbreviation
14
+ def reminder_language=(value)
15
+ allowed_options attribute: __method__,
16
+ allowed: Api::Constants::I18n.all,
17
+ value: value.to_s.downcase,
18
+ allow_empty: true
19
+ end
20
+
21
+ # Settings for a single reminder. Upto three reminders are allowed
22
+ def add_reminder(channel:, after:)
23
+ raise InvalidArgumentError, 'Reminders exceed the allowed count of 3.' if reminders.count >= 3
24
+
25
+ reminders << init_reminder(channel: channel, after: after)
26
+ end
27
+
28
+ protected
29
+
30
+ # Reminders structure
31
+ def reminders_structure
32
+ return reminders if reminders.empty?
33
+
34
+ reminders.map &:object_structure
35
+ end
36
+
37
+ private :reminders=
38
+
39
+ # Reminder Data Object
40
+ def init_reminder(channel:, after:)
41
+ reminder = Utils::Options::Reminder.new
42
+
43
+ reminder.channel = channel
44
+ reminder.after = after.to_i
45
+
46
+ reminder
47
+ end
48
+
49
+ # The number of the sent reminders would be exactly as sent or configured and delivery failures could be
50
+ # handled on demand. Also there will be no reminders sent if the WPF is already completed
51
+ def reminders
52
+ @reminders ||= []
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -6,6 +6,7 @@ module GenesisRuby
6
6
  class Capture < Requests::Base::Reference
7
7
 
8
8
  include Mixins::Requests::Financial::Business::BusinessAttributes
9
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
9
10
 
10
11
  protected
11
12
 
@@ -18,7 +19,8 @@ module GenesisRuby
18
19
  def reference_transaction_structure
19
20
  {
20
21
  reference_id: reference_id,
21
- business_attributes: business_attributes_structure
22
+ business_attributes: business_attributes_structure,
23
+ travel: travel_data_attributes_structure
22
24
  }
23
25
  end
24
26
 
@@ -23,6 +23,7 @@ module GenesisRuby
23
23
  include Mixins::Requests::Financial::ReferenceAttributes
24
24
  include Mixins::Requests::Financial::RiskAttributes
25
25
  include Mixins::Requests::Financial::ScaAttributes
26
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
26
27
 
27
28
  protected
28
29
 
@@ -55,7 +56,8 @@ module GenesisRuby
55
56
  recurring_type: recurring_type,
56
57
  recurring_category: recurring_category,
57
58
  sca_params: sca_attributes_structure,
58
- managed_recurring: managed_recurring_attributes_structure
59
+ managed_recurring: managed_recurring_attributes_structure,
60
+ travel: travel_data_attributes_structure
59
61
  )
60
62
  end
61
63
 
@@ -26,6 +26,7 @@ module GenesisRuby
26
26
  include Mixins::Requests::Financial::RiskAttributes
27
27
  include Mixins::Requests::Financial::ScaAttributes
28
28
  include Mixins::Requests::Financial::Threeds::Version2::CommonAttributes
29
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
29
30
 
30
31
  # Specifies the recurring type of transaction
31
32
  def recurring_type=(value)
@@ -67,7 +68,8 @@ module GenesisRuby
67
68
  recurring_category: recurring_category,
68
69
  sca_params: sca_attributes_structure,
69
70
  threeds_v2_params: threeds_v2_common_attributes_structure,
70
- managed_recurring: managed_recurring_attributes_structure
71
+ managed_recurring: managed_recurring_attributes_structure,
72
+ travel: travel_data_attributes_structure
71
73
  )
72
74
  end
73
75
 
@@ -22,6 +22,7 @@ module GenesisRuby
22
22
  include Mixins::Requests::Financial::ReferenceAttributes
23
23
  include Mixins::Requests::Financial::RiskAttributes
24
24
  include Mixins::Requests::Financial::ScaAttributes
25
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
25
26
 
26
27
  protected
27
28
 
@@ -54,7 +55,8 @@ module GenesisRuby
54
55
  recurring_type: recurring_type,
55
56
  recurring_category: recurring_category,
56
57
  sca_params: sca_attributes_structure,
57
- managed_recurring: managed_recurring_attributes_structure
58
+ managed_recurring: managed_recurring_attributes_structure,
59
+ travel: travel_data_attributes_structure
58
60
  )
59
61
  end
60
62
 
@@ -25,6 +25,7 @@ module GenesisRuby
25
25
  include Mixins::Requests::Financial::RiskAttributes
26
26
  include Mixins::Requests::Financial::ScaAttributes
27
27
  include Mixins::Requests::Financial::Threeds::Version2::CommonAttributes
28
+ include Mixins::Requests::Financial::TravelData::TravelAttributes
28
29
 
29
30
  # Specifies the recurring type of transaction
30
31
  def recurring_type=(value)
@@ -66,7 +67,8 @@ module GenesisRuby
66
67
  recurring_category: recurring_category,
67
68
  sca_params: sca_attributes_structure,
68
69
  threeds_v2_params: threeds_v2_common_attributes_structure,
69
- managed_recurring: managed_recurring_attributes_structure
70
+ managed_recurring: managed_recurring_attributes_structure,
71
+ travel: travel_data_attributes_structure
70
72
  )
71
73
  end
72
74