genesis_ruby 0.2.6 → 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 +18 -0
  3. data/Gemfile.lock +19 -19
  4. data/README.md +21 -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 +6 -4
  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 +2 -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 +2 -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/incremental_authorize.rb +2 -0
  260. data/lib/genesis_ruby/api/requests/financial/preauthorizations/partial_reversal.rb +2 -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 +2 -0
  294. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/update.rb +2 -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 +2 -43
  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 +39 -2
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/service_languages'
4
+
5
+ module GenesisRuby
6
+ module Api
7
+ module Requests
8
+ module NonFinancial
9
+ module Kyc
10
+ module Call
11
+ # Create Call Request class for KYC Non-Financial API services
12
+ # This method is used to make a call or send an SMS to a given phone number.
13
+ class Create < Api::Requests::Base::NonFinancial::Kyc::Base
14
+
15
+ SERVICE_TYPE_SMS = 1
16
+ SERVICE_TYPE_VOICE = 2
17
+
18
+ VALID_SERVICE_TYPES = [SERVICE_TYPE_SMS, SERVICE_TYPE_VOICE].freeze
19
+
20
+ attr_accessor :customer_username, :customer_unique_id, :transaction_unique_id, :service_language,
21
+ :service_type
22
+ attr_reader :customer_phone_number, :security_code
23
+
24
+ # Initialize the Make Call document request
25
+ def initialize(configuration, _builder_interface = nil)
26
+ super configuration
27
+
28
+ self.request_path = 'create_authentication'
29
+ end
30
+
31
+ # Set the customer username for the Make Call request
32
+ def customer_phone_number=(value)
33
+ error_message = format(
34
+ 'Invalid value given for %{attribute}',
35
+ attribute: __method__
36
+ )
37
+ raise GenesisRuby::InvalidArgumentError, error_message unless value.nil? || value =~ /^\d+$/
38
+
39
+ @customer_phone_number = value
40
+ end
41
+
42
+ # Set the service type for the Make Call request
43
+ def security_code=(value)
44
+ error_message = format(
45
+ 'Invalid value given for %{attribute}',
46
+ attribute: __method__
47
+ )
48
+ raise GenesisRuby::InvalidArgumentError, error_message unless value.nil? || value =~ /^[1-9]\d{3}$/
49
+
50
+ @security_code = value
51
+ end
52
+
53
+ protected
54
+
55
+ # Initialize field validations for the Make Call request
56
+ def init_field_validations
57
+ super
58
+
59
+ required_fields.push *%i[
60
+ transaction_unique_id
61
+ customer_phone_number
62
+ service_language
63
+ security_code
64
+ service_type
65
+ ]
66
+
67
+ field_values.merge! service_type: VALID_SERVICE_TYPES,
68
+ service_language: GenesisRuby::Api::Constants::NonFinancial::Kyc::ServiceLanguages.all # rubocop:disable Layout/LineLength
69
+ end
70
+
71
+ # Build the request structure for the Make Call request
72
+ def request_structure
73
+ {
74
+ customer_unique_id: customer_unique_id,
75
+ customer_username: customer_username,
76
+ transaction_unique_id: transaction_unique_id,
77
+ customer_phone_number: customer_phone_number,
78
+ service_language: service_language,
79
+ security_code: security_code,
80
+ service_type: service_type
81
+ }
82
+ end
83
+
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/verification_statuses'
4
+
5
+ module GenesisRuby
6
+ module Api
7
+ module Requests
8
+ module NonFinancial
9
+ module Kyc
10
+ module Call
11
+ # Update Call Request class for KYC Non-Financial API services
12
+ # This method is used to update the call status with the latest info received from the main system.
13
+ # It also updates the transaction associated with this verification call.
14
+ class Update < Api::Requests::Base::NonFinancial::Kyc::Base
15
+
16
+ attr_accessor :reference_id, :security_code_input
17
+ attr_writer :verification_status
18
+
19
+ # Initialize the Update Call document request
20
+ def initialize(configuration, _builder_interface = nil)
21
+ super configuration
22
+
23
+ self.request_path = 'update_authentication'
24
+ end
25
+
26
+ def verification_status
27
+ @verification_status.to_s
28
+ end
29
+
30
+ protected
31
+
32
+ # Initialize the field validations for the Update Call request
33
+ def init_field_validations
34
+ super
35
+
36
+ required_fields.push *%i[
37
+ reference_id
38
+ security_code_input
39
+ verification_status
40
+ ]
41
+
42
+ field_values.merge! verification_status: Constants::NonFinancial::Kyc::VerificationStatuses.all
43
+ end
44
+
45
+ # Build the request structure for the Update Call request
46
+ def request_structure
47
+ {
48
+ reference_id: reference_id,
49
+ security_code_input: security_code_input,
50
+ verification_status: verification_status
51
+ }
52
+ end
53
+
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Kyc
8
+ module Cnpj
9
+ # Check the status of a specific Brazilian company's CNPJ number
10
+ class Check < Api::Requests::Base::NonFinancial::Kyc::Base
11
+
12
+ include Api::Mixins::Requests::DocumentAttributes
13
+
14
+ # Initializes the CNPJ Check Request
15
+ def initialize(configuration, _builder_interface = nil)
16
+ super configuration
17
+
18
+ self.request_path = 'cnpj/:document_id'
19
+ end
20
+
21
+ protected
22
+
23
+ # Sets the request field validations
24
+ def init_field_validations
25
+ super
26
+
27
+ required_fields.push *%i[document_id]
28
+ end
29
+
30
+ # CNPJ Check request structure
31
+ def request_structure
32
+ {}
33
+ end
34
+
35
+ # Override API endpoint with provided document ID
36
+ def process_request_parameters
37
+ super
38
+
39
+ processed_path = request_path.gsub(':document_id', document_id.to_s)
40
+
41
+ init_kyc_service_configuration(
42
+ request_path: "api/#{version}/#{processed_path}"
43
+ )
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'genesis_ruby/api/constants/non_financial/kyc/profile_current_statuses'
2
4
 
