genesis_ruby 0.2.3 → 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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +78 -0
  3. data/Gemfile.lock +14 -14
  4. data/README.md +78 -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/non_financial/externally_processed.rb +22 -0
  15. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/processing_type.rb +22 -0
  16. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sca_exemptions.rb +25 -0
  17. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/iframe_targets.rb +26 -0
  18. data/lib/genesis_ruby/api/constants/transactions/parameters/purpose_of_payment.rb +136 -0
  19. data/lib/genesis_ruby/api/constants/transactions/parameters/source_of_funds.rb +34 -0
  20. data/lib/genesis_ruby/api/mixins/requests/digital_asset_type_attributes.rb +26 -0
  21. data/lib/genesis_ruby/api/mixins/requests/financial/african_mobile_attributes.rb +30 -0
  22. data/lib/genesis_ruby/api/mixins/requests/financial/beneficiary_attributes.rb +38 -0
  23. data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_params_attributes.rb +36 -0
  24. data/lib/genesis_ruby/api/mixins/requests/financial/customer_account_attributes.rb +21 -0
  25. data/lib/genesis_ruby/api/mixins/requests/financial/customer_identification_attributes.rb +82 -0
  26. data/lib/genesis_ruby/api/mixins/requests/financial/gift_cards_attributes.rb +26 -0
  27. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/payer_attributes.rb +65 -0
  28. data/lib/genesis_ruby/api/mixins/requests/financial/preauthorization_attributes.rb +25 -0
  29. data/lib/genesis_ruby/api/mixins/requests/financial/purpose_of_payment_attributes.rb +29 -0
  30. data/lib/genesis_ruby/api/mixins/requests/financial/source_of_funds_attributes.rb +38 -0
  31. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +1 -1
  32. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/id_attributes.rb +28 -0
  33. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/tier_id_attributes.rb +28 -0
  34. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/customer_information_attributes.rb +62 -0
  35. data/lib/genesis_ruby/api/mixins/requests/non_financial/mode_attributes.rb +24 -0
  36. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/card_data_attributes.rb +62 -0
  37. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/token_attributes.rb +23 -0
  38. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/tokenization_attributes.rb +51 -0
  39. data/lib/genesis_ruby/api/request.rb +7 -0
  40. data/lib/genesis_ruby/api/requests/base/consumer.rb +24 -0
  41. data/lib/genesis_ruby/api/requests/base/financial.rb +10 -1
  42. data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +9 -9
  43. data/lib/genesis_ruby/api/requests/base/financials/south_american_payments.rb +11 -14
  44. data/lib/genesis_ruby/api/requests/base/non_financial/kyc/base.rb +33 -0
  45. data/lib/genesis_ruby/api/requests/base/reference.rb +3 -3
  46. data/lib/genesis_ruby/api/requests/financial/Preauthorizations/incremental_authorize.rb +24 -0
  47. data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +5 -1
  48. data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +5 -1
  49. data/lib/genesis_ruby/api/requests/financial/cards/bancontact.rb +8 -9
  50. data/lib/genesis_ruby/api/requests/financial/cards/credit.rb +39 -0
  51. data/lib/genesis_ruby/api/requests/financial/cards/payout.rb +72 -0
  52. data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +3 -1
  53. data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +3 -1
  54. data/lib/genesis_ruby/api/requests/financial/cash_payments/cash.rb +13 -14
  55. data/lib/genesis_ruby/api/requests/financial/cash_payments/pix.rb +23 -25
  56. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/payout.rb +52 -0
  57. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/refund.rb +36 -0
  58. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/sale.rb +55 -0
  59. data/lib/genesis_ruby/api/requests/financial/gift_cards/fashioncheque.rb +47 -0
  60. data/lib/genesis_ruby/api/requests/financial/gift_cards/intersolve.rb +46 -0
  61. data/lib/genesis_ruby/api/requests/financial/gift_cards/tcs.rb +47 -0
  62. data/lib/genesis_ruby/api/requests/financial/mobile/african_mobile_sale.rb +81 -0
  63. data/lib/genesis_ruby/api/requests/financial/mobile/apple_pay.rb +18 -20
  64. data/lib/genesis_ruby/api/requests/financial/mobile/google_pay.rb +20 -24
  65. data/lib/genesis_ruby/api/requests/financial/mobile/russian_mobile_sale.rb +55 -0
  66. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/banco_do_brasil.rb +11 -14
  67. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/eps.rb +9 -10
  68. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_in.rb +11 -18
  69. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_in.rb +61 -0
  70. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_out.rb +24 -0
  71. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/multibanco.rb +48 -0
  72. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/my_bank.rb +47 -0
  73. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_in.rb +17 -18
  74. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_out.rb +33 -38
  75. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pay_u.rb +61 -0
  76. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/post_finance.rb +53 -0
  77. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/safety_pay.rb +57 -0
  78. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/sofort.rb +63 -0
  79. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/trustly_sale.rb +75 -0
  80. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/upi.rb +54 -0
  81. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/wechat.rb +11 -14
  82. data/lib/genesis_ruby/api/requests/financial/sdd/sale.rb +13 -17
  83. data/lib/genesis_ruby/api/requests/financial/void.rb +12 -5
  84. data/lib/genesis_ruby/api/requests/financial/vouchers/neosurf.rb +61 -0
  85. data/lib/genesis_ruby/api/requests/financial/wallets/alipay.rb +10 -13
  86. data/lib/genesis_ruby/api/requests/financial/wallets/pay_pal.rb +18 -20
  87. data/lib/genesis_ruby/api/requests/non_financial/consumers/create.rb +44 -0
  88. data/lib/genesis_ruby/api/requests/non_financial/consumers/disable.rb +40 -0
  89. data/lib/genesis_ruby/api/requests/non_financial/consumers/enable.rb +40 -0
  90. data/lib/genesis_ruby/api/requests/non_financial/consumers/get_cards.rb +40 -0
  91. data/lib/genesis_ruby/api/requests/non_financial/consumers/retrieve.rb +40 -0
  92. data/lib/genesis_ruby/api/requests/non_financial/consumers/update.rb +45 -0
  93. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/date_range.rb +82 -0
  94. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/transaction.rb +52 -0
  95. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/date_range.rb +108 -0
  96. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/transaction.rb +52 -0
  97. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/date_range.rb +81 -0
  98. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/transaction.rb +52 -0
  99. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rate.rb +55 -0
  100. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rates.rb +53 -0
  101. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tier.rb +53 -0
  102. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tiers.rb +35 -0
  103. data/lib/genesis_ruby/api/requests/non_financial/fx/search_rate.rb +61 -0
  104. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/create.rb +99 -0
  105. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/date_range.rb +68 -0
  106. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/post_date_range.rb +72 -0
  107. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/transaction.rb +48 -0
  108. data/lib/genesis_ruby/api/requests/non_financial/sca/checker.rb +77 -0
  109. data/lib/genesis_ruby/api/requests/non_financial/tokenization/cryptogram.rb +46 -0
  110. data/lib/genesis_ruby/api/requests/non_financial/tokenization/delete_token.rb +43 -0
  111. data/lib/genesis_ruby/api/requests/non_financial/tokenization/detokenize.rb +43 -0
  112. data/lib/genesis_ruby/api/requests/non_financial/tokenization/get_card.rb +43 -0
  113. data/lib/genesis_ruby/api/requests/non_financial/tokenization/tokenize.rb +45 -0
  114. data/lib/genesis_ruby/api/requests/non_financial/tokenization/update_token.rb +45 -0
  115. data/lib/genesis_ruby/api/requests/non_financial/tokenization/validate_token.rb +43 -0
  116. data/lib/genesis_ruby/api/requests/wpf/create.rb +3 -1
  117. data/lib/genesis_ruby/configuration.rb +4 -0
  118. data/lib/genesis_ruby/dependencies.rb +2 -0
  119. data/lib/genesis_ruby/utils/country.rb +272 -0
  120. data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +1 -1
  121. data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +1 -4
  122. data/lib/genesis_ruby/version.rb +1 -1
  123. metadata +87 -2
