univapay-apimatic-sdk 0.0.1

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 (272) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +224 -0
  4. data/bin/console +15 -0
  5. data/lib/univapay_client_sdk/api_helper.rb +10 -0
  6. data/lib/univapay_client_sdk/apis/base_api.rb +67 -0
  7. data/lib/univapay_client_sdk/apis/cancels_api.rb +293 -0
  8. data/lib/univapay_client_sdk/apis/charges_api.rb +903 -0
  9. data/lib/univapay_client_sdk/apis/merchants_api.rb +57 -0
  10. data/lib/univapay_client_sdk/apis/refunds_api.rb +298 -0
  11. data/lib/univapay_client_sdk/apis/stores_api.rb +126 -0
  12. data/lib/univapay_client_sdk/apis/subscriptions_api.rb +1014 -0
  13. data/lib/univapay_client_sdk/apis/transaction_tokens_api.rb +455 -0
  14. data/lib/univapay_client_sdk/apis/webhooks_api.rb +463 -0
  15. data/lib/univapay_client_sdk/client.rb +116 -0
  16. data/lib/univapay_client_sdk/configuration.rb +178 -0
  17. data/lib/univapay_client_sdk/events/unknown_event.rb +32 -0
  18. data/lib/univapay_client_sdk/events/webhooks/bank_transfer_handler.rb +37 -0
  19. data/lib/univapay_client_sdk/events/webhooks/cancel_handler.rb +37 -0
  20. data/lib/univapay_client_sdk/events/webhooks/charge_finished_handler.rb +37 -0
  21. data/lib/univapay_client_sdk/events/webhooks/charge_updated_handler.rb +37 -0
  22. data/lib/univapay_client_sdk/events/webhooks/customs_handler.rb +37 -0
  23. data/lib/univapay_client_sdk/events/webhooks/recurring_token_deleted_handler.rb +37 -0
  24. data/lib/univapay_client_sdk/events/webhooks/refund_handler.rb +37 -0
  25. data/lib/univapay_client_sdk/events/webhooks/subscription_canceled_handler.rb +37 -0
  26. data/lib/univapay_client_sdk/events/webhooks/subscription_completed_handler.rb +37 -0
  27. data/lib/univapay_client_sdk/events/webhooks/subscription_created_handler.rb +37 -0
  28. data/lib/univapay_client_sdk/events/webhooks/subscription_failure_handler.rb +37 -0
  29. data/lib/univapay_client_sdk/events/webhooks/subscription_payment_handler.rb +37 -0
  30. data/lib/univapay_client_sdk/events/webhooks/subscription_suspended_handler.rb +37 -0
  31. data/lib/univapay_client_sdk/events/webhooks/token_created_handler.rb +37 -0
  32. data/lib/univapay_client_sdk/events/webhooks/token_cvv_auth_check_updated_handler.rb +37 -0
  33. data/lib/univapay_client_sdk/events/webhooks/token_cvv_auth_updated_handler.rb +37 -0
  34. data/lib/univapay_client_sdk/events/webhooks/token_replaced_handler.rb +37 -0
  35. data/lib/univapay_client_sdk/events/webhooks/token_three_ds_updated_handler.rb +37 -0
  36. data/lib/univapay_client_sdk/events/webhooks/token_updated_handler.rb +37 -0
  37. data/lib/univapay_client_sdk/exceptions/api_error_exception.rb +199 -0
  38. data/lib/univapay_client_sdk/exceptions/api_exception.rb +21 -0
  39. data/lib/univapay_client_sdk/http/api_response.rb +19 -0
  40. data/lib/univapay_client_sdk/http/auth/oauth_2.rb +53 -0
  41. data/lib/univapay_client_sdk/http/http_call_back.rb +10 -0
  42. data/lib/univapay_client_sdk/http/http_method_enum.rb +10 -0
  43. data/lib/univapay_client_sdk/http/http_request.rb +10 -0
  44. data/lib/univapay_client_sdk/http/http_response.rb +10 -0
  45. data/lib/univapay_client_sdk/http/proxy_settings.rb +22 -0
  46. data/lib/univapay_client_sdk/logging/configuration/api_logging_configuration.rb +186 -0
  47. data/lib/univapay_client_sdk/logging/sdk_logger.rb +17 -0
  48. data/lib/univapay_client_sdk/models/api_error_detail.rb +87 -0
  49. data/lib/univapay_client_sdk/models/api_error_status.rb +26 -0
  50. data/lib/univapay_client_sdk/models/bank_transfer_event.rb +27 -0
  51. data/lib/univapay_client_sdk/models/bank_transfer_ledger.rb +199 -0
  52. data/lib/univapay_client_sdk/models/bank_transfer_ledger_bank_ledger_type.rb +36 -0
  53. data/lib/univapay_client_sdk/models/bank_transfer_ledger_list.rb +104 -0
  54. data/lib/univapay_client_sdk/models/bank_transfer_ledger_mode.rb +36 -0
  55. data/lib/univapay_client_sdk/models/bank_transfer_payment_status.rb +44 -0
  56. data/lib/univapay_client_sdk/models/bank_transfer_status_data.rb +229 -0
  57. data/lib/univapay_client_sdk/models/bank_transfer_status_webhook_callback.rb +134 -0
  58. data/lib/univapay_client_sdk/models/bank_transfer_status_webhook_callback_extension.rb +75 -0
  59. data/lib/univapay_client_sdk/models/base_bank_transfer_data.rb +100 -0
  60. data/lib/univapay_client_sdk/models/base_konbini_data.rb +99 -0
  61. data/lib/univapay_client_sdk/models/base_konbini_data_convenience_store.rb +60 -0
  62. data/lib/univapay_client_sdk/models/base_model.rb +110 -0
  63. data/lib/univapay_client_sdk/models/base_online_data.rb +123 -0
  64. data/lib/univapay_client_sdk/models/base_online_data_brand.rb +48 -0
  65. data/lib/univapay_client_sdk/models/base_online_data_call_method.rb +52 -0
  66. data/lib/univapay_client_sdk/models/base_online_data_os_type.rb +36 -0
  67. data/lib/univapay_client_sdk/models/base_online_data_user_identifier_source.rb +36 -0
  68. data/lib/univapay_client_sdk/models/cancel.rb +183 -0
  69. data/lib/univapay_client_sdk/models/cancel_create_request.rb +77 -0
  70. data/lib/univapay_client_sdk/models/cancel_event.rb +26 -0
  71. data/lib/univapay_client_sdk/models/cancel_list.rb +94 -0
  72. data/lib/univapay_client_sdk/models/cancel_status.rb +44 -0
  73. data/lib/univapay_client_sdk/models/cancel_update_request.rb +76 -0
  74. data/lib/univapay_client_sdk/models/cancel_webhook_callback.rb +132 -0
  75. data/lib/univapay_client_sdk/models/cancel_webhook_callback_extension.rb +74 -0
  76. data/lib/univapay_client_sdk/models/card_processor_installment_config.rb +89 -0
  77. data/lib/univapay_client_sdk/models/charge.rb +411 -0
  78. data/lib/univapay_client_sdk/models/charge_capture_request.rb +84 -0
  79. data/lib/univapay_client_sdk/models/charge_create_request.rb +179 -0
  80. data/lib/univapay_client_sdk/models/charge_create_request_client_metadata.rb +76 -0
  81. data/lib/univapay_client_sdk/models/charge_create_request_redirect.rb +75 -0
  82. data/lib/univapay_client_sdk/models/charge_create_request_three_ds.rb +88 -0
  83. data/lib/univapay_client_sdk/models/charge_create_request_three_ds_mode.rb +44 -0
  84. data/lib/univapay_client_sdk/models/charge_finished_webhook_callback.rb +131 -0
  85. data/lib/univapay_client_sdk/models/charge_list.rb +104 -0
  86. data/lib/univapay_client_sdk/models/charge_mode.rb +36 -0
  87. data/lib/univapay_client_sdk/models/charge_redirect.rb +96 -0
  88. data/lib/univapay_client_sdk/models/charge_status.rb +56 -0
  89. data/lib/univapay_client_sdk/models/charge_three_ds.rb +97 -0
  90. data/lib/univapay_client_sdk/models/charge_transaction_token_type.rb +40 -0
  91. data/lib/univapay_client_sdk/models/charge_update_request.rb +75 -0
  92. data/lib/univapay_client_sdk/models/charge_updated_webhook_callback.rb +131 -0
  93. data/lib/univapay_client_sdk/models/cursor_direction_query.rb +36 -0
  94. data/lib/univapay_client_sdk/models/customs_declaration_create_request.rb +106 -0
  95. data/lib/univapay_client_sdk/models/customs_declaration_event.rb +27 -0
  96. data/lib/univapay_client_sdk/models/customs_declaration_patch_request.rb +77 -0
  97. data/lib/univapay_client_sdk/models/customs_declaration_webhook_callback.rb +135 -0
  98. data/lib/univapay_client_sdk/models/customs_declaration_webhook_callback_extension.rb +76 -0
  99. data/lib/univapay_client_sdk/models/customs_declaration_webhook_data.rb +232 -0
  100. data/lib/univapay_client_sdk/models/customs_declaration_webhook_declaration.rb +121 -0
  101. data/lib/univapay_client_sdk/models/customs_declaration_webhook_error.rb +127 -0
  102. data/lib/univapay_client_sdk/models/customs_declaration_webhook_other_error.rb +120 -0
  103. data/lib/univapay_client_sdk/models/customs_declaration_webhook_result.rb +125 -0
  104. data/lib/univapay_client_sdk/models/customs_declaration_webhook_status.rb +44 -0
  105. data/lib/univapay_client_sdk/models/generic_metadata.rb +111 -0
  106. data/lib/univapay_client_sdk/models/installment_fixed_cycles.rb +70 -0
  107. data/lib/univapay_client_sdk/models/installment_plan_type.rb +36 -0
  108. data/lib/univapay_client_sdk/models/issuer_token.rb +177 -0
  109. data/lib/univapay_client_sdk/models/issuer_token_call_method.rb +51 -0
  110. data/lib/univapay_client_sdk/models/issuer_token_payload.rb +105 -0
  111. data/lib/univapay_client_sdk/models/issuer_token_payment_type.rb +36 -0
  112. data/lib/univapay_client_sdk/models/merchant.rb +179 -0
  113. data/lib/univapay_client_sdk/models/merchant_webhook_bank_transfer_configuration.rb +342 -0
  114. data/lib/univapay_client_sdk/models/merchant_webhook_card_brand_percent_fees.rb +167 -0
  115. data/lib/univapay_client_sdk/models/merchant_webhook_card_configuration.rb +301 -0
  116. data/lib/univapay_client_sdk/models/merchant_webhook_checkout_configuration.rb +87 -0
  117. data/lib/univapay_client_sdk/models/merchant_webhook_checkout_toggle.rb +77 -0
  118. data/lib/univapay_client_sdk/models/merchant_webhook_configuration.rb +505 -0
  119. data/lib/univapay_client_sdk/models/merchant_webhook_convenience_configuration.rb +88 -0
  120. data/lib/univapay_client_sdk/models/merchant_webhook_customer_management_configuration.rb +99 -0
  121. data/lib/univapay_client_sdk/models/merchant_webhook_installment_plan_configuration.rb +139 -0
  122. data/lib/univapay_client_sdk/models/merchant_webhook_limit_charge_by_card_configuration.rb +88 -0
  123. data/lib/univapay_client_sdk/models/merchant_webhook_limit_refund_by_sales_configuration.rb +100 -0
  124. data/lib/univapay_client_sdk/models/merchant_webhook_money_amount.rb +85 -0
  125. data/lib/univapay_client_sdk/models/merchant_webhook_online_configuration.rb +77 -0
  126. data/lib/univapay_client_sdk/models/merchant_webhook_paidy_configuration.rb +77 -0
  127. data/lib/univapay_client_sdk/models/merchant_webhook_qr_merchant_configuration.rb +77 -0
  128. data/lib/univapay_client_sdk/models/merchant_webhook_qr_scan_configuration.rb +93 -0
  129. data/lib/univapay_client_sdk/models/merchant_webhook_recurring_cvv_confirmation_config.rb +97 -0
  130. data/lib/univapay_client_sdk/models/merchant_webhook_recurring_token_configuration.rb +109 -0
  131. data/lib/univapay_client_sdk/models/merchant_webhook_security_configuration.rb +234 -0
  132. data/lib/univapay_client_sdk/models/merchant_webhook_subscription_configuration.rb +138 -0
  133. data/lib/univapay_client_sdk/models/merchant_webhook_subscription_plan_configuration.rb +138 -0
  134. data/lib/univapay_client_sdk/models/merchant_webhook_transfer_schedule_configuration.rb +159 -0
  135. data/lib/univapay_client_sdk/models/merchant_webhook_user_transactions_configuration.rb +349 -0
  136. data/lib/univapay_client_sdk/models/mode_query.rb +36 -0
  137. data/lib/univapay_client_sdk/models/payment_error.rb +178 -0
  138. data/lib/univapay_client_sdk/models/plan_settings_type.rb +36 -0
  139. data/lib/univapay_client_sdk/models/recurring_token_deleted_webhook_callback.rb +132 -0
  140. data/lib/univapay_client_sdk/models/refund.rb +240 -0
  141. data/lib/univapay_client_sdk/models/refund_create_request.rb +118 -0
  142. data/lib/univapay_client_sdk/models/refund_event.rb +26 -0
  143. data/lib/univapay_client_sdk/models/refund_list.rb +104 -0
  144. data/lib/univapay_client_sdk/models/refund_reason_request.rb +42 -0
  145. data/lib/univapay_client_sdk/models/refund_reason_response.rb +62 -0
  146. data/lib/univapay_client_sdk/models/refund_status.rb +47 -0
  147. data/lib/univapay_client_sdk/models/refund_update_request.rb +99 -0
  148. data/lib/univapay_client_sdk/models/refund_webhook_callback.rb +132 -0
  149. data/lib/univapay_client_sdk/models/refund_webhook_callback_extension.rb +74 -0
  150. data/lib/univapay_client_sdk/models/restrict_ip_after_failed_charge_config.rb +99 -0
  151. data/lib/univapay_client_sdk/models/store.rb +119 -0
  152. data/lib/univapay_client_sdk/models/store_list.rb +104 -0
  153. data/lib/univapay_client_sdk/models/store_list_item.rb +114 -0
  154. data/lib/univapay_client_sdk/models/subscription.rb +310 -0
  155. data/lib/univapay_client_sdk/models/subscription_canceled_webhook_callback.rb +132 -0
  156. data/lib/univapay_client_sdk/models/subscription_completed_webhook_callback.rb +132 -0
  157. data/lib/univapay_client_sdk/models/subscription_create_request.rb +216 -0
  158. data/lib/univapay_client_sdk/models/subscription_created_webhook_callback.rb +132 -0
  159. data/lib/univapay_client_sdk/models/subscription_failure_webhook_callback.rb +132 -0
  160. data/lib/univapay_client_sdk/models/subscription_installment_plan.rb +86 -0
  161. data/lib/univapay_client_sdk/models/subscription_list.rb +104 -0
  162. data/lib/univapay_client_sdk/models/subscription_list_item.rb +352 -0
  163. data/lib/univapay_client_sdk/models/subscription_next_payment.rb +222 -0
  164. data/lib/univapay_client_sdk/models/subscription_patch_payment_request.rb +117 -0
  165. data/lib/univapay_client_sdk/models/subscription_patch_token_request.rb +79 -0
  166. data/lib/univapay_client_sdk/models/subscription_payment.rb +185 -0
  167. data/lib/univapay_client_sdk/models/subscription_payment_list.rb +94 -0
  168. data/lib/univapay_client_sdk/models/subscription_payment_webhook_callback.rb +132 -0
  169. data/lib/univapay_client_sdk/models/subscription_period.rb +56 -0
  170. data/lib/univapay_client_sdk/models/subscription_plan_settings.rb +98 -0
  171. data/lib/univapay_client_sdk/models/subscription_schedule_settings.rb +132 -0
  172. data/lib/univapay_client_sdk/models/subscription_status.rb +56 -0
  173. data/lib/univapay_client_sdk/models/subscription_suspend_request.rb +79 -0
  174. data/lib/univapay_client_sdk/models/subscription_suspended_webhook_callback.rb +132 -0
  175. data/lib/univapay_client_sdk/models/subscription_terminate_with_status.rb +36 -0
  176. data/lib/univapay_client_sdk/models/subscription_termination_mode.rb +36 -0
  177. data/lib/univapay_client_sdk/models/subscription_update_next_payment.rb +104 -0
  178. data/lib/univapay_client_sdk/models/subscription_update_request.rb +134 -0
  179. data/lib/univapay_client_sdk/models/subscription_update_schedule_settings.rb +110 -0
  180. data/lib/univapay_client_sdk/models/subscription_update_status.rb +37 -0
  181. data/lib/univapay_client_sdk/models/subscription_user_data.rb +134 -0
  182. data/lib/univapay_client_sdk/models/suspend_schedule_settings.rb +78 -0
  183. data/lib/univapay_client_sdk/models/three_ds_issuer_token.rb +116 -0
  184. data/lib/univapay_client_sdk/models/three_ds_issuer_token_call_method.rb +26 -0
  185. data/lib/univapay_client_sdk/models/three_ds_issuer_token_payment_type.rb +26 -0
  186. data/lib/univapay_client_sdk/models/token_create_bank_transfer_data.rb +122 -0
  187. data/lib/univapay_client_sdk/models/token_create_card_data.rb +231 -0
  188. data/lib/univapay_client_sdk/models/token_create_card_data_cvv_authorize.rb +95 -0
  189. data/lib/univapay_client_sdk/models/token_create_card_data_three_ds.rb +97 -0
  190. data/lib/univapay_client_sdk/models/token_create_konbini_data.rb +147 -0
  191. data/lib/univapay_client_sdk/models/token_create_online_data.rb +142 -0
  192. data/lib/univapay_client_sdk/models/token_create_phone_number.rb +104 -0
  193. data/lib/univapay_client_sdk/models/token_created_webhook_callback.rb +131 -0
  194. data/lib/univapay_client_sdk/models/token_cvv_auth_check_updated_webhook_callback.rb +132 -0
  195. data/lib/univapay_client_sdk/models/token_cvv_auth_updated_webhook_callback.rb +132 -0
  196. data/lib/univapay_client_sdk/models/token_replaced_webhook_callback.rb +131 -0
  197. data/lib/univapay_client_sdk/models/token_response_bank_transfer_data.rb +181 -0
  198. data/lib/univapay_client_sdk/models/token_response_card_data.rb +129 -0
  199. data/lib/univapay_client_sdk/models/token_response_card_data_billing.rb +153 -0
  200. data/lib/univapay_client_sdk/models/token_response_card_data_card.rb +187 -0
  201. data/lib/univapay_client_sdk/models/token_response_card_data_cvv_authorize.rb +132 -0
  202. data/lib/univapay_client_sdk/models/token_response_card_data_cvv_authorize_check.rb +118 -0
  203. data/lib/univapay_client_sdk/models/token_response_card_data_three_ds.rb +142 -0
  204. data/lib/univapay_client_sdk/models/token_response_card_data_three_ds_status.rb +48 -0
  205. data/lib/univapay_client_sdk/models/token_response_konbini_data.rb +135 -0
  206. data/lib/univapay_client_sdk/models/token_response_online_data.rb +158 -0
  207. data/lib/univapay_client_sdk/models/token_response_phone_number.rb +96 -0
  208. data/lib/univapay_client_sdk/models/token_three_ds_updated_webhook_callback.rb +132 -0
  209. data/lib/univapay_client_sdk/models/token_updated_webhook_callback.rb +131 -0
  210. data/lib/univapay_client_sdk/models/transaction_token.rb +250 -0
  211. data/lib/univapay_client_sdk/models/transaction_token_create_request.rb +161 -0
  212. data/lib/univapay_client_sdk/models/transaction_token_create_request_metadata.rb +124 -0
  213. data/lib/univapay_client_sdk/models/transaction_token_create_request_payment_type.rb +44 -0
  214. data/lib/univapay_client_sdk/models/transaction_token_create_request_type.rb +40 -0
  215. data/lib/univapay_client_sdk/models/transaction_token_list.rb +104 -0
  216. data/lib/univapay_client_sdk/models/transaction_token_list_item.rb +204 -0
  217. data/lib/univapay_client_sdk/models/transaction_token_list_item_user_data.rb +96 -0
  218. data/lib/univapay_client_sdk/models/transaction_token_mode.rb +36 -0
  219. data/lib/univapay_client_sdk/models/transaction_token_payment_type.rb +48 -0
  220. data/lib/univapay_client_sdk/models/transaction_token_type.rb +40 -0
  221. data/lib/univapay_client_sdk/models/transaction_token_update_request.rb +95 -0
  222. data/lib/univapay_client_sdk/models/transaction_token_update_request_data.rb +184 -0
  223. data/lib/univapay_client_sdk/models/transaction_token_update_request_data_phone_number.rb +86 -0
  224. data/lib/univapay_client_sdk/models/webhook.rb +191 -0
  225. data/lib/univapay_client_sdk/models/webhook_callback_envelope.rb +98 -0
  226. data/lib/univapay_client_sdk/models/webhook_create_request.rb +97 -0
  227. data/lib/univapay_client_sdk/models/webhook_event.rb +166 -0
  228. data/lib/univapay_client_sdk/models/webhook_event_list.rb +94 -0
  229. data/lib/univapay_client_sdk/models/webhook_list.rb +94 -0
  230. data/lib/univapay_client_sdk/models/webhook_trigger.rb +104 -0
  231. data/lib/univapay_client_sdk/models/webhook_update_request.rb +108 -0
  232. data/lib/univapay_client_sdk/utilities/date_time_helper.rb +11 -0
  233. data/lib/univapay_client_sdk/utilities/file_wrapper.rb +28 -0
  234. data/lib/univapay_client_sdk/utilities/union_type_lookup.rb +242 -0
  235. data/lib/univapay_client_sdk.rb +322 -0
  236. data/test/apis/api_test_base.rb +23 -0
  237. data/test/apis/test_cancels_api.rb +162 -0
  238. data/test/apis/test_charges_api.rb +564 -0
  239. data/test/apis/test_merchants_api.rb +50 -0
  240. data/test/apis/test_refunds_api.rb +172 -0
  241. data/test/apis/test_stores_api.rb +86 -0
  242. data/test/apis/test_subscriptions_api.rb +579 -0
  243. data/test/apis/test_transaction_tokens_api.rb +305 -0
  244. data/test/apis/test_webhooks_api.rb +245 -0
  245. data/test/events/webhooks/test_bank_transfer_handler.rb +95 -0
  246. data/test/events/webhooks/test_cancel_handler.rb +90 -0
  247. data/test/events/webhooks/test_charge_finished_handler.rb +95 -0
  248. data/test/events/webhooks/test_charge_updated_handler.rb +95 -0
  249. data/test/events/webhooks/test_customs_handler.rb +100 -0
  250. data/test/events/webhooks/test_recurring_token_deleted_handler.rb +92 -0
  251. data/test/events/webhooks/test_refund_handler.rb +95 -0
  252. data/test/events/webhooks/test_subscription_canceled_handler.rb +101 -0
  253. data/test/events/webhooks/test_subscription_completed_handler.rb +101 -0
  254. data/test/events/webhooks/test_subscription_created_handler.rb +101 -0
  255. data/test/events/webhooks/test_subscription_failure_handler.rb +101 -0
  256. data/test/events/webhooks/test_subscription_payment_handler.rb +101 -0
  257. data/test/events/webhooks/test_subscription_suspended_handler.rb +101 -0
  258. data/test/events/webhooks/test_token_created_handler.rb +92 -0
  259. data/test/events/webhooks/test_token_cvv_auth_check_updated_handler.rb +92 -0
  260. data/test/events/webhooks/test_token_cvv_auth_updated_handler.rb +92 -0
  261. data/test/events/webhooks/test_token_replaced_handler.rb +92 -0
  262. data/test/events/webhooks/test_token_three_ds_updated_handler.rb +92 -0
  263. data/test/events/webhooks/test_token_updated_handler.rb +92 -0
  264. data/test/framework_integrations/rails_app_test_helper.rb +14 -0
  265. data/test/framework_integrations/webhooks/apps/hanami_charge_updated_app.rb +61 -0
  266. data/test/framework_integrations/webhooks/apps/rails_charge_updated_app.rb +24 -0
  267. data/test/framework_integrations/webhooks/apps/sinatra_charge_updated_app.rb +27 -0
  268. data/test/framework_integrations/webhooks/test/test_hanami_charge_updated_app.rb +57 -0
  269. data/test/framework_integrations/webhooks/test/test_rails_charge_updated_app.rb +57 -0
  270. data/test/framework_integrations/webhooks/test/test_sinatra_charge_updated_app.rb +58 -0
  271. data/test/http_response_catcher.rb +19 -0
  272. metadata +397 -0