3
5
  module GenesisRuby
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Kyc
8
+ module Cpf
9
+ # Check the status of a specific Brazilian personal's CPF number
10
+ class Check < Api::Requests::Base::NonFinancial::Kyc::Base
11
+
12
+ include Api::Mixins::Requests::DocumentAttributes
13
+
14
+ # Initializes the CPF Check Request
15
+ def initialize(configuration, _builder_interface = nil)
16
+ super configuration
17
+
18
+ self.request_path = 'cpf/:document_id'
19
+ end
20
+
21
+ protected
22
+
23
+ # Sets the request field validations
24
+ def init_field_validations
25
+ super
26
+
27
+ required_fields.push *%i[document_id]
28
+ end
29
+
30
+ # CPF Check request structure
31
+ def request_structure
32
+ {}
33
+ end
34
+
35
+ # Override API endpoint with provided document ID
36
+ def process_request_parameters
37
+ super
38
+
39
+ processed_path = request_path.gsub(':document_id', document_id.to_s)
40
+
41
+ init_kyc_service_configuration(
42
+ request_path: "api/#{version}/#{processed_path}"
43
+ )
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Requests
6
+ module NonFinancial
7
+ module Kyc
8
+ module IdentityDocument
9
+ # Uploaded documents will be stored by legal provisions and they can be requested for review.
10
+ class Download < Api::Requests::Base::NonFinancial::Kyc::Base
11
+
12
+ attr_accessor :identity_document_id
13
+
14
+ # Initialize the Download document request
15
+ def initialize(configuration, _builder_interface = nil)
16
+ super configuration
17
+
18
+ self.request_path = 'download_document'
19
+ end
20
+
21
+ protected
22
+
23
+ # Initializes the required fields for the Download Document request
24
+ def init_field_validations
25
+ super
26
+
27
+ required_fields.push *%i[identity_document_id]
28
+ end
29
+
30
+ # Returns the request structure for the Download Document request
31
+ def request_structure
32
+ {
33
+ identity_document_id: identity_document_id
34
+ }
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/identity_document_methods'
4
+
5
+ module GenesisRuby
6
+ module Api
7
+ module Requests
8
+ module NonFinancial
9
+ module Kyc
10
+ module IdentityDocument
11
+ # Used to verify documents provided by the customer.
12
+ class Upload < Api::Requests::Base::NonFinancial::Kyc::Base
13
+
14
+ include Api::Mixins::Requests::NonFinancial::Kyc::IdentityDocumentAttributes
15
+
16
+ attr_accessor :customer_username, :customer_unique_id, :transaction_unique_id, :reference_id, :method
17
+
18
+ # Initialize the Upload Document request
19
+ def initialize(configuration, _builder_interface = nil)
20
+ super(configuration)
21
+
22
+ self.request_path = 'upload_document'
23
+ end
24
+
25
+ protected
26
+
27
+ # Initializes the required fields for the Upload Document request
28
+ def init_field_validations
29
+ super
30
+
31
+ required_fields.push *%i[
32
+ method
33
+ ]
34
+
35
+ field_values.merge! method: GenesisRuby::Api::Constants::NonFinancial::Kyc::IdentityDocumentMethods.all
36
+ end
37
+
38
+ # Validates the request parameters
39
+ def check_requirements
40
+ raise ParameterError, 'Either transaction_unique_id or reference_id field has to be set.' if transaction_unique_id.nil? && reference_id.nil? # rubocop:disable Layout/LineLength
41
+ raise ParameterError, 'Add at least one document' if docs.empty?
42
+
43
+ super
44
+ end
45
+
46
+ # Returns the request structure for the Upload Document request
47
+ def request_structure # rubocop:disable Metrics/MethodLength
48
+ {
49
+ customer_username: customer_username,
50
+ customer_unique_id: customer_unique_id,
51
+ transaction_unique_id: transaction_unique_id,
52
+ reference_id: reference_id,
53
+ method: method,
54
+ doc: get_doc(0),
55
+ doc2: get_doc(1),
56
+ doc3: get_doc(2),
57
+ doc4: get_doc(3)
58
+ }
59
+ end
60
+
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -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