@@ -0,0 +1,43 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Tokenization
6
+ # Exchanges the token with the tokenized cardholder data
7
+ class Detokenize < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenAttributes
10
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenizationAttributes
11
+
12
+ def initialize(configuration, builder_interface = Builder::XML)
13
+ super configuration, builder_interface
14
+
15
+ self.request_path = 'detokenize'
16
+ end
17
+
18
+ protected
19
+
20
+ # Detokenize field validations
21
+ def init_field_validations
22
+ super
23
+
24
+ required_fields.push *tokenization_required_fields, *%i[token]
25
+ end
26
+
27
+ # API Request structure
28
+ def request_structure
29
+ {
30
+ detokenize_request: tokenization_attributes_structure.merge(
31
+ {
32
+ token: token
33
+ }
34
+ )
35
+ }
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Tokenization
6
+ # Exchanges the token with the tokenized masked cardholder data
7
+ class GetCard < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenAttributes
10
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenizationAttributes
11
+
12
+ def initialize(configuration, builder_interface = Builder::XML)
13
+ super configuration, builder_interface
14
+
15
+ self.request_path = 'get_card'
16
+ end
17
+
18
+ protected
19
+
20
+ # Get Card field validations
21
+ def init_field_validations
22
+ super
23
+
24
+ required_fields.push *tokenization_required_fields, *%i[token]
25
+ end
26
+
27
+ # API Request structure
28
+ def request_structure
29
+ {
30
+ get_card_request: tokenization_attributes_structure.merge(
31
+ {
32
+ token: token
33
+ }
34
+ )
35
+ }
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,45 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Tokenization
6
+ # Tokenizes cardholder data and issues a corresponding token. Merchants should take
7
+ # care to save the plain-text token value in their system as once issued it is not possible
8
+ # to obtain it again.
9
+ class Tokenize < Base::Versioned
10
+
11
+ include Api::Mixins::Requests::NonFinancial::Tokenization::CardDataAttributes
12
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenizationAttributes
13
+
14
+ def initialize(configuration, builder_interface = Builder::XML)
15
+ super configuration, builder_interface
16
+
17
+ self.request_path = 'tokenize'
18
+ end
19
+
20
+ protected
21
+
22
+ # Tokenize field validations
23
+ def init_field_validations
24
+ super
25
+
26
+ required_fields.push *tokenization_required_fields, *%i[card_number]
27
+ end
28
+
29
+ # API Request structure
30
+ def request_structure
31
+ {
32
+ tokenize_request: tokenization_attributes_structure.merge(
33
+ {
34
+ card_data: card_data_attributes_structure
35
+ }
36
+ )
37
+ }
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,45 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Tokenization
6
+ # Updates the tokenized data corresponding to an existing valid token
7
+ class UpdateToken < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Tokenization::CardDataAttributes
10
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenAttributes
11
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenizationAttributes
12
+
13
+ def initialize(configuration, builder_interface = Builder::XML)
14
+ super configuration, builder_interface
15
+
16
+ self.request_path = 'update_token'
17
+ end
18
+
19
+ protected
20
+
21
+ # Update Token field validations
22
+ def init_field_validations
23
+ super
24
+
25
+ required_fields.push *tokenization_required_fields, *%i[card_number token]
26
+ end
27
+
28
+ # API Request structure
29
+ def request_structure
30
+ {
31
+ update_token_request: tokenization_attributes_structure.merge(
32
+ {
33
+ token: token,
34
+ card_data: card_data_attributes_structure
35
+ }
36
+ )
37
+ }
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ module GenesisRuby
2
+ module Api
3
+ module Requests
4
+ module NonFinancial
5
+ module Tokenization
6
+ # Validates if a token is active, owned by a merchant, etc.
7
+ class ValidateToken < Base::Versioned
8
+
9
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenAttributes
10
+ include Api::Mixins::Requests::NonFinancial::Tokenization::TokenizationAttributes
11
+
12
+ def initialize(configuration, builder_interface = Builder::XML)
13
+ super configuration, builder_interface
14
+
15
+ self.request_path = 'validate_token'
16
+ end
17
+
18
+ protected
19
+
20
+ # Validate Token field validations
21
+ def init_field_validations
22
+ super
23
+
24
+ required_fields.push *tokenization_required_fields, *%i[token]
25
+ end
26
+
27
+ # API Request structure
28
+ def request_structure
29
+ {
30
+ validate_token_request: tokenization_attributes_structure.merge(
31
+ {
32
+ token: token
33
+ }
34
+ )
35
+ }
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -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
@@ -21,9 +21,11 @@ require 'genesis_ruby/api/requests/base/financials/credit_card'
21
21
  require 'genesis_ruby/api/requests/base/financials/south_american_payments'
