genesis_ruby 0.2.5 → 0.2.7

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 (380) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/Gemfile.lock +20 -20
  4. data/README.md +24 -0
  5. data/VERSION +1 -1
  6. data/lib/genesis_ruby/api/constants/currencies/iso4217.rb +4 -3
  7. data/lib/genesis_ruby/api/constants/date_time_formats.rb +9 -7
  8. data/lib/genesis_ruby/api/constants/endpoints.rb +4 -2
  9. data/lib/genesis_ruby/api/constants/environments.rb +4 -2
  10. data/lib/genesis_ruby/api/constants/i18n.rb +28 -26
  11. data/lib/genesis_ruby/api/constants/non_financial/kyc/address_supported_types.rb +51 -0
  12. data/lib/genesis_ruby/api/constants/non_financial/kyc/aml_filters.rb +49 -0
  13. data/lib/genesis_ruby/api/constants/non_financial/kyc/create_transaction_payment_methods.rb +23 -0
  14. data/lib/genesis_ruby/api/constants/non_financial/kyc/document_supported_types.rb +30 -0
  15. data/lib/genesis_ruby/api/constants/non_financial/kyc/document_types.rb +2 -0
  16. data/lib/genesis_ruby/api/constants/non_financial/kyc/genders.rb +4 -2
  17. data/lib/genesis_ruby/api/constants/non_financial/kyc/identity_document_methods.rb +27 -0
  18. data/lib/genesis_ruby/api/constants/non_financial/kyc/industry_types.rb +29 -0
  19. data/lib/genesis_ruby/api/constants/non_financial/kyc/languages.rb +318 -0
  20. data/lib/genesis_ruby/api/constants/non_financial/kyc/order_sources.rb +22 -0
  21. data/lib/genesis_ruby/api/constants/non_financial/kyc/profile_current_statuses.rb +27 -0
  22. data/lib/genesis_ruby/api/constants/non_financial/kyc/service_languages.rb +69 -0
  23. data/lib/genesis_ruby/api/constants/non_financial/kyc/transaction_statuses.rb +35 -0
  24. data/lib/genesis_ruby/api/constants/non_financial/kyc/verification_modes.rb +27 -0
  25. data/lib/genesis_ruby/api/constants/non_financial/kyc/verification_statuses.rb +29 -0
  26. data/lib/genesis_ruby/api/constants/states/state.rb +2 -0
  27. data/lib/genesis_ruby/api/constants/states.rb +24 -22
  28. data/lib/genesis_ruby/api/constants/transactions/parameters/african_mobile_operators.rb +8 -6
  29. data/lib/genesis_ruby/api/constants/transactions/parameters/business/payment_types.rb +4 -2
  30. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/cash_payment_types.rb +8 -6
  31. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/company_types.rb +2 -0
  32. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/genders.rb +2 -0
  33. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/marital_statuses.rb +2 -0
  34. data/lib/genesis_ruby/api/constants/transactions/parameters/credential_on_files.rb +5 -3
  35. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_owner.rb +4 -2
  36. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_subtype.rb +4 -2
  37. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_type.rb +17 -15
  38. data/lib/genesis_ruby/api/constants/transactions/parameters/digital_asset_types.rb +7 -5
  39. data/lib/genesis_ruby/api/constants/transactions/parameters/funding/business_application_identifier_types.rb +11 -9
  40. data/lib/genesis_ruby/api/constants/transactions/parameters/funding/identifier_types.rb +12 -10
  41. data/lib/genesis_ruby/api/constants/transactions/parameters/funding/receiver_account_types.rb +11 -9
  42. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/amount_types.rb +4 -2
  43. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/frequencies.rb +14 -12
  44. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/intervals.rb +4 -2
  45. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/modes.rb +4 -2
  46. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/payment_types.rb +6 -4
  47. data/lib/genesis_ruby/api/constants/transactions/parameters/mobile/apple_pay/payment_subtypes.rb +5 -3
  48. data/lib/genesis_ruby/api/constants/transactions/parameters/mobile/google_pay/payment_subtypes.rb +5 -3
  49. data/lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_sub_versions.rb +2 -0
  50. data/lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_versions.rb +2 -0
  51. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/billing_api/order_by_fields.rb +14 -12
  52. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/billing_api/response_fields.rb +48 -46
  53. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/billing_api/transaction_types.rb +29 -27
  54. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/externally_processed.rb +5 -3
  55. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/processing_type.rb +5 -3
  56. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sca_exemptions.rb +8 -6
  57. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sort_directions.rb +4 -2
  58. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/bank_account_types.rb +6 -4
  59. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/bank_code_currencies.rb +2 -0
  60. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/bank_codes.rb +203 -201
  61. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/iframe_targets.rb +5 -3
  62. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/payment_types.rb +9 -7
  63. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/payout_payment_types.rb +10 -8
  64. data/lib/genesis_ruby/api/constants/transactions/parameters/purpose_of_payment.rb +42 -40
  65. data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/categories.rb +4 -2
  66. data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/types.rb +5 -3
  67. data/lib/genesis_ruby/api/constants/transactions/parameters/refund/bank_account_types.rb +5 -3
  68. data/lib/genesis_ruby/api/constants/transactions/parameters/refund/credit_reason_indicators.rb +6 -4
  69. data/lib/genesis_ruby/api/constants/transactions/parameters/refund/ticket_change_indicators.rb +4 -2
  70. data/lib/genesis_ruby/api/constants/transactions/parameters/sca_exemptions.rb +8 -6
  71. data/lib/genesis_ruby/api/constants/transactions/parameters/source_of_funds.rb +8 -6
  72. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/browser/color_depths.rb +2 -0
  73. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/password_change_indicators.rb +7 -5
  74. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/registration_indicators.rb +7 -5
  75. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/shipping_address_usage_indicators.rb +6 -4
  76. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/suspicious_activity_indicators.rb +4 -2
  77. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/update_indicators.rb +6 -4
  78. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_indicators.rb +6 -4
  79. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_window_sizes.rb +7 -5
  80. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/device_types.rb +4 -2
  81. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/delivery_timeframes.rb +6 -4
  82. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/pre_order_purchase_indicators.rb +4 -2
  83. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/reorder_item_indicators.rb +4 -2
  84. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/shipping_indicators.rb +10 -8
  85. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/purchase/categories.rb +9 -7
  86. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/interfaces.rb +5 -3
  87. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/ui_types.rb +7 -5
  88. data/lib/genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types.rb +25 -23
  89. data/lib/genesis_ruby/api/constants/transactions/parameters/wallets/pay_pal/payment_types.rb +5 -3
  90. data/lib/genesis_ruby/api/constants/transactions/parameters/wpf/reminder_channels.rb +4 -2
  91. data/lib/genesis_ruby/api/constants/transactions.rb +98 -93
  92. data/lib/genesis_ruby/api/mixins/constants/common.rb +2 -0
  93. data/lib/genesis_ruby/api/mixins/requests/address_info_attributes.rb +2 -0
  94. data/lib/genesis_ruby/api/mixins/requests/attribute_validation.rb +2 -0
  95. data/lib/genesis_ruby/api/mixins/requests/birth_date_attributes.rb +2 -0
  96. data/lib/genesis_ruby/api/mixins/requests/customer_address/billing_info_attributes.rb +2 -0
  97. data/lib/genesis_ruby/api/mixins/requests/customer_address/customer_info_attributes.rb +2 -0
  98. data/lib/genesis_ruby/api/mixins/requests/customer_address/shipping_info_attributes.rb +2 -0
  99. data/lib/genesis_ruby/api/mixins/requests/digital_asset_type_attributes.rb +2 -0
  100. data/lib/genesis_ruby/api/mixins/requests/document_attributes.rb +2 -0
  101. data/lib/genesis_ruby/api/mixins/requests/financial/african_mobile_attributes.rb +2 -0
  102. data/lib/genesis_ruby/api/mixins/requests/financial/async_attributes.rb +2 -0
  103. data/lib/genesis_ruby/api/mixins/requests/financial/bank_attributes.rb +2 -0
  104. data/lib/genesis_ruby/api/mixins/requests/financial/base_attributes.rb +2 -0
  105. data/lib/genesis_ruby/api/mixins/requests/financial/beneficiary_attributes.rb +2 -0
  106. data/lib/genesis_ruby/api/mixins/requests/financial/business/airlines_air_carriers_attributes.rb +2 -0
  107. data/lib/genesis_ruby/api/mixins/requests/financial/business/business_attributes.rb +2 -0
  108. data/lib/genesis_ruby/api/mixins/requests/financial/business/car_plane_and_boat_rentals_attributes.rb +2 -0
  109. data/lib/genesis_ruby/api/mixins/requests/financial/business/cruise_lines_attributes.rb +2 -0
  110. data/lib/genesis_ruby/api/mixins/requests/financial/business/event_management_attributes.rb +2 -0
  111. data/lib/genesis_ruby/api/mixins/requests/financial/business/furniture_attributes.rb +2 -0
  112. data/lib/genesis_ruby/api/mixins/requests/financial/business/hotels_and_real_estate_rentals_attributes.rb +2 -0
  113. data/lib/genesis_ruby/api/mixins/requests/financial/business/travel_agencies_attributes.rb +2 -0
  114. data/lib/genesis_ruby/api/mixins/requests/financial/cards/account_owner_attributes.rb +2 -0
  115. data/lib/genesis_ruby/api/mixins/requests/financial/cards/credential_on_file_attributes.rb +2 -0
  116. data/lib/genesis_ruby/api/mixins/requests/financial/cards/credit_card_attributes.rb +2 -0
  117. data/lib/genesis_ruby/api/mixins/requests/financial/cards/fx_rate_attributes.rb +2 -0
  118. data/lib/genesis_ruby/api/mixins/requests/financial/cards/installment_attributes.rb +2 -0
  119. data/lib/genesis_ruby/api/mixins/requests/financial/cards/mpi_attributes.rb +2 -0
  120. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_attributes.rb +2 -0
  121. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_indian_card_attributes.rb +2 -0
  122. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_category_attributes.rb +2 -0
  123. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_type_attributes.rb +2 -0
  124. data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_attributes.rb +2 -0
  125. data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_params_attributes.rb +2 -0
  126. data/lib/genesis_ruby/api/mixins/requests/financial/cards/ucof_attributes.rb +2 -0
  127. data/lib/genesis_ruby/api/mixins/requests/financial/consumer_identifier_attributes.rb +2 -0
  128. data/lib/genesis_ruby/api/mixins/requests/financial/crypto_attributes.rb +2 -0
  129. data/lib/genesis_ruby/api/mixins/requests/financial/customer_account_attributes.rb +2 -0
  130. data/lib/genesis_ruby/api/mixins/requests/financial/customer_identification_attributes.rb +2 -0
  131. data/lib/genesis_ruby/api/mixins/requests/financial/dynamic_descriptor_attributes.rb +2 -0
  132. data/lib/genesis_ruby/api/mixins/requests/financial/funding_attributes.rb +2 -0
  133. data/lib/genesis_ruby/api/mixins/requests/financial/gaming_attributes.rb +2 -0
  134. data/lib/genesis_ruby/api/mixins/requests/financial/gift_cards_attributes.rb +2 -0
  135. data/lib/genesis_ruby/api/mixins/requests/financial/mobile/apple_pay_token_attributes.rb +2 -0
  136. data/lib/genesis_ruby/api/mixins/requests/financial/mobile/google_pay_token_attributes.rb +2 -0
  137. data/lib/genesis_ruby/api/mixins/requests/financial/moto_attributes.rb +2 -0
  138. data/lib/genesis_ruby/api/mixins/requests/financial/notification_attributes.rb +2 -0
  139. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/payer_attributes.rb +2 -0
  140. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/pix_attributes.rb +2 -0
  141. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/virtual_payment_address_attributes.rb +2 -0
  142. data/lib/genesis_ruby/api/mixins/requests/financial/payment_attributes.rb +2 -0
  143. data/lib/genesis_ruby/api/mixins/requests/financial/pending_payment_attributes.rb +2 -0
  144. data/lib/genesis_ruby/api/mixins/requests/financial/preauthorization_attributes.rb +2 -0
  145. data/lib/genesis_ruby/api/mixins/requests/financial/purpose_of_payment_attributes.rb +2 -0
  146. data/lib/genesis_ruby/api/mixins/requests/financial/reference_attributes.rb +2 -0
  147. data/lib/genesis_ruby/api/mixins/requests/financial/risk_attributes.rb +2 -0
  148. data/lib/genesis_ruby/api/mixins/requests/financial/sca_attributes.rb +2 -0
  149. data/lib/genesis_ruby/api/mixins/requests/financial/source_of_funds_attributes.rb +2 -0
  150. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/browser.rb +2 -0
  151. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/card_holder_account.rb +2 -0
  152. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/common_attributes.rb +2 -0
  153. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/control.rb +2 -0
  154. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/merchant_risk.rb +2 -0
  155. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/method.rb +2 -0
  156. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/purchase.rb +2 -0
  157. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/recurring.rb +2 -0
  158. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/sdk.rb +2 -0
  159. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/wpf_attributes.rb +2 -0
  160. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +2 -0
  161. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/car_rental_attributes.rb +2 -0
  162. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/hotel_rental_attributes.rb +2 -0
  163. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/reference_ticket_attributes.rb +2 -0
  164. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/travel_attributes.rb +2 -0
  165. data/lib/genesis_ruby/api/mixins/requests/non_financial/billing_api/sort_attributes.rb +2 -0
  166. data/lib/genesis_ruby/api/mixins/requests/non_financial/date_attributes.rb +2 -0
  167. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/id_attributes.rb +2 -0
  168. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/tier_id_attributes.rb +2 -0
  169. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/background_checks_attributes.rb +75 -0
  170. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/customer_information_attributes.rb +2 -0
  171. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/deposit_limits_attributes.rb +40 -0
  172. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/document_attributes.rb +62 -0
  173. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/face_attributes.rb +61 -0
  174. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/identity_document_attributes.rb +51 -0
  175. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/kyc_billing_info_attributes.rb +87 -0
  176. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/kyc_shipping_info_attributes.rb +85 -0
  177. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/payment_details_attributes.rb +33 -0
  178. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/verification_attributes.rb +74 -0
  179. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/verification_document_attributes.rb +65 -0
  180. data/lib/genesis_ruby/api/mixins/requests/non_financial/mode_attributes.rb +2 -0
  181. data/lib/genesis_ruby/api/mixins/requests/non_financial/paging_attributes.rb +2 -0
  182. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/card_data_attributes.rb +2 -0
  183. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/token_attributes.rb +2 -0
  184. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/tokenization_attributes.rb +2 -0
  185. data/lib/genesis_ruby/api/mixins/requests/restricted_setter.rb +2 -0
  186. data/lib/genesis_ruby/api/mixins/requests/wpf_reminders_attributes.rb +2 -0
  187. data/lib/genesis_ruby/api/notification.rb +8 -6
  188. data/lib/genesis_ruby/api/request.rb +8 -6
  189. data/lib/genesis_ruby/api/requests/base/consumer.rb +2 -0
  190. data/lib/genesis_ruby/api/requests/base/financial.rb +2 -0
  191. data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +2 -0
  192. data/lib/genesis_ruby/api/requests/base/financials/south_american_payments.rb +2 -0
  193. data/lib/genesis_ruby/api/requests/base/graphql.rb +2 -0
  194. data/lib/genesis_ruby/api/requests/base/non_financial/kyc/base.rb +2 -0
  195. data/lib/genesis_ruby/api/requests/base/reference.rb +2 -0
  196. data/lib/genesis_ruby/api/requests/base/versioned.rb +3 -1
  197. data/lib/genesis_ruby/api/requests/financial/capture.rb +2 -0
  198. data/lib/genesis_ruby/api/requests/financial/cards/argencard.rb +2 -0
  199. data/lib/genesis_ruby/api/requests/financial/cards/aura.rb +2 -0
  200. data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +2 -0
  201. data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +2 -0
  202. data/lib/genesis_ruby/api/requests/financial/cards/bancontact.rb +2 -0
  203. data/lib/genesis_ruby/api/requests/financial/cards/cabal.rb +2 -0
  204. data/lib/genesis_ruby/api/requests/financial/cards/cencosud.rb +2 -0
  205. data/lib/genesis_ruby/api/requests/financial/cards/credit.rb +2 -0
  206. data/lib/genesis_ruby/api/requests/financial/cards/elo.rb +2 -0
  207. data/lib/genesis_ruby/api/requests/financial/cards/naranja.rb +2 -0
  208. data/lib/genesis_ruby/api/requests/financial/cards/nativa.rb +2 -0
  209. data/lib/genesis_ruby/api/requests/financial/cards/payout.rb +2 -0
  210. data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +2 -0
  211. data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +2 -0
  212. data/lib/genesis_ruby/api/requests/financial/cards/tarjeta_shopping.rb +2 -0
  213. data/lib/genesis_ruby/api/requests/financial/cards/threeds/v2/method_continue.rb +2 -0
  214. data/lib/genesis_ruby/api/requests/financial/cash_payments/baloto.rb +2 -0
  215. data/lib/genesis_ruby/api/requests/financial/cash_payments/banco_de_occidente.rb +2 -0
  216. data/lib/genesis_ruby/api/requests/financial/cash_payments/boleto.rb +2 -0
  217. data/lib/genesis_ruby/api/requests/financial/cash_payments/cash.rb +2 -0
  218. data/lib/genesis_ruby/api/requests/financial/cash_payments/efecty.rb +2 -0
  219. data/lib/genesis_ruby/api/requests/financial/cash_payments/oxxo.rb +2 -0
  220. data/lib/genesis_ruby/api/requests/financial/cash_payments/pago_facil.rb +2 -0
  221. data/lib/genesis_ruby/api/requests/financial/cash_payments/pix.rb +2 -0
  222. data/lib/genesis_ruby/api/requests/financial/cash_payments/redpagos.rb +2 -0
  223. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/payout.rb +2 -0
  224. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/refund.rb +2 -0
  225. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/sale.rb +2 -0
  226. data/lib/genesis_ruby/api/requests/financial/gift_cards/fashioncheque.rb +2 -0
  227. data/lib/genesis_ruby/api/requests/financial/gift_cards/intersolve.rb +2 -0
  228. data/lib/genesis_ruby/api/requests/financial/gift_cards/tcs.rb +2 -0
  229. data/lib/genesis_ruby/api/requests/financial/mobile/african_mobile_sale.rb +2 -0
  230. data/lib/genesis_ruby/api/requests/financial/mobile/apple_pay.rb +2 -0
  231. data/lib/genesis_ruby/api/requests/financial/mobile/google_pay.rb +2 -0
  232. data/lib/genesis_ruby/api/requests/financial/mobile/russian_mobile_sale.rb +2 -0
  233. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/banco_do_brasil.rb +2 -0
  234. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/bancomer.rb +2 -0
  235. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/bradesco.rb +2 -0
  236. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/davivienda.rb +2 -0
  237. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/eps.rb +2 -0
  238. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_in.rb +2 -0
  239. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_out.rb +2 -0
  240. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_in.rb +2 -0
  241. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_out.rb +2 -0
  242. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/itau.rb +2 -0
  243. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/multibanco.rb +2 -0
  244. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/my_bank.rb +2 -0
  245. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_in.rb +2 -0
  246. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_out.rb +2 -0
  247. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pay_u.rb +2 -0
  248. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/post_finance.rb +2 -0
  249. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pse.rb +2 -0
  250. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/rapi_pago.rb +2 -0
  251. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/safety_pay.rb +2 -0
  252. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/santander.rb +2 -0
  253. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/sofort.rb +2 -0
  254. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/trustly_sale.rb +2 -0
  255. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/upi.rb +2 -0
  256. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/webpay.rb +2 -0
  257. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/wechat.rb +2 -0
  258. data/lib/genesis_ruby/api/requests/financial/payout/global_payout.rb +42 -0
  259. data/lib/genesis_ruby/api/requests/financial/{Preauthorizations → preauthorizations}/incremental_authorize.rb +2 -0
  260. data/lib/genesis_ruby/api/requests/financial/preauthorizations/partial_reversal.rb +26 -0
  261. data/lib/genesis_ruby/api/requests/financial/refund.rb +2 -0
  262. data/lib/genesis_ruby/api/requests/financial/sdd/recurring/init_recurring_sale.rb +2 -0
  263. data/lib/genesis_ruby/api/requests/financial/sdd/recurring/recurring_sale.rb +2 -0
  264. data/lib/genesis_ruby/api/requests/financial/sdd/refund.rb +2 -0
  265. data/lib/genesis_ruby/api/requests/financial/sdd/sale.rb +2 -0
  266. data/lib/genesis_ruby/api/requests/financial/void.rb +2 -0
  267. data/lib/genesis_ruby/api/requests/financial/vouchers/neosurf.rb +2 -0
  268. data/lib/genesis_ruby/api/requests/financial/wallets/alipay.rb +2 -0
  269. data/lib/genesis_ruby/api/requests/financial/wallets/pay_pal.rb +2 -0
  270. data/lib/genesis_ruby/api/requests/non_financial/billing_api/transactions.rb +2 -0
  271. data/lib/genesis_ruby/api/requests/non_financial/consumers/create.rb +2 -0
  272. data/lib/genesis_ruby/api/requests/non_financial/consumers/disable.rb +2 -0
  273. data/lib/genesis_ruby/api/requests/non_financial/consumers/enable.rb +2 -0
  274. data/lib/genesis_ruby/api/requests/non_financial/consumers/get_cards.rb +2 -0
  275. data/lib/genesis_ruby/api/requests/non_financial/consumers/retrieve.rb +2 -0
  276. data/lib/genesis_ruby/api/requests/non_financial/consumers/update.rb +2 -0
  277. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/date_range.rb +2 -0
  278. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/transaction.rb +2 -0
  279. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/date_range.rb +2 -0
  280. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/transaction.rb +2 -0
  281. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/date_range.rb +2 -0
  282. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/transaction.rb +2 -0
  283. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rate.rb +6 -3
  284. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rates.rb +7 -2
  285. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tier.rb +7 -2
  286. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tiers.rb +2 -0
  287. data/lib/genesis_ruby/api/requests/non_financial/fx/search_rate.rb +7 -2
  288. data/lib/genesis_ruby/api/requests/non_financial/installments/fetch.rb +2 -0
  289. data/lib/genesis_ruby/api/requests/non_financial/installments/show.rb +7 -2
  290. data/lib/genesis_ruby/api/requests/non_financial/kyc/call/create.rb +90 -0
  291. data/lib/genesis_ruby/api/requests/non_financial/kyc/call/update.rb +60 -0
  292. data/lib/genesis_ruby/api/requests/non_financial/kyc/cnpj/check.rb +52 -0
  293. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/create.rb +4 -2
  294. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/update.rb +52 -0
  295. data/lib/genesis_ruby/api/requests/non_financial/kyc/cpf/check.rb +52 -0
  296. data/lib/genesis_ruby/api/requests/non_financial/kyc/identity_document/download.rb +43 -0
  297. data/lib/genesis_ruby/api/requests/non_financial/kyc/identity_document/upload.rb +67 -0
  298. data/lib/genesis_ruby/api/requests/non_financial/kyc/transaction/create.rb +190 -0
  299. data/lib/genesis_ruby/api/requests/non_financial/kyc/transaction/update.rb +63 -0
  300. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/create.rb +90 -0
  301. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/register.rb +44 -0
  302. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/remote_identity.rb +50 -0
  303. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/status.rb +44 -0
  304. data/lib/genesis_ruby/api/requests/non_financial/payee/account/create.rb +73 -0
  305. data/lib/genesis_ruby/api/requests/non_financial/payee/account/list.rb +74 -0
  306. data/lib/genesis_ruby/api/requests/non_financial/payee/account/retrieve.rb +61 -0
  307. data/lib/genesis_ruby/api/requests/non_financial/payee/create.rb +60 -0
  308. data/lib/genesis_ruby/api/requests/non_financial/payee/retrieve.rb +57 -0
  309. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/date_range.rb +2 -0
  310. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/post_date_range.rb +2 -0
  311. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/transaction.rb +2 -0
  312. data/lib/genesis_ruby/api/requests/non_financial/reconcile/date_range.rb +2 -0
  313. data/lib/genesis_ruby/api/requests/non_financial/reconcile/transaction.rb +2 -0
  314. data/lib/genesis_ruby/api/requests/non_financial/sca/checker.rb +2 -0
  315. data/lib/genesis_ruby/api/requests/non_financial/tokenization/cryptogram.rb +2 -0
  316. data/lib/genesis_ruby/api/requests/non_financial/tokenization/delete_token.rb +2 -0
  317. data/lib/genesis_ruby/api/requests/non_financial/tokenization/detokenize.rb +2 -0
  318. data/lib/genesis_ruby/api/requests/non_financial/tokenization/get_card.rb +2 -0
  319. data/lib/genesis_ruby/api/requests/non_financial/tokenization/tokenize.rb +2 -0
  320. data/lib/genesis_ruby/api/requests/non_financial/tokenization/update_token.rb +2 -0
  321. data/lib/genesis_ruby/api/requests/non_financial/tokenization/validate_token.rb +2 -0
  322. data/lib/genesis_ruby/api/requests/wpf/create.rb +2 -0
  323. data/lib/genesis_ruby/api/requests/wpf/reconcile.rb +2 -0
  324. data/lib/genesis_ruby/api/response.rb +2 -0
  325. data/lib/genesis_ruby/builder.rb +6 -4
  326. data/lib/genesis_ruby/builders/base.rb +2 -0
  327. data/lib/genesis_ruby/builders/form.rb +2 -0
  328. data/lib/genesis_ruby/builders/graphql.rb +2 -0
  329. data/lib/genesis_ruby/builders/json.rb +2 -0
  330. data/lib/genesis_ruby/builders/xml.rb +2 -0
  331. data/lib/genesis_ruby/configuration.rb +3 -1
  332. data/lib/genesis_ruby/connection.rb +2 -0
  333. data/lib/genesis_ruby/dependencies.rb +2 -0
  334. data/lib/genesis_ruby/errors/builder_error.rb +2 -0
  335. data/lib/genesis_ruby/errors/endpoint_not_set_error.rb +2 -0
  336. data/lib/genesis_ruby/errors/error.rb +2 -0
  337. data/lib/genesis_ruby/errors/invalid_argument_error.rb +2 -0
  338. data/lib/genesis_ruby/errors/network_error.rb +2 -0
  339. data/lib/genesis_ruby/errors/object_formatter_error.rb +2 -0
  340. data/lib/genesis_ruby/errors/parameter_error.rb +2 -0
  341. data/lib/genesis_ruby/errors/parser_error.rb +2 -0
  342. data/lib/genesis_ruby/errors/request_error.rb +2 -0
  343. data/lib/genesis_ruby/errors/response_error.rb +2 -0
  344. data/lib/genesis_ruby/network/adapter/base_adapter.rb +2 -0
  345. data/lib/genesis_ruby/network/adapter/net_http_adapter.rb +4 -0
  346. data/lib/genesis_ruby/network/base_network.rb +5 -3
  347. data/lib/genesis_ruby/network/net_http.rb +2 -0
  348. data/lib/genesis_ruby/parser.rb +4 -2
  349. data/lib/genesis_ruby/parsers/base.rb +2 -0
  350. data/lib/genesis_ruby/parsers/json.rb +2 -0
  351. data/lib/genesis_ruby/parsers/xml.rb +2 -0
  352. data/lib/genesis_ruby/utils/common.rb +2 -0
  353. data/lib/genesis_ruby/utils/country.rb +2 -0
  354. data/lib/genesis_ruby/utils/formatters/base.rb +2 -0
  355. data/lib/genesis_ruby/utils/formatters/response/definitions.rb +2 -0
  356. data/lib/genesis_ruby/utils/formatters/response/formats/amount.rb +2 -0
  357. data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +2 -0
  358. data/lib/genesis_ruby/utils/formatters/response/loader.rb +2 -0
  359. data/lib/genesis_ruby/utils/money/base/strategy.rb +2 -0
  360. data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +2 -0
  361. data/lib/genesis_ruby/utils/money/conversions/exponent_to_amount.rb +2 -0
  362. data/lib/genesis_ruby/utils/money/format.rb +2 -0
  363. data/lib/genesis_ruby/utils/money_format.rb +2 -0
  364. data/lib/genesis_ruby/utils/object_formatter.rb +2 -0
  365. data/lib/genesis_ruby/utils/options/api_config.rb +2 -0
  366. data/lib/genesis_ruby/utils/options/base.rb +2 -0
  367. data/lib/genesis_ruby/utils/options/network_adapter_config.rb +2 -0
  368. data/lib/genesis_ruby/utils/options/reminder.rb +2 -0
  369. data/lib/genesis_ruby/utils/threeds/v2.rb +2 -0
  370. data/lib/genesis_ruby/utils/transactions/financial_types.rb +2 -0
  371. data/lib/genesis_ruby/utils/transactions/references/capturable_types.rb +2 -0
  372. data/lib/genesis_ruby/utils/transactions/references/refundable_types.rb +2 -0
  373. data/lib/genesis_ruby/utils/transactions/references/voidable_types.rb +2 -0
  374. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/base.rb +2 -0
  375. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg.rb +2 -0
  376. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax.rb +2 -0
  377. data/lib/genesis_ruby/utils/transactions/wpf_types.rb +2 -0
  378. data/lib/genesis_ruby/version.rb +3 -1
  379. data/lib/genesis_ruby.rb +2 -0
  380. metadata +46 -3
