velopayments 2.11.73 → 2.14.90.pre.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 (360) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/Makefile +7 -1
  4. data/README.md +82 -26
  5. data/docs/Address.md +5 -5
  6. data/docs/AuthApi.md +65 -0
  7. data/docs/AuthResponse.md +25 -0
  8. data/docs/AutoTopUpConfig.md +21 -0
  9. data/docs/Company.md +3 -1
  10. data/docs/CreateIndividual.md +21 -0
  11. data/docs/CreatePayee.md +3 -25
  12. data/docs/CreatePayeeAddress.md +31 -0
  13. data/docs/CreatePayeesCSVRequest.md +17 -15
  14. data/docs/CreatePayoutRequest.md +1 -1
  15. data/docs/FundingManagerApi.md +180 -10
  16. data/docs/{FundingRequest.md → FundingRequestV1.md} +2 -2
  17. data/docs/{FundingRequest2.md → FundingRequestV2.md} +2 -2
  18. data/docs/FxSummaryV3.md +35 -0
  19. data/docs/{FxSummary.md → FxSummaryV4.md} +7 -7
  20. data/docs/GetFundingsResponseAllOf.md +17 -0
  21. data/docs/GetPaymentsForPayoutResponseV3.md +23 -0
  22. data/docs/GetPaymentsForPayoutResponseV3Page.md +25 -0
  23. data/docs/GetPaymentsForPayoutResponseV3Summary.md +33 -0
  24. data/docs/GetPaymentsForPayoutResponseV4.md +23 -0
  25. data/docs/GetPaymentsForPayoutResponseV4Summary.md +33 -0
  26. data/docs/GetPayoutsResponseV3.md +23 -0
  27. data/docs/GetPayoutsResponseV3Links.md +19 -0
  28. data/docs/GetPayoutsResponseV3Page.md +25 -0
  29. data/docs/GetPayoutsResponseV3Summary.md +25 -0
  30. data/docs/GetPayoutsResponseV4.md +23 -0
  31. data/docs/Individual.md +2 -2
  32. data/docs/{PaymentAuditCurrency.md → InvitationStatus.md} +2 -2
  33. data/docs/ListPaymentsResponse.md +4 -4
  34. data/docs/ListPaymentsResponsePage.md +25 -0
  35. data/docs/ListPaymentsResponseSummary.md +25 -0
  36. data/docs/ListSourceAccountResponse.md +2 -2
  37. data/docs/ListSourceAccountResponseLinks.md +19 -0
  38. data/docs/ListSourceAccountResponsePage.md +25 -0
  39. data/docs/ListSourceAccountResponseV2.md +21 -0
  40. data/docs/ListSourceAccountResponseV2Page.md +25 -0
  41. data/docs/Notifications.md +17 -0
  42. data/docs/PagedPayeeInvitationStatusResponse.md +21 -0
  43. data/docs/Payee.md +1 -3
  44. data/docs/PayeeDelta.md +29 -0
  45. data/docs/PayeeDeltaResponse.md +21 -0
  46. data/docs/PayeeDeltaResponseLinks.md +19 -0
  47. data/docs/PayeeDeltaResponsePage.md +25 -0
  48. data/docs/PayeeInvitationApi.md +68 -5
  49. data/docs/PayeeInvitationStatus.md +1 -1
  50. data/docs/PayeeInvitationStatusResponse.md +21 -0
  51. data/docs/PayeeResponse.md +3 -3
  52. data/docs/{GetPaymentsForPayoutResponseLinks.md → PayeeResponseLinks.md} +2 -2
  53. data/docs/{GetPaymentsForPayoutResponsePage.md → PayeeResponsePage.md} +2 -2
  54. data/docs/{GetPaymentsForPayoutResponseSummary.md → PayeeResponseSummary.md} +2 -2
  55. data/docs/PayeesApi.md +61 -0
  56. data/docs/PaymentAuditCurrencyV3.md +16 -0
  57. data/docs/PaymentAuditCurrencyV4.md +16 -0
  58. data/docs/PaymentAuditServiceApi.md +302 -6
  59. data/docs/PaymentEventResponseV3.md +39 -0
  60. data/docs/{PaymentEventResponse.md → PaymentEventResponseV4.md} +8 -8
  61. data/docs/PaymentInstruction.md +6 -6
  62. data/docs/PaymentResponseV3.md +81 -0
  63. data/docs/{PaymentResponse.md → PaymentResponseV4.md} +5 -5
  64. data/docs/PayorApplicationsApi.md +1 -1
  65. data/docs/PayorBrandingResponse.md +5 -5
  66. data/docs/PayorCreateApiKeyRequest.md +3 -3
  67. data/docs/PayorCreateApiKeyResponse.md +2 -2
  68. data/docs/PayorCreateApplicationRequest.md +2 -2
  69. data/docs/PayorEmailOptOutRequest.md +1 -1
  70. data/docs/PayorFundingBankDetailsUpdate.md +3 -3
  71. data/docs/PayorLinksResponse.md +19 -0
  72. data/docs/PayorLinksResponseLinks.md +23 -0
  73. data/docs/PayorLinksResponsePayors.md +23 -0
  74. data/docs/PayorRef.md +2 -2
  75. data/docs/{Payor.md → PayorV1.md} +15 -15
  76. data/docs/PayorV2.md +49 -0
  77. data/docs/PayorsApi.md +116 -6
  78. data/docs/PayoutHistoryApi.md +81 -2
  79. data/docs/{PayoutStatus.md → PayoutStatusV3.md} +2 -2
  80. data/docs/PayoutStatusV4.md +16 -0
  81. data/docs/PayoutSummaryAuditV3.md +41 -0
  82. data/docs/{PayoutSummaryAudit.md → PayoutSummaryAuditV4.md} +9 -7
  83. data/docs/PayoutSummaryResponse.md +4 -4
  84. data/docs/QuoteFxSummary.md +10 -10
  85. data/docs/RejectedPayment.md +10 -8
  86. data/docs/SetNotificationsRequest.md +17 -0
  87. data/docs/SourceAccount.md +3 -3
  88. data/docs/SourceAccountResponse.md +11 -9
  89. data/docs/SourceAccountResponseV2.md +45 -0
  90. data/docs/SourceAccountSummaryV3.md +21 -0
  91. data/docs/SourceAccountSummaryV4.md +21 -0
  92. data/docs/SubmitPayoutApi.md +2 -2
  93. data/docs/SupportedCountry.md +2 -2
  94. data/lib/velopayments.rb +58 -18
  95. data/lib/velopayments/api/auth_api.rb +88 -0
  96. data/lib/velopayments/api/countries_api.rb +35 -17
  97. data/lib/velopayments/api/currencies_api.rb +19 -10
  98. data/lib/velopayments/api/funding_manager_api.rb +323 -69
  99. data/lib/velopayments/api/get_payout_api.rb +20 -11
  100. data/lib/velopayments/api/instruct_payout_api.rb +21 -11
  101. data/lib/velopayments/api/payee_invitation_api.rb +150 -40
  102. data/lib/velopayments/api/payees_api.rb +130 -26
  103. data/lib/velopayments/api/payment_audit_service_api.rb +481 -55
  104. data/lib/velopayments/api/payor_applications_api.rb +40 -21
  105. data/lib/velopayments/api/payors_api.rb +209 -43
  106. data/lib/velopayments/api/payout_history_api.rb +141 -21
  107. data/lib/velopayments/api/quote_payout_api.rb +20 -11
  108. data/lib/velopayments/api/submit_payout_api.rb +22 -12
  109. data/lib/velopayments/api/withdraw_payout_api.rb +21 -11
  110. data/lib/velopayments/api_client.rb +3 -4
  111. data/lib/velopayments/api_error.rb +2 -2
  112. data/lib/velopayments/configuration.rb +7 -6
  113. data/lib/velopayments/models/address.rb +2 -2
  114. data/lib/velopayments/models/auth_response.rb +242 -0
  115. data/lib/velopayments/models/auto_top_up_config.rb +222 -0
  116. data/lib/velopayments/models/challenge.rb +2 -2
  117. data/lib/velopayments/models/company.rb +39 -6
  118. data/lib/velopayments/models/create_individual.rb +249 -0
  119. data/lib/velopayments/models/create_payee.rb +7 -109
  120. data/lib/velopayments/models/create_payee_address.rb +478 -0
  121. data/lib/velopayments/models/create_payees_csv_request.rb +268 -183
  122. data/lib/velopayments/models/create_payees_csv_response.rb +2 -2
  123. data/lib/velopayments/models/create_payees_request.rb +2 -2
  124. data/lib/velopayments/models/create_payment_channel.rb +9 -15
  125. data/lib/velopayments/models/create_payout_request.rb +2 -2
  126. data/lib/velopayments/models/failed_submission.rb +2 -2
  127. data/lib/velopayments/models/funding_audit.rb +2 -2
  128. data/lib/velopayments/models/funding_event.rb +2 -2
  129. data/lib/velopayments/models/funding_event_type.rb +2 -2
  130. data/lib/velopayments/models/{funding_request.rb → funding_request_v1.rb} +5 -5
  131. data/lib/velopayments/models/{funding_request2.rb → funding_request_v2.rb} +5 -5
  132. data/lib/velopayments/models/{fx_summary.rb → fx_summary_v3.rb} +7 -7
  133. data/lib/velopayments/models/fx_summary_v4.rb +363 -0
  134. data/lib/velopayments/models/get_fundings_response.rb +3 -2
  135. data/lib/velopayments/models/get_fundings_response_all_of.rb +196 -0
  136. data/lib/velopayments/models/get_payments_for_payout_response_v3.rb +228 -0
  137. data/lib/velopayments/models/get_payments_for_payout_response_v3_page.rb +232 -0
  138. data/lib/velopayments/models/get_payments_for_payout_response_v3_summary.rb +311 -0
  139. data/lib/velopayments/models/{get_payments_for_payout_response.rb → get_payments_for_payout_response_v4.rb} +9 -9
  140. data/lib/velopayments/models/get_payments_for_payout_response_v4_summary.rb +311 -0
  141. data/lib/velopayments/models/get_payout_statistics.rb +2 -2
  142. data/lib/velopayments/models/{get_payouts_response.rb → get_payouts_response_v3.rb} +9 -9
  143. data/lib/velopayments/models/{get_payments_for_payout_response_links.rb → get_payouts_response_v3_links.rb} +5 -5
  144. data/lib/velopayments/models/{get_payments_for_payout_response_page.rb → get_payouts_response_v3_page.rb} +5 -5
  145. data/lib/velopayments/models/{get_payments_for_payout_response_summary.rb → get_payouts_response_v3_summary.rb} +5 -5
  146. data/lib/velopayments/models/get_payouts_response_v4.rb +228 -0
  147. data/lib/velopayments/models/individual.rb +6 -4
  148. data/lib/velopayments/models/individual_name.rb +2 -2
  149. data/lib/velopayments/models/invitation_status.rb +37 -0
  150. data/lib/velopayments/models/invitation_status_response.rb +2 -2
  151. data/lib/velopayments/models/invite_payee_request.rb +2 -2
  152. data/lib/velopayments/models/language.rb +2 -2
  153. data/lib/velopayments/models/list_payments_response.rb +6 -6
  154. data/lib/velopayments/models/list_payments_response_page.rb +232 -0
  155. data/lib/velopayments/models/list_payments_response_summary.rb +232 -0
  156. data/lib/velopayments/models/list_source_account_response.rb +4 -4
  157. data/lib/velopayments/models/{social.rb → list_source_account_response_links.rb} +18 -27
  158. data/lib/velopayments/models/list_source_account_response_page.rb +232 -0
  159. data/lib/velopayments/models/list_source_account_response_v2.rb +219 -0
  160. data/lib/velopayments/models/list_source_account_response_v2_page.rb +232 -0
  161. data/lib/velopayments/models/marketing_opt_in.rb +2 -2
  162. data/lib/velopayments/models/notifications.rb +196 -0
  163. data/lib/velopayments/models/ofac_status.rb +2 -2
  164. data/lib/velopayments/models/onboarded_status.rb +2 -2
  165. data/lib/velopayments/models/paged_payee_invitation_status_response.rb +219 -0
  166. data/lib/velopayments/models/paged_response.rb +2 -2
  167. data/lib/velopayments/models/paged_response_page.rb +2 -2
  168. data/lib/velopayments/models/payee.rb +6 -15
  169. data/lib/velopayments/models/payee_delta.rb +288 -0
  170. data/lib/velopayments/models/payee_delta_response.rb +219 -0
  171. data/lib/velopayments/models/payee_delta_response_links.rb +205 -0
  172. data/lib/velopayments/models/payee_delta_response_page.rb +232 -0
  173. data/lib/velopayments/models/payee_invitation_status.rb +2 -2
  174. data/lib/velopayments/models/payee_invitation_status_response.rb +224 -0
  175. data/lib/velopayments/models/payee_response.rb +5 -5
  176. data/lib/velopayments/models/payee_response_links.rb +205 -0
  177. data/lib/velopayments/models/payee_response_page.rb +232 -0
  178. data/lib/velopayments/models/payee_response_summary.rb +232 -0
  179. data/lib/velopayments/models/payee_type.rb +2 -2
  180. data/lib/velopayments/models/{payment_audit_currency.rb → payment_audit_currency_v3.rb} +5 -5
  181. data/lib/velopayments/models/payment_audit_currency_v4.rb +37 -0
  182. data/lib/velopayments/models/payment_channel.rb +2 -2
  183. data/lib/velopayments/models/payment_channel_country.rb +2 -2
  184. data/lib/velopayments/models/payment_channel_rule.rb +2 -2
  185. data/lib/velopayments/models/payment_channel_rules_response.rb +2 -2
  186. data/lib/velopayments/models/{payment_event_response.rb → payment_event_response_v3.rb} +9 -9
  187. data/lib/velopayments/models/payment_event_response_v4.rb +351 -0
  188. data/lib/velopayments/models/payment_instruction.rb +2 -2
  189. data/lib/velopayments/models/{payment_response.rb → payment_response_v3.rb} +8 -8
  190. data/lib/velopayments/models/payment_response_v4.rb +587 -0
  191. data/lib/velopayments/models/payor_branding_response.rb +2 -2
  192. data/lib/velopayments/models/payor_create_api_key_request.rb +2 -2
  193. data/lib/velopayments/models/payor_create_api_key_response.rb +2 -2
  194. data/lib/velopayments/models/payor_create_application_request.rb +2 -2
  195. data/lib/velopayments/models/payor_email_opt_out_request.rb +7 -2
  196. data/lib/velopayments/models/payor_funding_bank_details_update.rb +2 -2
  197. data/lib/velopayments/models/payor_links_response.rb +210 -0
  198. data/lib/velopayments/models/payor_links_response_links.rb +277 -0
  199. data/lib/velopayments/models/payor_links_response_payors.rb +267 -0
  200. data/lib/velopayments/models/payor_logo_request.rb +2 -2
  201. data/lib/velopayments/models/payor_ref.rb +2 -2
  202. data/lib/velopayments/models/{payor.rb → payor_v1.rb} +6 -6
  203. data/lib/velopayments/models/payor_v2.rb +405 -0
  204. data/lib/velopayments/models/{payout_status.rb → payout_status_v3.rb} +5 -5
  205. data/lib/velopayments/models/payout_status_v4.rb +43 -0
  206. data/lib/velopayments/models/{payout_summary_audit.rb → payout_summary_audit_v3.rb} +18 -9
  207. data/lib/velopayments/models/payout_summary_audit_v4.rb +323 -0
  208. data/lib/velopayments/models/payout_summary_response.rb +2 -2
  209. data/lib/velopayments/models/query_batch_response.rb +2 -2
  210. data/lib/velopayments/models/quote_fx_summary.rb +4 -4
  211. data/lib/velopayments/models/quote_response.rb +2 -2
  212. data/lib/velopayments/models/rejected_payment.rb +37 -34
  213. data/lib/velopayments/models/set_notifications_request.rb +230 -0
  214. data/lib/velopayments/models/source_account.rb +2 -2
  215. data/lib/velopayments/models/source_account_response.rb +16 -7
  216. data/lib/velopayments/models/source_account_response_v2.rb +403 -0
  217. data/lib/velopayments/models/{source_account_summary.rb → source_account_summary_v3.rb} +7 -7
  218. data/lib/velopayments/models/source_account_summary_v4.rb +224 -0
  219. data/lib/velopayments/models/supported_countries_response.rb +2 -2
  220. data/lib/velopayments/models/supported_country.rb +36 -2
  221. data/lib/velopayments/models/supported_currency.rb +2 -2
  222. data/lib/velopayments/models/supported_currency_response.rb +2 -2
  223. data/lib/velopayments/version.rb +3 -3
  224. data/oa3-config.json +1 -1
  225. data/spec/api/auth_api_spec.rb +48 -0
  226. data/spec/api/countries_api_spec.rb +2 -2
  227. data/spec/api/currencies_api_spec.rb +2 -2
  228. data/spec/api/funding_manager_api_spec.rb +45 -4
  229. data/spec/api/get_payout_api_spec.rb +2 -2
  230. data/spec/api/instruct_payout_api_spec.rb +2 -2
  231. data/spec/api/payee_invitation_api_spec.rb +20 -4
  232. data/spec/api/payees_api_spec.rb +17 -2
  233. data/spec/api/payment_audit_service_api_spec.rb +91 -5
  234. data/spec/api/payor_applications_api_spec.rb +3 -3
  235. data/spec/api/payors_api_spec.rb +31 -6
  236. data/spec/api/payout_history_api_spec.rb +27 -3
  237. data/spec/api/quote_payout_api_spec.rb +2 -2
  238. data/spec/api/submit_payout_api_spec.rb +3 -3
  239. data/spec/api/withdraw_payout_api_spec.rb +2 -2
  240. data/spec/api_client_spec.rb +2 -2
  241. data/spec/configuration_spec.rb +2 -2
  242. data/spec/models/address_spec.rb +2 -2
  243. data/spec/models/auth_response_spec.rb +65 -0
  244. data/spec/models/{social_spec.rb → auto_top_up_config_spec.rb} +11 -11
  245. data/spec/models/challenge_spec.rb +2 -2
  246. data/spec/models/company_spec.rb +8 -2
  247. data/spec/models/create_individual_spec.rb +53 -0
  248. data/spec/models/create_payee_address_spec.rb +83 -0
  249. data/spec/models/create_payee_spec.rb +2 -68
  250. data/spec/models/create_payees_csv_request_spec.rb +26 -16
  251. data/spec/models/create_payees_csv_response_spec.rb +2 -2
  252. data/spec/models/create_payees_request_spec.rb +2 -2
  253. data/spec/models/create_payment_channel_spec.rb +6 -2
  254. data/spec/models/create_payout_request_spec.rb +2 -2
  255. data/spec/models/failed_submission_spec.rb +2 -2
  256. data/spec/models/funding_audit_spec.rb +2 -2
  257. data/spec/models/funding_event_spec.rb +2 -2
  258. data/spec/models/funding_event_type_spec.rb +2 -2
  259. data/spec/models/{funding_request2_spec.rb → funding_request_v1_spec.rb} +8 -8
  260. data/spec/models/{funding_request_spec.rb → funding_request_v2_spec.rb} +8 -8
  261. data/spec/models/{fx_summary_spec.rb → fx_summary_v3_spec.rb} +8 -8
  262. data/spec/models/fx_summary_v4_spec.rb +103 -0
  263. data/spec/models/get_fundings_response_all_of_spec.rb +41 -0
  264. data/spec/models/get_fundings_response_spec.rb +2 -2
  265. data/spec/models/{get_payments_for_payout_response_page_spec.rb → get_payments_for_payout_response_v3_page_spec.rb} +8 -8
  266. data/spec/models/{get_payments_for_payout_response_spec.rb → get_payments_for_payout_response_v3_spec.rb} +8 -8
  267. data/spec/models/get_payments_for_payout_response_v3_summary_spec.rb +93 -0
  268. data/spec/models/get_payments_for_payout_response_v4_spec.rb +59 -0
  269. data/spec/models/get_payments_for_payout_response_v4_summary_spec.rb +93 -0
  270. data/spec/models/get_payout_statistics_spec.rb +2 -2
  271. data/spec/models/get_payouts_response_v3_links_spec.rb +47 -0
  272. data/spec/models/get_payouts_response_v3_page_spec.rb +65 -0
  273. data/spec/models/{get_payouts_response_spec.rb → get_payouts_response_v3_spec.rb} +8 -8
  274. data/spec/models/{get_payments_for_payout_response_summary_spec.rb → get_payouts_response_v3_summary_spec.rb} +8 -8
  275. data/spec/models/get_payouts_response_v4_spec.rb +59 -0
  276. data/spec/models/individual_name_spec.rb +2 -2
  277. data/spec/models/individual_spec.rb +2 -2
  278. data/spec/models/invitation_status_response_spec.rb +2 -2
  279. data/spec/models/invitation_status_spec.rb +35 -0
  280. data/spec/models/invite_payee_request_spec.rb +2 -2
  281. data/spec/models/language_spec.rb +2 -2
  282. data/spec/models/list_payments_response_page_spec.rb +65 -0
  283. data/spec/models/list_payments_response_spec.rb +2 -2
  284. data/spec/models/list_payments_response_summary_spec.rb +65 -0
  285. data/spec/models/{get_payments_for_payout_response_links_spec.rb → list_source_account_response_links_spec.rb} +8 -8
  286. data/spec/models/list_source_account_response_page_spec.rb +65 -0
  287. data/spec/models/list_source_account_response_spec.rb +2 -2
  288. data/spec/models/list_source_account_response_v2_page_spec.rb +65 -0
  289. data/spec/models/list_source_account_response_v2_spec.rb +53 -0
  290. data/spec/models/marketing_opt_in_spec.rb +2 -2
  291. data/spec/models/notifications_spec.rb +41 -0
  292. data/spec/models/ofac_status_spec.rb +2 -2
  293. data/spec/models/onboarded_status_spec.rb +2 -2
  294. data/spec/models/paged_payee_invitation_status_response_spec.rb +53 -0
  295. data/spec/models/paged_response_page_spec.rb +2 -2
  296. data/spec/models/paged_response_spec.rb +2 -2
  297. data/spec/models/payee_delta_response_links_spec.rb +47 -0
  298. data/spec/models/payee_delta_response_page_spec.rb +65 -0
  299. data/spec/models/payee_delta_response_spec.rb +53 -0
  300. data/spec/models/payee_delta_spec.rb +77 -0
  301. data/spec/models/payee_invitation_status_response_spec.rb +53 -0
  302. data/spec/models/payee_invitation_status_spec.rb +2 -2
  303. data/spec/models/payee_response_links_spec.rb +47 -0
  304. data/spec/models/payee_response_page_spec.rb +65 -0
  305. data/spec/models/payee_response_spec.rb +2 -2
  306. data/spec/models/payee_response_summary_spec.rb +65 -0
  307. data/spec/models/payee_spec.rb +2 -8
  308. data/spec/models/payee_type_spec.rb +2 -2
  309. data/spec/models/{payment_audit_currency_spec.rb → payment_audit_currency_v3_spec.rb} +8 -8
  310. data/spec/models/payment_audit_currency_v4_spec.rb +35 -0
  311. data/spec/models/payment_channel_country_spec.rb +2 -2
  312. data/spec/models/payment_channel_rule_spec.rb +2 -2
  313. data/spec/models/payment_channel_rules_response_spec.rb +2 -2
  314. data/spec/models/payment_channel_spec.rb +2 -2
  315. data/spec/models/{payment_event_response_spec.rb → payment_event_response_v3_spec.rb} +8 -8
  316. data/spec/models/payment_event_response_v4_spec.rb +111 -0
  317. data/spec/models/payment_instruction_spec.rb +2 -2
  318. data/spec/models/{payment_response_spec.rb → payment_response_v3_spec.rb} +8 -8
  319. data/spec/models/payment_response_v4_spec.rb +241 -0
  320. data/spec/models/payor_branding_response_spec.rb +2 -2
  321. data/spec/models/payor_create_api_key_request_spec.rb +2 -2
  322. data/spec/models/payor_create_api_key_response_spec.rb +2 -2
  323. data/spec/models/payor_create_application_request_spec.rb +2 -2
  324. data/spec/models/payor_email_opt_out_request_spec.rb +2 -2
  325. data/spec/models/payor_funding_bank_details_update_spec.rb +2 -2
  326. data/spec/models/payor_links_response_links_spec.rb +63 -0
  327. data/spec/models/payor_links_response_payors_spec.rb +63 -0
  328. data/spec/models/payor_links_response_spec.rb +47 -0
  329. data/spec/models/payor_logo_request_spec.rb +2 -2
  330. data/spec/models/payor_ref_spec.rb +2 -2
  331. data/spec/models/{payor_spec.rb → payor_v1_spec.rb} +8 -8
  332. data/spec/models/payor_v2_spec.rb +145 -0
  333. data/spec/models/{payout_status_spec.rb → payout_status_v3_spec.rb} +8 -8
  334. data/spec/models/payout_status_v4_spec.rb +35 -0
  335. data/spec/models/{payout_summary_audit_spec.rb → payout_summary_audit_v3_spec.rb} +14 -8
  336. data/spec/models/payout_summary_audit_v4_spec.rb +113 -0
  337. data/spec/models/payout_summary_response_spec.rb +2 -2
  338. data/spec/models/query_batch_response_spec.rb +2 -2
  339. data/spec/models/quote_fx_summary_spec.rb +2 -2
  340. data/spec/models/quote_response_spec.rb +2 -2
  341. data/spec/models/rejected_payment_spec.rb +8 -6
  342. data/spec/models/set_notifications_request_spec.rb +41 -0
  343. data/spec/models/source_account_response_spec.rb +8 -2
  344. data/spec/models/source_account_response_v2_spec.rb +129 -0
  345. data/spec/models/source_account_spec.rb +2 -2
  346. data/spec/models/{source_account_summary_spec.rb → source_account_summary_v3_spec.rb} +8 -8
  347. data/spec/models/source_account_summary_v4_spec.rb +53 -0
  348. data/spec/models/supported_countries_response_spec.rb +2 -2
  349. data/spec/models/supported_country_spec.rb +10 -2
  350. data/spec/models/supported_currency_response_spec.rb +2 -2
  351. data/spec/models/supported_currency_spec.rb +2 -2
  352. data/spec/spec_helper.rb +2 -2
  353. data/velopayments-2.11.73.gem +0 -0
  354. data/velopayments-2.14.90.gem +0 -0
  355. data/velopayments.gemspec +2 -2
  356. metadata +230 -68
  357. data/docs/GetPaymentsForPayoutResponse.md +0 -23
  358. data/docs/GetPayoutsResponse.md +0 -23
  359. data/docs/Social.md +0 -21
  360. data/docs/SourceAccountSummary.md +0 -21