22
22
  require 'genesis_ruby/api/requests/base/reference'
23
23
  require 'genesis_ruby/api/requests/base/versioned'
24
+ require 'genesis_ruby/api/requests/base/consumer'
24
25
  require 'genesis_ruby/api/requests/financial/sdd/sale'
25
26
  require 'genesis_ruby/api/requests/base/graphql'
26
27
  require 'genesis_ruby/api/notification'
28
+ require 'genesis_ruby/api/requests/base/non_financial/kyc/base'
27
29
 
28
30
  # Load Financial and Non Financial API Requests
29
31
  Dir["#{File.dirname(__FILE__)}/api/requests/*financial/**/*.rb"].sort.each { |file| require file }
@@ -0,0 +1,272 @@
1
+ module GenesisRuby
2
+ module Utils
3
+ # Country-related methods
4
+ class Country # rubocop:disable Metrics/ClassLength
5
+
6
+ COUNTRIES = {
7
+ 'AF' => 'Afghanistan',
8
+ 'AX' => 'Aland Islands',
9
+ 'AL' => 'Albania',
10
+ 'DZ' => 'Algeria',
11
+ 'AS' => 'American Samoa',
12
+ 'AD' => 'Andorra',
13
+ 'AO' => 'Angola',
14
+ 'AI' => 'Anguilla',
15
+ 'AQ' => 'Antarctica',
16
+ 'AG' => 'Antigua And Barbuda',
17
+ 'AR' => 'Argentina',
18
+ 'AM' => 'Armenia',
19
+ 'AW' => 'Aruba',
20
+ 'AU' => 'Australia',
21
+ 'AT' => 'Austria',
22
+ 'AZ' => 'Azerbaijan',
23
+ 'BS' => 'Bahamas',
24
+ 'BH' => 'Bahrain',
25
+ 'BD' => 'Bangladesh',
26
+ 'BB' => 'Barbados',
27
+ 'BY' => 'Belarus',
28
+ 'BE' => 'Belgium',
29
+ 'BZ' => 'Belize',
30
+ 'BJ' => 'Benin',
31
+ 'BM' => 'Bermuda',
32
+ 'BT' => 'Bhutan',
33
+ 'BO' => 'Bolivia',
34
+ 'BA' => 'Bosnia And Herzegovina',
35
+ 'BW' => 'Botswana',
36
+ 'BV' => 'Bouvet Island',
37
+ 'BR' => 'Brazil',
38
+ 'IO' => 'British Indian Ocean Territory',
39
+ 'BN' => 'Brunei Darussalam',
40
+ 'BG' => 'Bulgaria',
41
+ 'BF' => 'Burkina Faso',
42
+ 'BI' => 'Burundi',
43
+ 'KH' => 'Cambodia',
44
+ 'CM' => 'Cameroon',
45
+ 'CA' => 'Canada',
46
+ 'CV' => 'Cape Verde',
47
+ 'KY' => 'Cayman Islands',
48
+ 'CF' => 'Central African Republic',
49
+ 'TD' => 'Chad',
50
+ 'CL' => 'Chile',
51
+ 'CN' => 'China',
52
+ 'CX' => 'Christmas Island',
53
+ 'CC' => 'Cocos (Keeling) Islands',
54
+ 'CO' => 'Colombia',
55
+ 'KM' => 'Comoros',
56
+ 'CG' => 'Congo',
57
+ 'CD' => 'Congo, Democratic Republic',
58
+ 'CK' => 'Cook Islands',
59
+ 'CR' => 'Costa Rica',
60
+ 'CI' => "Cote D'Ivoire",
61
+ 'HR' => 'Croatia',
62
+ 'CU' => 'Cuba',
63
+ 'CY' => 'Cyprus',
64
+ 'CZ' => 'Czech Republic',
65
+ 'DK' => 'Denmark',
66
+ 'DJ' => 'Djibouti',
67
+ 'DM' => 'Dominica',
68
+ 'DO' => 'Dominican Republic',
69
+ 'EC' => 'Ecuador',
70
+ 'EG' => 'Egypt',
71
+ 'SV' => 'El Salvador',
72
+ 'GQ' => 'Equatorial Guinea',
73
+ 'ER' => 'Eritrea',
74
+ 'EE' => 'Estonia',
75
+ 'ET' => 'Ethiopia',
76
+ 'FK' => 'Falkland Islands (Malvinas)',
77
+ 'FO' => 'Faroe Islands',
78
+ 'FJ' => 'Fiji',
79
+ 'FI' => 'Finland',
80
+ 'FR' => 'France',
81
+ 'GF' => 'French Guiana',
82
+ 'PF' => 'French Polynesia',
83
+ 'TF' => 'French Southern Territories',
84
+ 'GA' => 'Gabon',
85
+ 'GM' => 'Gambia',
86
+ 'GE' => 'Georgia',
87
+ 'DE' => 'Germany',
88
+ 'GH' => 'Ghana',
89
+ 'GI' => 'Gibraltar',
90
+ 'GR' => 'Greece',
91
+ 'GL' => 'Greenland',
92
+ 'GD' => 'Grenada',
93
+ 'GP' => 'Guadeloupe',
94
+ 'GU' => 'Guam',
95
+ 'GT' => 'Guatemala',
96
+ 'GG' => 'Guernsey',
97
+ 'GN' => 'Guinea',
98
+ 'GW' => 'Guinea-Bissau',
99
+ 'GY' => 'Guyana',
100
+ 'HT' => 'Haiti',
101
+ 'HM' => 'Heard Island & Mcdonald Islands',
102
+ 'VA' => 'Holy See (Vatican City State)',
103
+ 'HN' => 'Honduras',
104
+ 'HK' => 'Hong Kong',
105
+ 'HU' => 'Hungary',
106
+ 'IS' => 'Iceland',
107
+ 'IN' => 'India',
108
+ 'ID' => 'Indonesia',
109
+ 'IR' => 'Iran, Islamic Republic Of',
110
+ 'IQ' => 'Iraq',
111
+ 'IE' => 'Ireland',
112
+ 'IM' => 'Isle Of Man',
113
+ 'IL' => 'Israel',
114
+ 'IT' => 'Italy',
115
+ 'JM' => 'Jamaica',
116
+ 'JP' => 'Japan',
117
+ 'JE' => 'Jersey',
118
+ 'JO' => 'Jordan',
119
+ 'KZ' => 'Kazakhstan',
120
+ 'KE' => 'Kenya',
121
+ 'KI' => 'Kiribati',
122
+ 'KR' => 'Korea',
123
+ 'KW' => 'Kuwait',
124
+ 'KG' => 'Kyrgyzstan',
125
+ 'LA' => "Lao People's Democratic Republic",
126
+ 'LV' => 'Latvia',
127
+ 'LB' => 'Lebanon',
128
+ 'LS' => 'Lesotho',
129
+ 'LR' => 'Liberia',
130
+ 'LY' => 'Libyan Arab Jamahiriya',
131
+ 'LI' => 'Liechtenstein',
132
+ 'LT' => 'Lithuania',
133
+ 'LU' => 'Luxembourg',
134
+ 'MO' => 'Macao',
135
+ 'MK' => 'Macedonia',
136
+ 'MG' => 'Madagascar',
137
+ 'MW' => 'Malawi',
138
+ 'MY' => 'Malaysia',
139
+ 'MV' => 'Maldives',
140
+ 'ML' => 'Mali',
141
+ 'MT' => 'Malta',
142
+ 'MH' => 'Marshall Islands',
143
+ 'MQ' => 'Martinique',
144
+ 'MR' => 'Mauritania',
145
+ 'MU' => 'Mauritius',
146
+ 'YT' => 'Mayotte',
147
+ 'MX' => 'Mexico',
148
+ 'FM' => 'Micronesia, Federated States Of',
149
+ 'MD' => 'Moldova',
150
+ 'MC' => 'Monaco',
151
+ 'MN' => 'Mongolia',
152
+ 'ME' => 'Montenegro',
153
+ 'MS' => 'Montserrat',
154
+ 'MA' => 'Morocco',
155
+ 'MZ' => 'Mozambique',
156
+ 'MM' => 'Myanmar',
157
+ 'NA' => 'Namibia',
158
+ 'NR' => 'Nauru',
159
+ 'NP' => 'Nepal',
160
+ 'NL' => 'Netherlands',
161
+ 'AN' => 'Netherlands Antilles',
162
+ 'NC' => 'New Caledonia',
163
+ 'NZ' => 'New Zealand',
164
+ 'NI' => 'Nicaragua',
165
+ 'NE' => 'Niger',
166
+ 'NG' => 'Nigeria',
167
+ 'NU' => 'Niue',
168
+ 'NF' => 'Norfolk Island',
169
+ 'MP' => 'Northern Mariana Islands',
170
+ 'NO' => 'Norway',
171
+ 'OM' => 'Oman',
172
+ 'PK' => 'Pakistan',
173
+ 'PW' => 'Palau',
174
+ 'PS' => 'Palestinian Territory, Occupied',
175
+ 'PA' => 'Panama',
176
+ 'PG' => 'Papua New Guinea',
177
+ 'PY' => 'Paraguay',
178
+ 'PE' => 'Peru',
179
+ 'PH' => 'Philippines',
180
+ 'PN' => 'Pitcairn',
181
+ 'PL' => 'Poland',
182
+ 'PT' => 'Portugal',
183
+ 'PR' => 'Puerto Rico',
184
+ 'QA' => 'Qatar',
185
+ 'RE' => 'Reunion',
186
+ 'RO' => 'Romania',
187
+ 'RU' => 'Russian Federation',
188
+ 'RW' => 'Rwanda',
189
+ 'BL' => 'Saint Barthelemy',
190
+ 'SH' => 'Saint Helena',
191
+ 'KN' => 'Saint Kitts And Nevis',
192
+ 'LC' => 'Saint Lucia',
193
+ 'MF' => 'Saint Martin',
194
+ 'PM' => 'Saint Pierre And Miquelon',
195
+ 'VC' => 'Saint Vincent And Grenadines',
196
+ 'WS' => 'Samoa',
197
+ 'SM' => 'San Marino',
198
+ 'ST' => 'Sao Tome And Principe',
199
+ 'SA' => 'Saudi Arabia',
200
+ 'SN' => 'Senegal',
201
+ 'RS' => 'Serbia',
202
+ 'SC' => 'Seychelles',
203
+ 'SL' => 'Sierra Leone',
204
+ 'SG' => 'Singapore',
205
+ 'SK' => 'Slovakia',
206
+ 'SI' => 'Slovenia',
207
+ 'SB' => 'Solomon Islands',
208
+ 'SO' => 'Somalia',
209
+ 'ZA' => 'South Africa',
210
+ 'GS' => 'South Georgia And Sandwich Isl.',
211
+ 'ES' => 'Spain',
212
+ 'LK' => 'Sri Lanka',
213
+ 'SD' => 'Sudan',
214
+ 'SR' => 'Suriname',
215
+ 'SJ' => 'Svalbard And Jan Mayen',
216
+ 'SZ' => 'Swaziland',
217
+ 'SE' => 'Sweden',
218
+ 'CH' => 'Switzerland',
219
+ 'SY' => 'Syrian Arab Republic',
220
+ 'TW' => 'Taiwan',
221
+ 'TJ' => 'Tajikistan',
222
+ 'TZ' => 'Tanzania',
223
+ 'TH' => 'Thailand',
224
+ 'TL' => 'Timor-Leste',
225
+ 'TG' => 'Togo',
226
+ 'TK' => 'Tokelau',
227
+ 'TO' => 'Tonga',
228
+ 'TT' => 'Trinidad And Tobago',
229
+ 'TN' => 'Tunisia',
230
+ 'TR' => 'Turkey',
231
+ 'TM' => 'Turkmenistan',
232
+ 'TC' => 'Turks And Caicos Islands',
233
+ 'TV' => 'Tuvalu',
234
+ 'UG' => 'Uganda',
235
+ 'UA' => 'Ukraine',
236
+ 'AE' => 'United Arab Emirates',
237
+ 'GB' => 'United Kingdom',
238
+ 'US' => 'United States',
239
+ 'UM' => 'United States Outlying Islands',
240
+ 'UY' => 'Uruguay',
241
+ 'UZ' => 'Uzbekistan',
242
+ 'VU' => 'Vanuatu',
243
+ 'VE' => 'Venezuela',
244
+ 'VN' => 'Viet Nam',
245
+ 'VG' => 'Virgin Islands, British',
246
+ 'VI' => 'Virgin Islands, U.S.',
247
+ 'WF' => 'Wallis And Futuna',
248
+ 'EH' => 'Western Sahara',
249
+ 'YE' => 'Yemen',
250
+ 'ZM' => 'Zambia',
251
+ 'ZW' => 'Zimbabwe'
252
+ }.freeze
253
+
254
+ # Retrieves a country's name by its ISO code.
255
+ def country_name(iso_code)
256
+ COUNTRIES.fetch(iso_code, false)
257
+ end
258
+
259
+ # Retrieves a country's ISO code by its name.
260
+ def country_iso(country_name)
261
+ country_pair = COUNTRIES.find { |_iso, name| name.downcase == country_name.downcase }
262
+ country_pair&.first
263
+ end
264
+
265
+ # Returns a list of all supported country ISO codes.
266
+ def list
267
+ COUNTRIES.keys
268
+ end
269
+
270
+ end
271
+ end
272
+ end
@@ -11,7 +11,7 @@ module GenesisRuby
11
11
 
12
12
  # The Response keys that the formatter will be applied to
13
13
  def formatting_keys
14
- %w(timestamp transactionDate valueDate)
14
+ %w(timestamp transactionDate valueDate transaction_date post_date)
15
15
  end
16
16
 
17
17
  # Format the given timestamp to DateTime object
@@ -9,10 +9,7 @@ module GenesisRuby
9
9
 
10
10
  # Convert amount to ISO-4217 minor currency unit
11
11
  def convert
12
- format(
13
- '%d',
14
- (amount * parse_amount(10**currency_exponent))
15
- )
12
+ format '%d', amount * parse_amount(10**currency_exponent)
16
13
  end
17
14
 
18
15
  end
@@ -1,5 +1,5 @@
1
1
  module GenesisRuby
2
2
 
3
- VERSION = '0.2.3'.freeze
3
+ VERSION = '0.2.5'.freeze
4
4
 
5
5
  end