@@ -0,0 +1,190 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/transaction_statuses'
4
+ require 'genesis_ruby/api/constants/non_financial/kyc/industry_types'
5
+ require 'genesis_ruby/api/constants/non_financial/kyc/order_sources'
6
+
7
+ module GenesisRuby
8
+ module Api
9
+ module Requests
10
+ module NonFinancial
11
+ module Kyc
12
+ module Transaction
13
+ # Create transaction type for KYC Non-Financial API services
14
+ class Create < Api::Requests::Base::NonFinancial::Kyc::Base # rubocop:disable Metrics/ClassLength
15
+
16
+ include Api::Mixins::Requests::Financial::PaymentAttributes
17
+ include Api::Mixins::Requests::NonFinancial::Kyc::DepositLimitsAttributes
18
+ include Api::Mixins::Requests::NonFinancial::Kyc::CustomerInformationAttributes
19
+ include Api::Mixins::Requests::NonFinancial::Kyc::KycBillingInfoAttributes
20
+ include Api::Mixins::Requests::NonFinancial::Kyc::KycShippingInfoAttributes
21
+ include Api::Mixins::Requests::NonFinancial::Kyc::PaymentDetailsAttributes
22
+
23
+ attr_accessor :session_id, :customer_username, :customer_unique_id, :customer_status,
24
+ :customer_loyalty_level, :customer_registration_ip_address,
25
+ :customer_registration_device_id, :transaction_unique_id,
26
+ :customer_ip_address, :customer_device_id,
27
+ :third_party_device_id, :device_fingerprint, :device_fingerprint_type,
28
+ :shopping_cart_items_count, :order_source, :merchant_website, :industry_type,
29
+ :customer_password, :custom_variable, :transaction_status
30
+
31
+ attr_writer :deposits_count, :withdrawals_count, :current_balance, :rule_context
32
+
33
+ # Initializes the Create Transaction Request
34
+ def initialize(configuration, _builder_interface = nil)
35
+ super configuration
36
+
37
+ self.request_path = 'create_transaction'
38
+ end
39
+
40
+ # Returns customer registration date
41
+ def customer_registration_date
42
+ @customer_registration_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
43
+ end
44
+
45
+ # Sets customer registration date
46
+ def customer_registration_date=(value)
47
+ parse_date attribute: __method__, value: value, allow_empty: true
48
+ end
49
+
50
+ # Returns the first deposit date
51
+ def first_deposit_date
52
+ @first_deposit_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
53
+ end
54
+
55
+ # Sets the first deposit date
56
+ def first_deposit_date=(value)
57
+ parse_date attribute: __method__, value: value, allow_empty: true
58
+ end
59
+
60
+ # Returns the first withdrawal date
61
+ def first_withdrawal_date
62
+ @first_withdrawal_date&.strftime GenesisRuby::Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
63
+ end
64
+
65
+ # Sets the first withdrawal date
66
+ def first_withdrawal_date=(value)
67
+ parse_date attribute: __method__, value: value, allow_empty: true
68
+ end
69
+
70
+ # Returns the local time in the format YYYY-MM-DD HH:MM:SS
71
+ def local_time
72
+ @local_time&.strftime GenesisRuby::Api::Constants::DateTimeFormats::YYYY_MM_DD_H_I_S
73
+ end
74
+
75
+ # Sets the local time
76
+ def local_time=(value)
77
+ parse_date attribute: __method__, value: value, allow_empty: true
78
+ end
79
+
80
+ # Returns the transaction created at date in the format YYYY-MM-DD HH:MM:SS
81
+ def transaction_created_at
82
+ @transaction_created_at&.strftime GenesisRuby::Api::Constants::DateTimeFormats::YYYY_MM_DD_H_I_S
83
+ end
84
+
85
+ # Sets the transaction created at date
86
+ def transaction_created_at=(value)
87
+ parse_date attribute: __method__, value: value, allow_empty: true
88
+ end
89
+
90
+ # Returns the deposits count as an integer
91
+ def deposits_count
92
+ @deposits_count&.to_i
93
+ end
94
+
95
+ # Returns the withdrawals count as an integer
96
+ def withdrawals_count
97
+ @withdrawals_count&.to_i
98
+ end
99
+
100
+ # Returns the current balance as an integer
101
+ def current_balance
102
+ @current_balance&.to_i
103
+ end
104
+
105
+ # Returns the rule context as an integer
106
+ def rule_context
107
+ @rule_context&.to_i
108
+ end
109
+
110
+ protected
111
+
112
+ # Sets field values and dependencies for the Create Transaction Request
113
+ def init_field_validations # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
114
+ super
115
+
116
+ required_fields.push *%i[
117
+ transaction_unique_id
118
+ transaction_created_at
119
+ customer_ip_address
120
+ ] + customer_information_required_fields + deposit_limits_required_fields
121
+
122
+ field_values.merge! transaction_status: Api::Constants::NonFinancial::Kyc::TransactionStatuses.all,
123
+ device_fingerprint_type: [1, 2, 3],
124
+ order_source: GenesisRuby::Api::Constants::NonFinancial::Kyc::OrderSources.all, # rubocop:disable Layout/LineLength
125
+ industry_type: Api::Constants::NonFinancial::Kyc::IndustryTypes.all,
126
+ payment_method: GenesisRuby::Api::Constants::NonFinancial::Kyc::CreateTransactionPaymentMethods.all # rubocop:disable Layout/LineLength
127
+
128
+ pm_const = GenesisRuby::Api::Constants::NonFinancial::Kyc::CreateTransactionPaymentMethods
129
+ field_value_dependencies.merge!(
130
+ {
131
+ payment_method: {
132
+ pm_const::PAYMENT_METHOD_CC => %i[bin tail],
133
+ pm_const::PAYMENT_METHOD_CC_OPTIONAL => %i[cvv_present hashed_pan],
134
+ pm_const::PAYMENT_METHOD_EC => %i[routing account]
135
+ }
136
+ }
137
+ )
138
+
139
+ field_values.merge! customer_information_required_field_values
140
+ end
141
+
142
+ # Returns the request structure for Create Transaction Request
143
+ def request_structure # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
144
+ {
145
+ session_id: session_id,
146
+ customer_username: customer_username,
147
+ customer_unique_id: customer_unique_id,
148
+ customer_status: customer_status,
149
+ customer_loyalty_level: customer_loyalty_level,
150
+ customer_registration_date: customer_registration_date,
151
+ customer_registration_ip_address: customer_registration_ip_address,
152
+ customer_registration_device_id: customer_registration_device_id,
153
+ customer_information: customer_information_structure,
154
+ first_deposit_date: first_deposit_date,
155
+ first_withdrawal_date: first_withdrawal_date,
156
+ deposits_count: deposits_count,
157
+ withdrawals_count: withdrawals_count,
158
+ current_balance: current_balance,
159
+ deposit_limits: deposit_limits_structure,
160
+ transaction_unique_id: transaction_unique_id,
161
+ billing_information: kyc_billing_info_structure,
162
+ shipping_information: kyc_shipping_info_structure,
163
+ payment_details: payment_details_structure,
164
+ amount: amount,
165
+ currency: currency,
166
+ transaction_created_at: transaction_created_at,
167
+ transaction_status: transaction_status,
168
+ customer_ip_address: customer_ip_address,
169
+ customer_device_id: customer_device_id,
170
+ third_party_device_id: third_party_device_id,
171
+ device_fingerprint: device_fingerprint,
172
+ device_fingerprint_type: device_fingerprint_type,
173
+ shopping_cart_items_count: shopping_cart_items_count,
174
+ local_time: local_time,
175
+ order_source: order_source,
176
+ merchant_website: merchant_website,
177
+ industry_type: industry_type,
178
+ customer_password: customer_password,
179
+ rule_context: rule_context,
180
+ custom_variable: custom_variable
181
+ }
182
+ end
183
+
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/transaction_statuses'
4
+
5
+ module GenesisRuby
6
+ module Api
7
+ module Requests
8
+ module NonFinancial
9
+ module Kyc
10
+ module Transaction
11
+ # Utilize this method to update a particular transaction status so we can continue improving the data models
12
+ # and provide the best scores and recommendations.
13
+ class Update < Api::Requests::Base::NonFinancial::Kyc::Base
14
+
15
+ attr_accessor :session_id,
16
+ :transaction_unique_id,
17
+ :reason,
18
+ :reference_id,
19
+ :cvv_check_result,
20
+ :avs_check_result,
21
+ :processor_identifier
22
+ attr_writer :transaction_status
23
+
24
+ # Initialize the Update transaction request
25
+ def initialize(configuration, _builder_interface = nil)
26
+ super configuration
27
+
28
+ self.request_path = 'update_transaction'
29
+ end
30
+
31
+ # Returns the transaction status as an integer
32
+ def transaction_status
33
+ @transaction_status&.to_i
34
+ end
35
+
36
+ # Initializes the required fields and their validations
37
+ def init_field_validations
38
+ required_fields.push *%i[transaction_unique_id]
39
+
40
+ field_values.merge! transaction_status: Api::Constants::NonFinancial::Kyc::TransactionStatuses.all
41
+ end
42
+
43
+ # Returns the request structure for the Update transaction request
44
+ def request_structure
45
+ {
46
+ session_id: session_id,
47
+ transaction_unique_id: transaction_unique_id,
48
+ reference_id: reference_id,
49
+ transaction_status: transaction_status,
50
+ reason: reason,
51
+ cvv_check_result: cvv_check_result,
52
+ avs_check_result: avs_check_result,
53
+ processor_identifier: processor_identifier
54
+ }
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/address_supported_types'
4
+ require 'genesis_ruby/api/constants/non_financial/kyc/languages'
5
+ require 'genesis_ruby/api/constants/non_financial/kyc/verification_modes'
6
+
7
+ module GenesisRuby
8
+ module Api
9
+ module Requests
10
+ module NonFinancial
11
+ module Kyc
12
+ module Verifications
13
+ # The verification request will provide a link that will be used to redirect the customer.
14
+ # The customer will provide the required documents and will be verified against them.
15
+ # As a result, the user will be redirected back to merchant based on the provided redirect URL.
16
+ class Create < Api::Requests::Base::NonFinancial::Kyc::Base
17
+
18
+ include Api::Mixins::Requests::NonFinancial::Kyc::BackgroundChecksAttributes
19
+ include Api::Mixins::Requests::NonFinancial::Kyc::FaceAttributes
20
+ include Api::Mixins::Requests::NonFinancial::Kyc::VerificationAttributes
21
+ include Api::Mixins::Requests::NonFinancial::Kyc::VerificationDocumentAttributes
22
+
23
+ attr_accessor :language, :address_backside_proof_required, :allow_retry, :verification_mode
24
+ attr_reader :redirect_url, :address_supported_types
25
+
26
+ # Initializes the Create Verification Request
27
+ def initialize(configuration, _builder_interface = nil)
28
+ super configuration
29
+
30
+ self.request_path = 'verifications'
31
+ end
32
+
33
+ # URL where the customer is sent to after completing the verification process
34
+ def redirect_url=(value)
35
+ unless GenesisRuby::Utils::Common.valid_url?(value)
36
+ raise ParameterError, "Invalid URL given for #{__method__}"
37
+ end
38
+
39
+ @redirect_url = value
40
+ end
41
+
42
+ # Supported types of address that can be verified
43
+ def address_supported_types=(value)
44
+ parse_array_of_strings attribute: __method__,
45
+ value: value,
46
+ allowed: Api::Constants::NonFinancial::Kyc::AddressSupportedTypes.all,
47
+ allow_empty: true
48
+ end
49
+
50
+ protected
51
+
52
+ def init_field_validations
53
+ required_fields.push *%i[email]
54
+
55
+ field_values.merge!(
56
+ language: Api::Constants::NonFinancial::Kyc::Languages.all,
57
+ address_backside_proof_required: [true, false],
58
+ allow_retry: [true, false],
59
+ verification_mode: Api::Constants::NonFinancial::Kyc::VerificationModes.all
60
+ )
61
+ end
62
+
63
+ # Returns request structure for the Create verification
64
+ def request_structure # rubocop:disable Metrics/MethodLength
65
+ {
66
+ email: email,
67
+ country: country,
68
+ language: language,
69
+ redirect_url: redirect_url,
70
+ reference_id: reference_id,
71
+ document_supported_types: document_supported_types,
72
+ address_supported_types: address_supported_types,
73
+ face: face_attributes_structure,
74
+ backside_proof_required: backside_proof_required,
75
+ address_backside_proof_required: address_backside_proof_required,
76
+ expiry_date: expiry_date,
77
+ allow_retry: allow_retry,
78
+ verification_mode: verification_mode,
79
+ background_checks: background_checks_attributes_structure,
80
+ document: verification_document_attributes_structure
81
+ }
82
+ end
83
+
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Kyc
8
+ module Verifications
9
+ # Verification register request can be performed by reference_id. A reference id registration
10
+ # allows you to store the reference id in Genesis and receive notifications in Genesis for it.
11
+ class Register < Api::Requests::Base::NonFinancial::Kyc::Base
12
+
13
+ include Api::Mixins::Requests::Financial::ReferenceAttributes
14
+
15
+ # Initialize the request
16
+ def initialize(configuration, _builder_interface = nil)
17
+ super configuration
18
+
19
+ self.request_path = 'verifications/register'
20
+ end
21
+
22
+ protected
23
+
24
+ # Set the request field validations
25
+ def init_field_validations
26
+ super
27
+
28
+ required_fields.push *%i[reference_id]
29
+ end
30
+
31
+ # Return request structure
32
+ def request_structure
33
+ {
34
+ reference_id: reference_id
35
+ }
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Kyc
8
+ module Verifications
9
+ # Remote Identity Verification Request class for KYC Non-Financial API services
10
+ class RemoteIdentity < Api::Requests::Base::NonFinancial::Kyc::Base
11
+
12
+ include Api::Mixins::Requests::NonFinancial::Kyc::DocumentAttributes
13
+ include Api::Mixins::Requests::NonFinancial::Kyc::VerificationAttributes
14
+
15
+ # Initializes the Remote Identity Verification Request
16
+ def initialize(configuration, _builder_interface = nil)
17
+ super configuration
18
+
19
+ self.request_path = 'verifications'
20
+ end
21
+
22
+ protected
23
+
24
+ # Performs validation checks for the Remote Identity verification request
25
+ def check_requirements
26
+ raise ParameterError, 'Either email or reference_id field has to be set.' if email.nil? && reference_id.nil? # rubocop:disable Layout/LineLength
27
+
28
+ super
29
+ end
30
+
31
+ # Returns request structure for the Remote Identity verification
32
+ def request_structure
33
+ {
34
+ email: email,
35
+ reference_id: reference_id,
36
+ country: country,
37
+ backside_proof_required: backside_proof_required,
38
+ expiry_date: expiry_date,
39
+ document_supported_types: document_supported_types,
40
+ document: document_attributes_structure
41
+ }
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Kyc
8
+ module Verifications
9
+ # Verification status check request can be performed by reference_id. A status check may be needed
10
+ # if async notification has not arrived yet or when kyc notifications are not used in general.
11
+ class Status < Api::Requests::Base::NonFinancial::Kyc::Base
12
+
13
+ include Api::Mixins::Requests::Financial::ReferenceAttributes
14
+
15
+ # Initialize the request
16
+ def initialize(configuration, _builder_interface = nil)
17
+ super configuration
18
+
19
+ self.request_path = 'verifications/status'
20
+ end
21
+
22
+ protected
23
+
24
+ # Set the request field validations
25
+ def init_field_validations
26
+ super
27
+
28
+ required_fields.push *%i[reference_id]
29
+ end
30
+
31
+ # Return request structure
32
+ def request_structure
33
+ {
34
+ reference_id: reference_id
35
+ }
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Payee
8
+ module Account
9
+ # Create a Account related to a specific Payee.
10
+ class Create < Base::Versioned
11
+
12
+ PAYEE_ACCOUNT_TYPE_IBAN = 'iban'
13
+ PAYEE_ACCOUNT_TYPE_BANK = 'bank'
14
+
15
+ attr_accessor :payee_unique_id, :payee_account_type, :payee_account_number, :payee_account_country,
16
+ :payee_account_institution_code
17
+
18
+ # Retrieve Payee initialization
19
+ def initialize(configuration, _builder_interface = nil)
20
+ super configuration
21
+
22
+ self.request_path = 'payee/:payee_unique_id/account'
23
+ end
24
+
25
+ protected
26
+
27
+ # Sets the request field validations
28
+ def init_field_validations # rubocop:disable Metrics/MethodLength
29
+ super
30
+
31
+ required_fields.push *%i[
32
+ payee_unique_id payee_account_type payee_account_number
33
+ ]
34
+ field_values.merge! payee_account_type: [PAYEE_ACCOUNT_TYPE_IBAN, PAYEE_ACCOUNT_TYPE_BANK],
35
+ payee_account_country: GenesisRuby::Utils::Country::COUNTRIES.keys
36
+ field_value_dependencies.merge!(
37
+ {
38
+ payee_account_type: {
39
+ PAYEE_ACCOUNT_TYPE_BANK => %i[payee_account_institution_code]
40
+ }
41
+ }
42
+ )
43
+ end
44
+
45
+ # Returns the request structure
46
+ def request_structure
47
+ {
48
+ account: {
49
+ type: payee_account_type,
50
+ number: payee_account_number,
51
+ country: payee_account_country,
52
+ institution_code: payee_account_institution_code
53
+
54
+ }
55
+ }
56
+ end
57
+
58
+ # Override API endpoint configuration
59
+ def process_request_parameters
60
+ super
61
+
62
+ processed_path = request_path.dup.gsub(':payee_unique_id', payee_unique_id.to_s)
63
+
64
+ init_api_service_configuration request_path: processed_path, include_token: false
65
+ end
66
+
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Payee
8
+ module Account
9
+ # Retrieve the details of all Account records that belongs to specific Payee.
10
+ class List < Base::Versioned
11
+
12
+ attr_accessor :payee_unique_id, :number_eq, :type_eq, :institution_code_eq
13
+
14
+ # Retrieve Payee initialization
15
+ def initialize(configuration, _builder_interface = nil)
16
+ super configuration
17
+
18
+ self.request_path = 'payee/:payee_unique_id/account'
19
+ end
20
+
21
+ protected
22
+
23
+ # Override default Versioned Network configuration
24
+ def init_configuration
25
+ super
26
+
27
+ init_get_configuration
28
+ end
29
+
30
+ # Sets the request field validations
31
+ def init_field_validations
32
+ super
33
+
34
+ required_fields.push *%i[
35
+ payee_unique_id
36
+ ]
37
+ end
38
+
39
+ # Returns the request structure
40
+ def request_structure
41
+ {}
42
+ end
43
+
44
+ # Override API endpoint configuration
45
+ def process_request_parameters
46
+ processed_path = request_path.dup.gsub(':payee_unique_id', payee_unique_id.to_s)
47
+
48
+ query_params = build_query_params
49
+ processed_path += "?#{query_params}" unless query_params.empty?
50
+
51
+ init_api_service_configuration request_path: processed_path, include_token: false
52
+
53
+ super
54
+ end
55
+
56
+ private
57
+
58
+ # Build query parameters from filter fields
59
+ def build_query_params
60
+ params = {}
61
+ params['number_eq'] = number_eq if number_eq
62
+ params['type_eq'] = type_eq if type_eq
63
+ params['institution_code_eq'] = institution_code_eq if institution_code_eq
64
+
65
+ URI.encode_www_form(params)
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end