@@ -0,0 +1,455 @@
1
+ # univapay_client_sdk
2
+ #
3
+ # This file was automatically generated for Univapay
4
+ # by APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module UnivapayClientSdk
7
+ # TransactionTokensApi
8
+ class TransactionTokensApi < BaseApi
9
+ # Exchange raw payment data for a secure token. **PCI DSS Compliance
10
+ # Required** if sending raw card numbers.
11
+ # @param [TransactionTokenCreateRequest] body Required parameter: Request
12
+ # payload for creating a transaction token.
13
+ # @param [String] idempotency_key Optional parameter: An optional
14
+ # idempotency key to prevent double charges and duplicate operations. We
15
+ # recommend a randomly generated UUID (v4).
16
+ # @return [ApiResponse] Complete http response with raw body and status code.
17
+ def create_transaction_token(body,
18
+ idempotency_key: nil)
19
+ @api_call
20
+ .request(new_request_builder(HttpMethodEnum::POST,
21
+ '/tokens',
22
+ Server::DEFAULT)
23
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
24
+ .body_param(new_parameter(body)
25
+ .is_required(true))
26
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
27
+ .header_param(new_parameter('application/json', key: 'accept'))
28
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
29
+ .auth(Single.new('JWT_TOKEN')))
30
+ .response(new_response_handler
31
+ .deserializer(APIHelper.method(:custom_type_deserializer))
32
+ .deserialize_into(TransactionToken.method(:from_hash))
33
+ .is_api_response(true)
34
+ .local_error_template('400',
35
+ 'HTTP 400 Bad Request: {$response.body#/code}',
36
+ ApiErrorException)
37
+ .local_error_template('401',
38
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
39
+ ApiErrorException)
40
+ .local_error_template('403',
41
+ 'HTTP 403 Forbidden: {$response.body#/code}',
42
+ ApiErrorException)
43
+ .local_error_template('429',
44
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
45
+ APIException)
46
+ .local_error_template('404',
47
+ 'HTTP 404 Not Found: {$response.body#/code}',
48
+ APIException)
49
+ .local_error_template('409',
50
+ 'HTTP 409 Conflict: {$response.body#/code}',
51
+ APIException)
52
+ .local_error_template('500',
53
+ 'HTTP 500 Server Error: {$response.body#/code}',
54
+ APIException)
55
+ .local_error_template('503',
56
+ 'HTTP 503 Unavailable: {$response.body#/code}',
57
+ APIException)
58
+ .local_error_template('504',
59
+ 'HTTP 504 Timeout: {$response.body#/code}',
60
+ APIException)
61
+ .local_error_template('default',
62
+ 'HTTP {$statusCode}: {$response.body#/code}',
63
+ APIException))
64
+ .execute
65
+ end
66
+
67
+ # Lists all transaction tokens across all stores.
68
+ # @param [Integer] limit Optional parameter: Maximum number of resources to
69
+ # return in one page.
70
+ # @param [UUID | String] cursor Optional parameter: Cursor pointing to the
71
+ # resource after which pagination should continue.
72
+ # @param [CursorDirectionQuery] cursor_direction Optional parameter:
73
+ # Pagination direction relative to the supplied cursor.
74
+ # @return [ApiResponse] Complete http response with raw body and status code.
75
+ def list_all_transaction_tokens(limit: 10,
76
+ cursor: nil,
77
+ cursor_direction: CursorDirectionQuery::DESC)
78
+ @api_call
79
+ .request(new_request_builder(HttpMethodEnum::GET,
80
+ '/tokens',
81
+ Server::DEFAULT)
82
+ .query_param(new_parameter(limit, key: 'limit'))
83
+ .query_param(new_parameter(cursor, key: 'cursor'))
84
+ .query_param(new_parameter(cursor_direction, key: 'cursor_direction'))
85
+ .header_param(new_parameter('application/json', key: 'accept'))
86
+ .auth(Single.new('JWT_TOKEN')))
87
+ .response(new_response_handler
88
+ .deserializer(APIHelper.method(:custom_type_deserializer))
89
+ .deserialize_into(TransactionTokenList.method(:from_hash))
90
+ .is_api_response(true)
91
+ .local_error_template('400',
92
+ 'HTTP 400 Bad Request: {$response.body#/code}',
93
+ ApiErrorException)
94
+ .local_error_template('401',
95
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
96
+ ApiErrorException)
97
+ .local_error_template('403',
98
+ 'HTTP 403 Forbidden: {$response.body#/code}',
99
+ ApiErrorException)
100
+ .local_error_template('429',
101
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
102
+ APIException)
103
+ .local_error_template('404',
104
+ 'HTTP 404 Not Found: {$response.body#/code}',
105
+ APIException)
106
+ .local_error_template('409',
107
+ 'HTTP 409 Conflict: {$response.body#/code}',
108
+ APIException)
109
+ .local_error_template('500',
110
+ 'HTTP 500 Server Error: {$response.body#/code}',
111
+ APIException)
112
+ .local_error_template('503',
113
+ 'HTTP 503 Unavailable: {$response.body#/code}',
114
+ APIException)
115
+ .local_error_template('504',
116
+ 'HTTP 504 Timeout: {$response.body#/code}',
117
+ APIException)
118
+ .local_error_template('default',
119
+ 'HTTP {$statusCode}: {$response.body#/code}',
120
+ APIException))
121
+ .execute
122
+ end
123
+
124
+ # Lists all transaction tokens for a specific store.
125
+ # @param [UUID | String] store_id Required parameter: The unique identifier
126
+ # of the store.
127
+ # @param [Integer] limit Optional parameter: Maximum number of resources to
128
+ # return in one page.
129
+ # @param [UUID | String] cursor Optional parameter: Cursor pointing to the
130
+ # resource after which pagination should continue.
131
+ # @param [CursorDirectionQuery] cursor_direction Optional parameter:
132
+ # Pagination direction relative to the supplied cursor.
133
+ # @return [ApiResponse] Complete http response with raw body and status code.
134
+ def list_store_transaction_tokens(store_id,
135
+ limit: 10,
136
+ cursor: nil,
137
+ cursor_direction: CursorDirectionQuery::DESC)
138
+ @api_call
139
+ .request(new_request_builder(HttpMethodEnum::GET,
140
+ '/stores/{storeId}/tokens',
141
+ Server::DEFAULT)
142
+ .template_param(new_parameter(store_id, key: 'storeId')
143
+ .is_required(true)
144
+ .should_encode(true))
145
+ .query_param(new_parameter(limit, key: 'limit'))
146
+ .query_param(new_parameter(cursor, key: 'cursor'))
147
+ .query_param(new_parameter(cursor_direction, key: 'cursor_direction'))
148
+ .header_param(new_parameter('application/json', key: 'accept'))
149
+ .auth(Single.new('JWT_TOKEN')))
150
+ .response(new_response_handler
151
+ .deserializer(APIHelper.method(:custom_type_deserializer))
152
+ .deserialize_into(TransactionTokenList.method(:from_hash))
153
+ .is_api_response(true)
154
+ .local_error_template('400',
155
+ 'HTTP 400 Bad Request: {$response.body#/code}',
156
+ ApiErrorException)
157
+ .local_error_template('401',
158
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
159
+ ApiErrorException)
160
+ .local_error_template('403',
161
+ 'HTTP 403 Forbidden: {$response.body#/code}',
162
+ ApiErrorException)
163
+ .local_error_template('429',
164
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
165
+ APIException)
166
+ .local_error_template('404',
167
+ 'HTTP 404 Not Found: {$response.body#/code}',
168
+ APIException)
169
+ .local_error_template('409',
170
+ 'HTTP 409 Conflict: {$response.body#/code}',
171
+ APIException)
172
+ .local_error_template('500',
173
+ 'HTTP 500 Server Error: {$response.body#/code}',
174
+ APIException)
175
+ .local_error_template('503',
176
+ 'HTTP 503 Unavailable: {$response.body#/code}',
177
+ APIException)
178
+ .local_error_template('504',
179
+ 'HTTP 504 Timeout: {$response.body#/code}',
180
+ APIException)
181
+ .local_error_template('default',
182
+ 'HTTP {$statusCode}: {$response.body#/code}',
183
+ APIException))
184
+ .execute
185
+ end
186
+
187
+ # Retrieves the details of an existing transaction token.
188
+ # @param [UUID | String] store_id Required parameter: The unique identifier
189
+ # of the store.
190
+ # @param [UUID | String] id Required parameter: The unique identifier of the
191
+ # resource.
192
+ # @return [ApiResponse] Complete http response with raw body and status code.
193
+ def get_transaction_token(store_id,
194
+ id)
195
+ @api_call
196
+ .request(new_request_builder(HttpMethodEnum::GET,
197
+ '/stores/{storeId}/tokens/{id}',
198
+ Server::DEFAULT)
199
+ .template_param(new_parameter(store_id, key: 'storeId')
200
+ .is_required(true)
201
+ .should_encode(true))
202
+ .template_param(new_parameter(id, key: 'id')
203
+ .is_required(true)
204
+ .should_encode(true))
205
+ .header_param(new_parameter('application/json', key: 'accept'))
206
+ .auth(Single.new('JWT_TOKEN')))
207
+ .response(new_response_handler
208
+ .deserializer(APIHelper.method(:custom_type_deserializer))
209
+ .deserialize_into(TransactionToken.method(:from_hash))
210
+ .is_api_response(true)
211
+ .local_error_template('400',
212
+ 'HTTP 400 Bad Request: {$response.body#/code}',
213
+ ApiErrorException)
214
+ .local_error_template('401',
215
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
216
+ ApiErrorException)
217
+ .local_error_template('403',
218
+ 'HTTP 403 Forbidden: {$response.body#/code}',
219
+ ApiErrorException)
220
+ .local_error_template('404',
221
+ 'HTTP 404 Not Found: {$response.body#/code}',
222
+ ApiErrorException)
223
+ .local_error_template('429',
224
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
225
+ APIException)
226
+ .local_error_template('409',
227
+ 'HTTP 409 Conflict: {$response.body#/code}',
228
+ APIException)
229
+ .local_error_template('500',
230
+ 'HTTP 500 Server Error: {$response.body#/code}',
231
+ APIException)
232
+ .local_error_template('503',
233
+ 'HTTP 503 Unavailable: {$response.body#/code}',
234
+ APIException)
235
+ .local_error_template('504',
236
+ 'HTTP 504 Timeout: {$response.body#/code}',
237
+ APIException)
238
+ .local_error_template('default',
239
+ 'HTTP {$statusCode}: {$response.body#/code}',
240
+ APIException))
241
+ .execute
242
+ end
243
+
244
+ # ⚠️ **LEGACY WARNING: Discouraged Operation**
245
+ # While it is technically possible to update a transaction token, this
246
+ # practice is highly discouraged and is maintained solely for legacy
247
+ # reasons.
248
+ # **Updating raw card details requires your server environment to be fully
249
+ # PCI DSS compliant.**
250
+ # **Recommended Approach:** Instead of updating an existing token, it is
251
+ # best practice to create an entirely new transaction token using Univapay's
252
+ # frontend integrations (**Link Form**, **Widget**, or **Inline Form**).
253
+ # This allows Univapay to securely handle the customer's payment data
254
+ # without it ever touching your servers.
255
+ # --- **Legacy Usage:** Updates CVV, Address, Email, or Card Details.
256
+ # *Note: If updating only the CVV to resolve a
257
+ # `RECURRING_USAGE_REQUIRES_CVV` error, the application token secret is not
258
+ # required.*
259
+ # @param [UUID | String] store_id Required parameter: The unique identifier
260
+ # of the store.
261
+ # @param [UUID | String] id Required parameter: The unique identifier of the
262
+ # resource.
263
+ # @param [String] idempotency_key Optional parameter: An optional
264
+ # idempotency key to prevent double charges and duplicate operations. We
265
+ # recommend a randomly generated UUID (v4).
266
+ # @param [TransactionTokenUpdateRequest] body Optional parameter: Request
267
+ # payload for updating a transaction token.
268
+ # @return [ApiResponse] Complete http response with raw body and status code.
269
+ def update_transaction_token(store_id,
270
+ id,
271
+ idempotency_key: nil,
272
+ body: nil)
273
+ @api_call
274
+ .request(new_request_builder(HttpMethodEnum::PATCH,
275
+ '/stores/{storeId}/tokens/{id}',
276
+ Server::DEFAULT)
277
+ .template_param(new_parameter(store_id, key: 'storeId')
278
+ .is_required(true)
279
+ .should_encode(true))
280
+ .template_param(new_parameter(id, key: 'id')
281
+ .is_required(true)
282
+ .should_encode(true))
283
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
284
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
285
+ .body_param(new_parameter(body))
286
+ .header_param(new_parameter('application/json', key: 'accept'))
287
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
288
+ .auth(Single.new('JWT_TOKEN')))
289
+ .response(new_response_handler
290
+ .deserializer(APIHelper.method(:custom_type_deserializer))
291
+ .deserialize_into(TransactionToken.method(:from_hash))
292
+ .is_api_response(true)
293
+ .local_error_template('400',
294
+ 'HTTP 400 Bad Request: {$response.body#/code}',
295
+ ApiErrorException)
296
+ .local_error_template('401',
297
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
298
+ ApiErrorException)
299
+ .local_error_template('403',
300
+ 'HTTP 403 Forbidden: {$response.body#/code}',
301
+ ApiErrorException)
302
+ .local_error_template('404',
303
+ 'HTTP 404 Not Found: {$response.body#/code}',
304
+ ApiErrorException)
305
+ .local_error_template('429',
306
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
307
+ APIException)
308
+ .local_error_template('409',
309
+ 'HTTP 409 Conflict: {$response.body#/code}',
310
+ APIException)
311
+ .local_error_template('500',
312
+ 'HTTP 500 Server Error: {$response.body#/code}',
313
+ APIException)
314
+ .local_error_template('503',
315
+ 'HTTP 503 Unavailable: {$response.body#/code}',
316
+ APIException)
317
+ .local_error_template('504',
318
+ 'HTTP 504 Timeout: {$response.body#/code}',
319
+ APIException)
320
+ .local_error_template('default',
321
+ 'HTTP {$statusCode}: {$response.body#/code}',
322
+ APIException))
323
+ .execute
324
+ end
325
+
326
+ # Deletes a specific transaction token.
327
+ # ⚠️ **WARNING: Breaks Linked Subscriptions**
328
+ # Please note that deleting a transaction token will immediately prevent any
329
+ # linked recurring charges or subscriptions from being processed. Proceed
330
+ # with caution.
331
+ # @param [UUID | String] store_id Required parameter: The unique identifier
332
+ # of the store.
333
+ # @param [UUID | String] id Required parameter: The unique identifier of the
334
+ # resource.
335
+ # @return [ApiResponse] Complete http response with raw body and status code.
336
+ def delete_transaction_token(store_id,
337
+ id)
338
+ @api_call
339
+ .request(new_request_builder(HttpMethodEnum::DELETE,
340
+ '/stores/{storeId}/tokens/{id}',
341
+ Server::DEFAULT)
342
+ .template_param(new_parameter(store_id, key: 'storeId')
343
+ .is_required(true)
344
+ .should_encode(true))
345
+ .template_param(new_parameter(id, key: 'id')
346
+ .is_required(true)
347
+ .should_encode(true))
348
+ .auth(Single.new('JWT_TOKEN')))
349
+ .response(new_response_handler
350
+ .is_response_void(true)
351
+ .is_api_response(true)
352
+ .local_error_template('400',
353
+ 'HTTP 400 Bad Request: {$response.body#/code}',
354
+ ApiErrorException)
355
+ .local_error_template('401',
356
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
357
+ ApiErrorException)
358
+ .local_error_template('403',
359
+ 'HTTP 403 Forbidden: {$response.body#/code}',
360
+ ApiErrorException)
361
+ .local_error_template('404',
362
+ 'HTTP 404 Not Found: {$response.body#/code}',
363
+ ApiErrorException)
364
+ .local_error_template('429',
365
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
366
+ APIException)
367
+ .local_error_template('409',
368
+ 'HTTP 409 Conflict: {$response.body#/code}',
369
+ APIException)
370
+ .local_error_template('500',
371
+ 'HTTP 500 Server Error: {$response.body#/code}',
372
+ APIException)
373
+ .local_error_template('503',
374
+ 'HTTP 503 Unavailable: {$response.body#/code}',
375
+ APIException)
376
+ .local_error_template('504',
377
+ 'HTTP 504 Timeout: {$response.body#/code}',
378
+ APIException)
379
+ .local_error_template('default',
380
+ 'HTTP {$statusCode}: {$response.body#/code}',
381
+ APIException))
382
+ .execute
383
+ end
384
+
385
+ # Retrieves the information required to execute 3-D Secure authentication
386
+ # when creating a recurring transaction token.
387
+ # **⚠️ Important Notes:** 1. **PCI DSS Compliance:** This endpoint is only
388
+ # available to PCI DSS compliant merchants who are authorized to send raw
389
+ # card data directly via the API to create tokens. 2. **Target Tokens:**
390
+ # This only applies to tokens where `type` is `recurring`. For `one_time` or
391
+ # `subscription` tokens, 3-D Secure is requested during charge creation, not
392
+ # token creation. 3. **Execution Flow:**
393
+ # - After creating the token, poll the token object until
394
+ # `data.three_ds.status` becomes `awaiting`.
395
+ # - Once `awaiting`, use this endpoint to fetch the issuer token details.
396
+ # - Format the returned `payload` according to the `content_type` (e.g.,
397
+ # URL-encoded) and execute an `http_post` request from the consumer's
398
+ # browser to the `issuer_token` URL.
399
+ # @param [UUID | String] store_id Required parameter: The unique identifier
400
+ # of the store.
401
+ # @param [UUID | String] id Required parameter: The unique identifier of the
402
+ # resource.
403
+ # @return [ApiResponse] Complete http response with raw body and status code.
404
+ def get_token_three_ds_issuer_token(store_id,
405
+ id)
406
+ @api_call
407
+ .request(new_request_builder(HttpMethodEnum::GET,
408
+ '/stores/{storeId}/tokens/{id}/three_ds/issuer_token',
409
+ Server::DEFAULT)
410
+ .template_param(new_parameter(store_id, key: 'storeId')
411
+ .is_required(true)
412
+ .should_encode(true))
413
+ .template_param(new_parameter(id, key: 'id')
414
+ .is_required(true)
415
+ .should_encode(true))
416
+ .header_param(new_parameter('application/json', key: 'accept'))
417
+ .auth(Single.new('JWT_TOKEN')))
418
+ .response(new_response_handler
419
+ .deserializer(APIHelper.method(:custom_type_deserializer))
420
+ .deserialize_into(ThreeDsIssuerToken.method(:from_hash))
421
+ .is_api_response(true)
422
+ .local_error_template('400',
423
+ 'HTTP 400 Bad Request: {$response.body#/code}',
424
+ ApiErrorException)
425
+ .local_error_template('401',
426
+ 'HTTP 401 Unauthorized: {$response.body#/code}',
427
+ ApiErrorException)
428
+ .local_error_template('403',
429
+ 'HTTP 403 Forbidden: {$response.body#/code}',
430
+ ApiErrorException)
431
+ .local_error_template('404',
432
+ 'HTTP 404 Not Found: {$response.body#/code}',
433
+ ApiErrorException)
434
+ .local_error_template('429',
435
+ 'HTTP 429 Rate Limited: {$response.body#/code}',
436
+ APIException)
437
+ .local_error_template('409',
438
+ 'HTTP 409 Conflict: {$response.body#/code}',
439
+ APIException)
440
+ .local_error_template('500',
441
+ 'HTTP 500 Server Error: {$response.body#/code}',
442
+ APIException)
443
+ .local_error_template('503',
444
+ 'HTTP 503 Unavailable: {$response.body#/code}',
445
+ APIException)
446
+ .local_error_template('504',
447
+ 'HTTP 504 Timeout: {$response.body#/code}',
448
+ APIException)
449
+ .local_error_template('default',
450
+ 'HTTP {$statusCode}: {$response.body#/code}',
451
+ APIException))
452
+ .execute
453
+ end
454
+ end
455
+ end