@@ -0,0 +1,267 @@
1
+ =begin
2
+ #Velo Payments APIs
3
+
4
+ ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
+
6
+ The version of the OpenAPI document: 2.14.92
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module VeloPayments
16
+ class PayorLinksResponsePayors
17
+ attr_accessor :payor_id
18
+
19
+ attr_accessor :payor_name
20
+
21
+ attr_accessor :primary_contact_email
22
+
23
+ attr_accessor :kyc_state
24
+
25
+ class EnumAttributeValidator
26
+ attr_reader :datatype
27
+ attr_reader :allowable_values
28
+
29
+ def initialize(datatype, allowable_values)
30
+ @allowable_values = allowable_values.map do |value|
31
+ case datatype.to_s
32
+ when /Integer/i
33
+ value.to_i
34
+ when /Float/i
35
+ value.to_f
36
+ else
37
+ value
38
+ end
39
+ end
40
+ end
41
+
42
+ def valid?(value)
43
+ !value || allowable_values.include?(value)
44
+ end
45
+ end
46
+
47
+ # Attribute mapping from ruby-style variable name to JSON key.
48
+ def self.attribute_map
49
+ {
50
+ :'payor_id' => :'payorId',
51
+ :'payor_name' => :'payorName',
52
+ :'primary_contact_email' => :'primaryContactEmail',
53
+ :'kyc_state' => :'kycState'
54
+ }
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.openapi_types
59
+ {
60
+ :'payor_id' => :'String',
61
+ :'payor_name' => :'String',
62
+ :'primary_contact_email' => :'String',
63
+ :'kyc_state' => :'String'
64
+ }
65
+ end
66
+
67
+ # Initializes the object
68
+ # @param [Hash] attributes Model attributes in the form of hash
69
+ def initialize(attributes = {})
70
+ if (!attributes.is_a?(Hash))
71
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::PayorLinksResponsePayors` initialize method"
72
+ end
73
+
74
+ # check to see if the attribute exists and convert string to symbol for hash key
75
+ attributes = attributes.each_with_object({}) { |(k, v), h|
76
+ if (!self.class.attribute_map.key?(k.to_sym))
77
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::PayorLinksResponsePayors`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
78
+ end
79
+ h[k.to_sym] = v
80
+ }
81
+
82
+ if attributes.key?(:'payor_id')
83
+ self.payor_id = attributes[:'payor_id']
84
+ end
85
+
86
+ if attributes.key?(:'payor_name')
87
+ self.payor_name = attributes[:'payor_name']
88
+ end
89
+
90
+ if attributes.key?(:'primary_contact_email')
91
+ self.primary_contact_email = attributes[:'primary_contact_email']
92
+ end
93
+
94
+ if attributes.key?(:'kyc_state')
95
+ self.kyc_state = attributes[:'kyc_state']
96
+ end
97
+ end
98
+
99
+ # Show invalid properties with the reasons. Usually used together with valid?
100
+ # @return Array for valid properties with the reasons
101
+ def list_invalid_properties
102
+ invalid_properties = Array.new
103
+ if @payor_id.nil?
104
+ invalid_properties.push('invalid value for "payor_id", payor_id cannot be nil.')
105
+ end
106
+
107
+ if @payor_name.nil?
108
+ invalid_properties.push('invalid value for "payor_name", payor_name cannot be nil.')
109
+ end
110
+
111
+ invalid_properties
112
+ end
113
+
114
+ # Check to see if the all the properties in the model are valid
115
+ # @return true if the model is valid
116
+ def valid?
117
+ return false if @payor_id.nil?
118
+ return false if @payor_name.nil?
119
+ kyc_state_validator = EnumAttributeValidator.new('String', ["FAILED_KYC", "PASSED_KYC", "REQUIRES_KYC"])
120
+ return false unless kyc_state_validator.valid?(@kyc_state)
121
+ true
122
+ end
123
+
124
+ # Custom attribute writer method checking allowed values (enum).
125
+ # @param [Object] kyc_state Object to be assigned
126
+ def kyc_state=(kyc_state)
127
+ validator = EnumAttributeValidator.new('String', ["FAILED_KYC", "PASSED_KYC", "REQUIRES_KYC"])
128
+ unless validator.valid?(kyc_state)
129
+ fail ArgumentError, "invalid value for \"kyc_state\", must be one of #{validator.allowable_values}."
130
+ end
131
+ @kyc_state = kyc_state
132
+ end
133
+
134
+ # Checks equality by comparing each attribute.
135
+ # @param [Object] Object to be compared
136
+ def ==(o)
137
+ return true if self.equal?(o)
138
+ self.class == o.class &&
139
+ payor_id == o.payor_id &&
140
+ payor_name == o.payor_name &&
141
+ primary_contact_email == o.primary_contact_email &&
142
+ kyc_state == o.kyc_state
143
+ end
144
+
145
+ # @see the `==` method
146
+ # @param [Object] Object to be compared
147
+ def eql?(o)
148
+ self == o
149
+ end
150
+
151
+ # Calculates hash code according to all attributes.
152
+ # @return [Integer] Hash code
153
+ def hash
154
+ [payor_id, payor_name, primary_contact_email, kyc_state].hash
155
+ end
156
+
157
+ # Builds the object from hash
158
+ # @param [Hash] attributes Model attributes in the form of hash
159
+ # @return [Object] Returns the model itself
160
+ def self.build_from_hash(attributes)
161
+ new.build_from_hash(attributes)
162
+ end
163
+
164
+ # Builds the object from hash
165
+ # @param [Hash] attributes Model attributes in the form of hash
166
+ # @return [Object] Returns the model itself
167
+ def build_from_hash(attributes)
168
+ return nil unless attributes.is_a?(Hash)
169
+ self.class.openapi_types.each_pair do |key, type|
170
+ if type =~ /\AArray<(.*)>/i
171
+ # check to ensure the input is an array given that the attribute
172
+ # is documented as an array but the input is not
173
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
174
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
175
+ end
176
+ elsif !attributes[self.class.attribute_map[key]].nil?
177
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
178
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
179
+ end
180
+
181
+ self
182
+ end
183
+
184
+ # Deserializes the data based on type
185
+ # @param string type Data type
186
+ # @param string value Value to be deserialized
187
+ # @return [Object] Deserialized data
188
+ def _deserialize(type, value)
189
+ case type.to_sym
190
+ when :DateTime
191
+ DateTime.parse(value)
192
+ when :Date
193
+ Date.parse(value)
194
+ when :String
195
+ value.to_s
196
+ when :Integer
197
+ value.to_i
198
+ when :Float
199
+ value.to_f
200
+ when :Boolean
201
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
202
+ true
203
+ else
204
+ false
205
+ end
206
+ when :Object
207
+ # generic object (usually a Hash), return directly
208
+ value
209
+ when /\AArray<(?<inner_type>.+)>\z/
210
+ inner_type = Regexp.last_match[:inner_type]
211
+ value.map { |v| _deserialize(inner_type, v) }
212
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
213
+ k_type = Regexp.last_match[:k_type]
214
+ v_type = Regexp.last_match[:v_type]
215
+ {}.tap do |hash|
216
+ value.each do |k, v|
217
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
218
+ end
219
+ end
220
+ else # model
221
+ VeloPayments.const_get(type).build_from_hash(value)
222
+ end
223
+ end
224
+
225
+ # Returns the string representation of the object
226
+ # @return [String] String presentation of the object
227
+ def to_s
228
+ to_hash.to_s
229
+ end
230
+
231
+ # to_body is an alias to to_hash (backward compatibility)
232
+ # @return [Hash] Returns the object in the form of hash
233
+ def to_body
234
+ to_hash
235
+ end
236
+
237
+ # Returns the object in the form of hash
238
+ # @return [Hash] Returns the object in the form of hash
239
+ def to_hash
240
+ hash = {}
241
+ self.class.attribute_map.each_pair do |attr, param|
242
+ value = self.send(attr)
243
+ next if value.nil?
244
+ hash[param] = _to_hash(value)
245
+ end
246
+ hash
247
+ end
248
+
249
+ # Outputs non-array value in the form of hash
250
+ # For object, use to_hash. Otherwise, just return the value
251
+ # @param [Object] value Any valid value
252
+ # @return [Hash] Returns the value in the form of hash
253
+ def _to_hash(value)
254
+ if value.is_a?(Array)
255
+ value.compact.map { |v| _to_hash(v) }
256
+ elsif value.is_a?(Hash)
257
+ {}.tap do |hash|
258
+ value.each { |k, v| hash[k] = _to_hash(v) }
259
+ end
260
+ elsif value.respond_to? :to_hash
261
+ value.to_hash
262
+ else
263
+ value
264
+ end
265
+ end
266
+ end
267
+ end
@@ -3,10 +3,10 @@
3
3
 
4
4
  ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
5
 
6
- OpenAPI spec version: 2.11.73
6
+ The version of the OpenAPI document: 2.14.92
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-SNAPSHOT
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -3,10 +3,10 @@
3
3
 
4
4
  ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
5
 
6
- OpenAPI spec version: 2.11.73
6
+ The version of the OpenAPI document: 2.14.92
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-SNAPSHOT
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -3,17 +3,17 @@
3
3
 
4
4
  ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
5
 
6
- OpenAPI spec version: 2.11.73
6
+ The version of the OpenAPI document: 2.14.92
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-SNAPSHOT
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
14
 
15
15
  module VeloPayments
16
- class Payor
16
+ class PayorV1
17
17
  attr_accessor :payor_id
18
18
 
19
19
  # The name of the payor.
@@ -54,7 +54,7 @@ module VeloPayments
54
54
  # How the payor has chosen to refer to payees.
55
55
  attr_accessor :collective_alias
56
56
 
57
- # The payor’s support contact address.
57
+ # The payor’s support contact email address.
58
58
  attr_accessor :support_contact
59
59
 
60
60
  # The payor’s 'Doing Business As' name.
@@ -149,13 +149,13 @@ module VeloPayments
149
149
  # @param [Hash] attributes Model attributes in the form of hash
150
150
  def initialize(attributes = {})
151
151
  if (!attributes.is_a?(Hash))
152
- fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::Payor` initialize method"
152
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::PayorV1` initialize method"
153
153
  end
154
154
 
155
155
  # check to see if the attribute exists and convert string to symbol for hash key
156
156
  attributes = attributes.each_with_object({}) { |(k, v), h|
157
157
  if (!self.class.attribute_map.key?(k.to_sym))
158
- fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::Payor`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
158
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::PayorV1`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
159
159
  end
160
160
  h[k.to_sym] = v
161
161
  }
@@ -0,0 +1,405 @@
1
+ =begin
2
+ #Velo Payments APIs
3
+
4
+ ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
+
6
+ The version of the OpenAPI document: 2.14.92
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module VeloPayments
16
+ class PayorV2
17
+ attr_accessor :payor_id
18
+
19
+ # The name of the payor.
20
+ attr_accessor :payor_name
21
+
22
+ attr_accessor :address
23
+
24
+ # Name of primary contact for the payor.
25
+ attr_accessor :primary_contact_name
26
+
27
+ # Primary contact phone number for the payor.
28
+ attr_accessor :primary_contact_phone
29
+
30
+ # Primary contact email for the payor.
31
+ attr_accessor :primary_contact_email
32
+
33
+ # The kyc state of the payor.
34
+ attr_accessor :kyc_state
35
+
36
+ # Whether or not the payor has been manually locked by the backoffice.
37
+ attr_accessor :manual_lockout
38
+
39
+ # Whether grace period processing is enabled.
40
+ attr_accessor :payee_grace_period_processing_enabled
41
+
42
+ # The grace period for paying payees in days.
43
+ attr_accessor :payee_grace_period_days
44
+
45
+ # How the payor has chosen to refer to payees.
46
+ attr_accessor :collective_alias
47
+
48
+ # The payor’s support contact email address.
49
+ attr_accessor :support_contact
50
+
51
+ # The payor’s 'Doing Business As' name.
52
+ attr_accessor :dba_name
53
+
54
+ # Whether or not the payor allows language choice in the UI.
55
+ attr_accessor :allows_language_choice
56
+
57
+ # Whether or not the payor has opted-out of reminder emails being sent.
58
+ attr_accessor :reminder_emails_opt_out
59
+
60
+ # The payor’s language preference. Must be one of [EN, FR].
61
+ attr_accessor :language
62
+
63
+ attr_accessor :includes_reports
64
+
65
+ class EnumAttributeValidator
66
+ attr_reader :datatype
67
+ attr_reader :allowable_values
68
+
69
+ def initialize(datatype, allowable_values)
70
+ @allowable_values = allowable_values.map do |value|
71
+ case datatype.to_s
72
+ when /Integer/i
73
+ value.to_i
74
+ when /Float/i
75
+ value.to_f
76
+ else
77
+ value
78
+ end
79
+ end
80
+ end
81
+
82
+ def valid?(value)
83
+ !value || allowable_values.include?(value)
84
+ end
85
+ end
86
+
87
+ # Attribute mapping from ruby-style variable name to JSON key.
88
+ def self.attribute_map
89
+ {
90
+ :'payor_id' => :'payorId',
91
+ :'payor_name' => :'payorName',
92
+ :'address' => :'address',
93
+ :'primary_contact_name' => :'primaryContactName',
94
+ :'primary_contact_phone' => :'primaryContactPhone',
95
+ :'primary_contact_email' => :'primaryContactEmail',
96
+ :'kyc_state' => :'kycState',
97
+ :'manual_lockout' => :'manualLockout',
98
+ :'payee_grace_period_processing_enabled' => :'payeeGracePeriodProcessingEnabled',
99
+ :'payee_grace_period_days' => :'payeeGracePeriodDays',
100
+ :'collective_alias' => :'collectiveAlias',
101
+ :'support_contact' => :'supportContact',
102
+ :'dba_name' => :'dbaName',
103
+ :'allows_language_choice' => :'allowsLanguageChoice',
104
+ :'reminder_emails_opt_out' => :'reminderEmailsOptOut',
105
+ :'language' => :'language',
106
+ :'includes_reports' => :'includesReports'
107
+ }
108
+ end
109
+
110
+ # Attribute type mapping.
111
+ def self.openapi_types
112
+ {
113
+ :'payor_id' => :'String',
114
+ :'payor_name' => :'String',
115
+ :'address' => :'Address',
116
+ :'primary_contact_name' => :'String',
117
+ :'primary_contact_phone' => :'String',
118
+ :'primary_contact_email' => :'String',
119
+ :'kyc_state' => :'String',
120
+ :'manual_lockout' => :'Boolean',
121
+ :'payee_grace_period_processing_enabled' => :'Boolean',
122
+ :'payee_grace_period_days' => :'Integer',
123
+ :'collective_alias' => :'String',
124
+ :'support_contact' => :'String',
125
+ :'dba_name' => :'String',
126
+ :'allows_language_choice' => :'Boolean',
127
+ :'reminder_emails_opt_out' => :'Boolean',
128
+ :'language' => :'String',
129
+ :'includes_reports' => :'Boolean'
130
+ }
131
+ end
132
+
133
+ # Initializes the object
134
+ # @param [Hash] attributes Model attributes in the form of hash
135
+ def initialize(attributes = {})
136
+ if (!attributes.is_a?(Hash))
137
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::PayorV2` initialize method"
138
+ end
139
+
140
+ # check to see if the attribute exists and convert string to symbol for hash key
141
+ attributes = attributes.each_with_object({}) { |(k, v), h|
142
+ if (!self.class.attribute_map.key?(k.to_sym))
143
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::PayorV2`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
144
+ end
145
+ h[k.to_sym] = v
146
+ }
147
+
148
+ if attributes.key?(:'payor_id')
149
+ self.payor_id = attributes[:'payor_id']
150
+ end
151
+
152
+ if attributes.key?(:'payor_name')
153
+ self.payor_name = attributes[:'payor_name']
154
+ end
155
+
156
+ if attributes.key?(:'address')
157
+ self.address = attributes[:'address']
158
+ end
159
+
160
+ if attributes.key?(:'primary_contact_name')
161
+ self.primary_contact_name = attributes[:'primary_contact_name']
162
+ end
163
+
164
+ if attributes.key?(:'primary_contact_phone')
165
+ self.primary_contact_phone = attributes[:'primary_contact_phone']
166
+ end
167
+
168
+ if attributes.key?(:'primary_contact_email')
169
+ self.primary_contact_email = attributes[:'primary_contact_email']
170
+ end
171
+
172
+ if attributes.key?(:'kyc_state')
173
+ self.kyc_state = attributes[:'kyc_state']
174
+ end
175
+
176
+ if attributes.key?(:'manual_lockout')
177
+ self.manual_lockout = attributes[:'manual_lockout']
178
+ end
179
+
180
+ if attributes.key?(:'payee_grace_period_processing_enabled')
181
+ self.payee_grace_period_processing_enabled = attributes[:'payee_grace_period_processing_enabled']
182
+ end
183
+
184
+ if attributes.key?(:'payee_grace_period_days')
185
+ self.payee_grace_period_days = attributes[:'payee_grace_period_days']
186
+ end
187
+
188
+ if attributes.key?(:'collective_alias')
189
+ self.collective_alias = attributes[:'collective_alias']
190
+ end
191
+
192
+ if attributes.key?(:'support_contact')
193
+ self.support_contact = attributes[:'support_contact']
194
+ end
195
+
196
+ if attributes.key?(:'dba_name')
197
+ self.dba_name = attributes[:'dba_name']
198
+ end
199
+
200
+ if attributes.key?(:'allows_language_choice')
201
+ self.allows_language_choice = attributes[:'allows_language_choice']
202
+ end
203
+
204
+ if attributes.key?(:'reminder_emails_opt_out')
205
+ self.reminder_emails_opt_out = attributes[:'reminder_emails_opt_out']
206
+ end
207
+
208
+ if attributes.key?(:'language')
209
+ self.language = attributes[:'language']
210
+ end
211
+
212
+ if attributes.key?(:'includes_reports')
213
+ self.includes_reports = attributes[:'includes_reports']
214
+ end
215
+ end
216
+
217
+ # Show invalid properties with the reasons. Usually used together with valid?
218
+ # @return Array for valid properties with the reasons
219
+ def list_invalid_properties
220
+ invalid_properties = Array.new
221
+ if @payor_name.nil?
222
+ invalid_properties.push('invalid value for "payor_name", payor_name cannot be nil.')
223
+ end
224
+
225
+ invalid_properties
226
+ end
227
+
228
+ # Check to see if the all the properties in the model are valid
229
+ # @return true if the model is valid
230
+ def valid?
231
+ return false if @payor_name.nil?
232
+ kyc_state_validator = EnumAttributeValidator.new('String', ["FAILED_KYC", "PASSED_KYC", "REQUIRES_KYC"])
233
+ return false unless kyc_state_validator.valid?(@kyc_state)
234
+ language_validator = EnumAttributeValidator.new('String', ["EN", "FR"])
235
+ return false unless language_validator.valid?(@language)
236
+ true
237
+ end
238
+
239
+ # Custom attribute writer method checking allowed values (enum).
240
+ # @param [Object] kyc_state Object to be assigned
241
+ def kyc_state=(kyc_state)
242
+ validator = EnumAttributeValidator.new('String', ["FAILED_KYC", "PASSED_KYC", "REQUIRES_KYC"])
243
+ unless validator.valid?(kyc_state)
244
+ fail ArgumentError, "invalid value for \"kyc_state\", must be one of #{validator.allowable_values}."
245
+ end
246
+ @kyc_state = kyc_state
247
+ end
248
+
249
+ # Custom attribute writer method checking allowed values (enum).
250
+ # @param [Object] language Object to be assigned
251
+ def language=(language)
252
+ validator = EnumAttributeValidator.new('String', ["EN", "FR"])
253
+ unless validator.valid?(language)
254
+ fail ArgumentError, "invalid value for \"language\", must be one of #{validator.allowable_values}."
255
+ end
256
+ @language = language
257
+ end
258
+
259
+ # Checks equality by comparing each attribute.
260
+ # @param [Object] Object to be compared
261
+ def ==(o)
262
+ return true if self.equal?(o)
263
+ self.class == o.class &&
264
+ payor_id == o.payor_id &&
265
+ payor_name == o.payor_name &&
266
+ address == o.address &&
267
+ primary_contact_name == o.primary_contact_name &&
268
+ primary_contact_phone == o.primary_contact_phone &&
269
+ primary_contact_email == o.primary_contact_email &&
270
+ kyc_state == o.kyc_state &&
271
+ manual_lockout == o.manual_lockout &&
272
+ payee_grace_period_processing_enabled == o.payee_grace_period_processing_enabled &&
273
+ payee_grace_period_days == o.payee_grace_period_days &&
274
+ collective_alias == o.collective_alias &&
275
+ support_contact == o.support_contact &&
276
+ dba_name == o.dba_name &&
277
+ allows_language_choice == o.allows_language_choice &&
278
+ reminder_emails_opt_out == o.reminder_emails_opt_out &&
279
+ language == o.language &&
280
+ includes_reports == o.includes_reports
281
+ end
282
+
283
+ # @see the `==` method
284
+ # @param [Object] Object to be compared
285
+ def eql?(o)
286
+ self == o
287
+ end
288
+
289
+ # Calculates hash code according to all attributes.
290
+ # @return [Integer] Hash code
291
+ def hash
292
+ [payor_id, payor_name, address, primary_contact_name, primary_contact_phone, primary_contact_email, kyc_state, manual_lockout, payee_grace_period_processing_enabled, payee_grace_period_days, collective_alias, support_contact, dba_name, allows_language_choice, reminder_emails_opt_out, language, includes_reports].hash
293
+ end
294
+
295
+ # Builds the object from hash
296
+ # @param [Hash] attributes Model attributes in the form of hash
297
+ # @return [Object] Returns the model itself
298
+ def self.build_from_hash(attributes)
299
+ new.build_from_hash(attributes)
300
+ end
301
+
302
+ # Builds the object from hash
303
+ # @param [Hash] attributes Model attributes in the form of hash
304
+ # @return [Object] Returns the model itself
305
+ def build_from_hash(attributes)
306
+ return nil unless attributes.is_a?(Hash)
307
+ self.class.openapi_types.each_pair do |key, type|
308
+ if type =~ /\AArray<(.*)>/i
309
+ # check to ensure the input is an array given that the attribute
310
+ # is documented as an array but the input is not
311
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
312
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
313
+ end
314
+ elsif !attributes[self.class.attribute_map[key]].nil?
315
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
316
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
317
+ end
318
+
319
+ self
320
+ end
321
+
322
+ # Deserializes the data based on type
323
+ # @param string type Data type
324
+ # @param string value Value to be deserialized
325
+ # @return [Object] Deserialized data
326
+ def _deserialize(type, value)
327
+ case type.to_sym
328
+ when :DateTime
329
+ DateTime.parse(value)
330
+ when :Date
331
+ Date.parse(value)
332
+ when :String
333
+ value.to_s
334
+ when :Integer
335
+ value.to_i
336
+ when :Float
337
+ value.to_f
338
+ when :Boolean
339
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
340
+ true
341
+ else
342
+ false
343
+ end
344
+ when :Object
345
+ # generic object (usually a Hash), return directly
346
+ value
347
+ when /\AArray<(?<inner_type>.+)>\z/
348
+ inner_type = Regexp.last_match[:inner_type]
349
+ value.map { |v| _deserialize(inner_type, v) }
350
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
351
+ k_type = Regexp.last_match[:k_type]
352
+ v_type = Regexp.last_match[:v_type]
353
+ {}.tap do |hash|
354
+ value.each do |k, v|
355
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
356
+ end
357
+ end
358
+ else # model
359
+ VeloPayments.const_get(type).build_from_hash(value)
360
+ end
361
+ end
362
+
363
+ # Returns the string representation of the object
364
+ # @return [String] String presentation of the object
365
+ def to_s
366
+ to_hash.to_s
367
+ end
368
+
369
+ # to_body is an alias to to_hash (backward compatibility)
370
+ # @return [Hash] Returns the object in the form of hash
371
+ def to_body
372
+ to_hash
373
+ end
374
+
375
+ # Returns the object in the form of hash
376
+ # @return [Hash] Returns the object in the form of hash
377
+ def to_hash
378
+ hash = {}
379
+ self.class.attribute_map.each_pair do |attr, param|
380
+ value = self.send(attr)
381
+ next if value.nil?
382
+ hash[param] = _to_hash(value)
383
+ end
384
+ hash
385
+ end
386
+
387
+ # Outputs non-array value in the form of hash
388
+ # For object, use to_hash. Otherwise, just return the value
389
+ # @param [Object] value Any valid value
390
+ # @return [Hash] Returns the value in the form of hash
391
+ def _to_hash(value)
392
+ if value.is_a?(Array)
393
+ value.compact.map { |v| _to_hash(v) }
394
+ elsif value.is_a?(Hash)
395
+ {}.tap do |hash|
396
+ value.each { |k, v| hash[k] = _to_hash(v) }
397
+ end
398
+ elsif value.respond_to? :to_hash
399
+ value.to_hash
400
+ else
401
+ value
402
+ end
403
+ end
404
+ end
405
+ end