moov_ruby 26.4.0.pre.dev.6 → 26.4.0.pre.dev.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/metadata_fields.rb +66 -9
  3. data/lib/crystalline/module.rb +3 -3
  4. data/lib/moov/account_terminal_applications.rb +5 -5
  5. data/lib/moov/accounts.rb +22 -22
  6. data/lib/moov/adjustments.rb +2 -2
  7. data/lib/moov/apple_pay.rb +14 -14
  8. data/lib/moov/authentication.rb +3 -3
  9. data/lib/moov/avatars.rb +2 -2
  10. data/lib/moov/bank_accounts.rb +26 -26
  11. data/lib/moov/branding.rb +5 -5
  12. data/lib/moov/capabilities.rb +6 -6
  13. data/lib/moov/card_issuing.rb +8 -8
  14. data/lib/moov/cards.rb +32 -17
  15. data/lib/moov/client.rb +2 -1
  16. data/lib/moov/disputes.rb +32 -32
  17. data/lib/moov/end_to_end_encryption.rb +2 -2
  18. data/lib/moov/enriched_profile.rb +1 -1
  19. data/lib/moov/fee_plans.rb +12 -12
  20. data/lib/moov/files.rb +5 -5
  21. data/lib/moov/images.rb +10 -10
  22. data/lib/moov/industries.rb +1 -1
  23. data/lib/moov/institutions.rb +7 -7
  24. data/lib/moov/invoices.rb +914 -0
  25. data/lib/moov/issuing_transactions.rb +5 -5
  26. data/lib/moov/models/components/account.rb +5 -5
  27. data/lib/moov/models/components/accountnameverification.rb +4 -4
  28. data/lib/moov/models/components/accountverificationstatus.rb +2 -2
  29. data/lib/moov/models/components/achcreditsamedaypaymentmethod.rb +1 -1
  30. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rb +1 -1
  31. data/lib/moov/models/components/achcreditstandardpaymentmethod.rb +1 -1
  32. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rb +1 -1
  33. data/lib/moov/models/components/achdebitcollectpaymentmethod.rb +1 -1
  34. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rb +1 -1
  35. data/lib/moov/models/components/achdebitfundpaymentmethod.rb +1 -1
  36. data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rb +1 -1
  37. data/lib/moov/models/components/achreturncode.rb +1 -1
  38. data/lib/moov/models/components/achtransactiondetails.rb +10 -10
  39. data/lib/moov/models/components/adjustment.rb +1 -1
  40. data/lib/moov/models/components/adjustmentfees.rb +3 -3
  41. data/lib/moov/models/components/amount.rb +1 -1
  42. data/lib/moov/models/components/amountdecimal.rb +1 -1
  43. data/lib/moov/models/components/amountdecimalupdate.rb +38 -0
  44. data/lib/moov/models/components/amountdecimalupdate.rbi +15 -0
  45. data/lib/moov/models/components/amountupdate.rb +1 -1
  46. data/lib/moov/models/components/applepayheader.rb +1 -1
  47. data/lib/moov/models/components/applepaymerchantdomains.rb +2 -2
  48. data/lib/moov/models/components/applepaypaymentmethod.rb +1 -1
  49. data/lib/moov/models/components/applepayresponse.rb +2 -2
  50. data/lib/moov/models/components/applepaytransferpaymentmethod.rb +1 -1
  51. data/lib/moov/models/components/asynccreatedrefund.rb +1 -1
  52. data/lib/moov/models/components/asynctransfer.rb +1 -1
  53. data/lib/moov/models/components/authtoken.rb +1 -1
  54. data/lib/moov/models/components/authtokenrequest.rb +2 -2
  55. data/lib/moov/models/components/bankaccount.rb +7 -7
  56. data/lib/moov/models/components/bankaccountexception.rb +5 -5
  57. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  58. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  59. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  60. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  61. data/lib/moov/models/components/billablefee.rb +2 -2
  62. data/lib/moov/models/components/billingsummary.rb +6 -6
  63. data/lib/moov/models/components/billingsummary_platformfees.rb +3 -3
  64. data/lib/moov/models/components/billingsummary_volumeamount.rb +3 -3
  65. data/lib/moov/models/components/billingsummarydetails.rb +4 -4
  66. data/lib/moov/models/components/billingsummarydetails_volumeamount.rb +3 -3
  67. data/lib/moov/models/components/businessprofile.rb +2 -2
  68. data/lib/moov/models/components/calltoaction.rb +1 -1
  69. data/lib/moov/models/components/cancellation.rb +2 -2
  70. data/lib/moov/models/components/capability.rb +6 -6
  71. data/lib/moov/models/components/capabilityid.rb +1 -1
  72. data/lib/moov/models/components/card.rb +5 -5
  73. data/lib/moov/models/components/cardaccountupdater.rb +2 -2
  74. data/lib/moov/models/components/cardacquiring.rb +4 -4
  75. data/lib/moov/models/components/cardacquiringdispute.rb +1 -1
  76. data/lib/moov/models/components/cardacquiringrefund.rb +3 -3
  77. data/lib/moov/models/components/cardpaymentpaymentmethod.rb +1 -1
  78. data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rb +1 -1
  79. data/lib/moov/models/components/cardpresentpaymentpaymentmethod.rb +1 -1
  80. data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod.rb +1 -1
  81. data/lib/moov/models/components/cardtransactiondetails.rb +12 -12
  82. data/lib/moov/models/components/cardverification.rb +3 -3
  83. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  84. data/lib/moov/models/components/completedmicrodeposits.rb +1 -1
  85. data/lib/moov/models/components/createaccount.rb +2 -2
  86. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  87. data/lib/moov/models/components/createdtransfer.rb +4 -4
  88. data/lib/moov/models/components/createevidencefilemultipart.rb +1 -1
  89. data/lib/moov/models/components/createevidencetext.rb +1 -1
  90. data/lib/moov/models/components/createinvoice.rb +52 -0
  91. data/lib/moov/models/components/createinvoice.rbi +23 -0
  92. data/lib/moov/models/components/createinvoicelineitem.rb +49 -0
  93. data/lib/moov/models/components/createinvoicelineitem.rbi +21 -0
  94. data/lib/moov/models/components/createinvoicelineitemoption.rb +44 -0
  95. data/lib/moov/models/components/createinvoicelineitemoption.rbi +19 -0
  96. data/lib/moov/models/components/createinvoicelineitemoptionvalidationerror.rb +44 -0
  97. data/lib/moov/models/components/createinvoicelineitemoptionvalidationerror.rbi +19 -0
  98. data/lib/moov/models/components/createinvoicelineitems.rb +32 -0
  99. data/lib/moov/models/components/createinvoicelineitems.rbi +13 -0
  100. data/lib/moov/models/components/createinvoicelineitemsupdate.rb +32 -0
  101. data/lib/moov/models/components/createinvoicelineitemsupdate.rbi +13 -0
  102. data/lib/moov/models/components/createinvoicelineitemsvalidationerror.rb +32 -0
  103. data/lib/moov/models/components/createinvoicelineitemsvalidationerror.rbi +13 -0
  104. data/lib/moov/models/components/createinvoicelineitemvalidationerror.rb +48 -0
  105. data/lib/moov/models/components/createinvoicelineitemvalidationerror.rbi +21 -0
  106. data/lib/moov/models/components/createinvoicepayment.rb +44 -0
  107. data/lib/moov/models/components/createinvoicepayment.rbi +19 -0
  108. data/lib/moov/models/components/createpaymentlink.rb +4 -4
  109. data/lib/moov/models/components/createpaymentlinklineitem.rb +2 -2
  110. data/lib/moov/models/components/createpaymentlinklineitemoption.rb +2 -2
  111. data/lib/moov/models/components/createproductoption.rb +1 -1
  112. data/lib/moov/models/components/createproductoptiongroup.rb +2 -2
  113. data/lib/moov/models/components/createrefund.rb +1 -1
  114. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  115. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  116. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  117. data/lib/moov/models/components/createtransfersourcecard.rb +2 -2
  118. data/lib/moov/models/components/createwebhook.rb +1 -1
  119. data/lib/moov/models/components/dispute.rb +7 -7
  120. data/lib/moov/models/components/disputeevidenceresponse.rb +4 -4
  121. data/lib/moov/models/components/disputestatus.rb +1 -1
  122. data/lib/moov/models/components/document.rb +2 -2
  123. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  124. data/lib/moov/models/components/evidencetextresponse.rb +2 -2
  125. data/lib/moov/models/components/evidenceuploadresponse.rb +2 -2
  126. data/lib/moov/models/components/facilitatorfee.rb +1 -1
  127. data/lib/moov/models/components/feeplan.rb +2 -2
  128. data/lib/moov/models/components/feeplanagreement.rb +3 -3
  129. data/lib/moov/models/components/feeproperties.rb +1 -1
  130. data/lib/moov/models/components/filedetails.rb +4 -4
  131. data/lib/moov/models/components/fileuploadrequestmultipart.rb +1 -1
  132. data/lib/moov/models/components/fulfillment.rb +2 -2
  133. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  134. data/lib/moov/models/components/fullissuedcard.rb +5 -5
  135. data/lib/moov/models/components/granttype.rb +1 -1
  136. data/lib/moov/models/components/imagemetadata.rb +3 -3
  137. data/lib/moov/models/components/incurredfee.rb +1 -1
  138. data/lib/moov/models/components/instantbankcreditpaymentmethod.rb +1 -1
  139. data/lib/moov/models/components/instantbankcredittransferpaymentmethod.rb +1 -1
  140. data/lib/moov/models/components/invoice.rb +116 -0
  141. data/lib/moov/models/components/invoice.rbi +55 -0
  142. data/lib/moov/models/components/invoiceexternalpayment.rb +40 -0
  143. data/lib/moov/models/components/invoiceexternalpayment.rbi +17 -0
  144. data/lib/moov/models/components/invoicelineitem.rb +53 -0
  145. data/lib/moov/models/components/invoicelineitem.rbi +23 -0
  146. data/lib/moov/models/components/invoicelineitemimagemetadata.rb +44 -0
  147. data/lib/moov/models/components/invoicelineitemimagemetadata.rbi +19 -0
  148. data/lib/moov/models/components/invoicelineitemoption.rb +48 -0
  149. data/lib/moov/models/components/invoicelineitemoption.rbi +21 -0
  150. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rb +44 -0
  151. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rbi +19 -0
  152. data/lib/moov/models/components/invoicelineitems.rb +32 -0
  153. data/lib/moov/models/components/invoicelineitems.rbi +13 -0
  154. data/lib/moov/models/components/invoicelineitemsvalidationerror.rb +32 -0
  155. data/lib/moov/models/components/invoicelineitemsvalidationerror.rbi +13 -0
  156. data/lib/moov/models/components/invoicelineitemvalidationerror.rb +48 -0
  157. data/lib/moov/models/components/invoicelineitemvalidationerror.rbi +21 -0
  158. data/lib/moov/models/components/invoicepayment.rb +48 -0
  159. data/lib/moov/models/components/invoicepayment.rbi +21 -0
  160. data/lib/moov/models/components/invoicepaymenttype.rb +19 -0
  161. data/lib/moov/models/components/invoicepaymenttype.rbi +11 -0
  162. data/lib/moov/models/components/invoicetransferpayment.rb +32 -0
  163. data/lib/moov/models/components/invoicetransferpayment.rbi +13 -0
  164. data/lib/moov/models/components/issuedcard.rb +5 -5
  165. data/lib/moov/models/components/issuedcardauthorization.rb +3 -3
  166. data/lib/moov/models/components/issuedcardauthorizationevent.rb +3 -3
  167. data/lib/moov/models/components/issuedcardstate.rb +1 -1
  168. data/lib/moov/models/components/issuedcardtransaction.rb +2 -2
  169. data/lib/moov/models/components/issuingvelocitylimit.rb +1 -1
  170. data/lib/moov/models/components/jsonwebkey.rb +6 -6
  171. data/lib/moov/models/components/linkapplepay.rb +2 -2
  172. data/lib/moov/models/components/linkapplepaymentdata.rb +2 -2
  173. data/lib/moov/models/components/linkapplepaymentmethod.rb +1 -1
  174. data/lib/moov/models/components/linkapplepaytoken.rb +3 -3
  175. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  176. data/lib/moov/models/components/manualtermsofservice.rb +1 -1
  177. data/lib/moov/models/components/manualtermsofserviceupdate.rb +1 -1
  178. data/lib/moov/models/components/minimumcommitment.rb +1 -1
  179. data/lib/moov/models/components/monthlyplatformfee.rb +1 -1
  180. data/lib/moov/models/components/moovfee.rb +1 -1
  181. data/lib/moov/models/components/moovwalletpaymentmethod.rb +1 -1
  182. data/lib/moov/models/components/moovwallettransferpaymentmethod.rb +1 -1
  183. data/lib/moov/models/components/mxauthorizationcode.rb +1 -1
  184. data/lib/moov/models/components/mxpayload.rb +3 -3
  185. data/lib/moov/models/components/occurrence.rb +1 -1
  186. data/lib/moov/models/components/occurrencesresponse.rb +5 -5
  187. data/lib/moov/models/components/onboardinginvite.rb +3 -3
  188. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  189. data/lib/moov/models/components/otherfees.rb +3 -3
  190. data/lib/moov/models/components/partnerpricingagreement.rb +3 -3
  191. data/lib/moov/models/components/patchbusiness.rb +2 -2
  192. data/lib/moov/models/components/patchsweepconfig.rb +1 -1
  193. data/lib/moov/models/components/patchwallet.rb +1 -1
  194. data/lib/moov/models/components/paymentlink.rb +9 -9
  195. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +2 -2
  196. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +2 -2
  197. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +1 -1
  198. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +1 -1
  199. data/lib/moov/models/components/paymentlinktype.rb +1 -0
  200. data/lib/moov/models/components/paymentmethodsbankaccount.rb +5 -5
  201. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  202. data/lib/moov/models/components/paymentmethodswallet.rb +1 -1
  203. data/lib/moov/models/components/payoutrecipient.rb +1 -1
  204. data/lib/moov/models/components/plaidintegration.rb +2 -2
  205. data/lib/moov/models/components/plaidlinkintegration.rb +2 -2
  206. data/lib/moov/models/components/plaidlinkpayload.rb +3 -3
  207. data/lib/moov/models/components/plaidpayload.rb +2 -2
  208. data/lib/moov/models/components/platformfees.rb +2 -2
  209. data/lib/moov/models/components/product.rb +4 -4
  210. data/lib/moov/models/components/productoption.rb +1 -1
  211. data/lib/moov/models/components/productoptiongroup.rb +2 -2
  212. data/lib/moov/models/components/productrequest.rb +1 -1
  213. data/lib/moov/models/components/pullfromcardpaymentmethod.rb +1 -1
  214. data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rb +1 -1
  215. data/lib/moov/models/components/pushtocardpaymentmethod.rb +1 -1
  216. data/lib/moov/models/components/pushtocardtransferpaymentmethod.rb +1 -1
  217. data/lib/moov/models/components/receiptrequest.rb +1 -1
  218. data/lib/moov/models/components/receiptresponse.rb +2 -2
  219. data/lib/moov/models/components/recur.rb +1 -1
  220. data/lib/moov/models/components/recurresponse.rb +1 -1
  221. data/lib/moov/models/components/refundcarddetails.rb +7 -7
  222. data/lib/moov/models/components/representative.rb +3 -3
  223. data/lib/moov/models/components/requestcard.rb +1 -1
  224. data/lib/moov/models/components/requirementerror.rb +2 -2
  225. data/lib/moov/models/components/residual.rb +4 -4
  226. data/lib/moov/models/components/revoketokenrequest.rb +1 -1
  227. data/lib/moov/models/components/rtpcreditpaymentmethod.rb +1 -1
  228. data/lib/moov/models/components/rtpcredittransferpaymentmethod.rb +1 -1
  229. data/lib/moov/models/components/rtprejectioncode.rb +1 -1
  230. data/lib/moov/models/components/rtptransactiondetails.rb +6 -6
  231. data/lib/moov/models/components/schedulelistresponse.rb +4 -4
  232. data/lib/moov/models/components/scheduleresponse.rb +4 -4
  233. data/lib/moov/models/components/sentreceipt.rb +1 -1
  234. data/lib/moov/models/components/statement.rb +6 -6
  235. data/lib/moov/models/components/sweep.rb +3 -3
  236. data/lib/moov/models/components/sweepconfig.rb +3 -3
  237. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  238. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  239. data/lib/moov/models/components/terminalapplication.rb +2 -2
  240. data/lib/moov/models/components/terminalcard.rb +3 -3
  241. data/lib/moov/models/components/termsofservice.rb +1 -1
  242. data/lib/moov/models/components/ticket.rb +5 -5
  243. data/lib/moov/models/components/ticketmessage.rb +1 -1
  244. data/lib/moov/models/components/transactionsource.rb +1 -1
  245. data/lib/moov/models/components/transfer.rb +10 -6
  246. data/lib/moov/models/components/transfer.rbi +2 -0
  247. data/lib/moov/models/components/transferdestination.rb +1 -1
  248. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +5 -5
  249. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  250. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -1
  251. data/lib/moov/models/components/transfersource.rb +1 -1
  252. data/lib/moov/models/components/transferterminalcard.rb +3 -3
  253. data/lib/moov/models/components/underwriting.rb +5 -5
  254. data/lib/moov/models/components/underwritingstatus.rb +2 -2
  255. data/lib/moov/models/components/updateevidence.rb +1 -1
  256. data/lib/moov/models/components/updateinvoice.rb +54 -0
  257. data/lib/moov/models/components/updateinvoice.rbi +23 -0
  258. data/lib/moov/models/components/updateissuedcard.rb +1 -1
  259. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  260. data/lib/moov/models/components/updateticket.rb +1 -1
  261. data/lib/moov/models/components/updatewebhook.rb +1 -1
  262. data/lib/moov/models/components/upsertunderwriting.rb +4 -4
  263. data/lib/moov/models/components/verification.rb +9 -9
  264. data/lib/moov/models/components/verificationstatus.rb +2 -2
  265. data/lib/moov/models/components/verificationstatusdetail.rb +2 -2
  266. data/lib/moov/models/components/wallet.rb +4 -4
  267. data/lib/moov/models/components/walletavailablebalance.rb +1 -1
  268. data/lib/moov/models/components/wallettransaction.rb +5 -5
  269. data/lib/moov/models/components/wallettransactiontype.rb +1 -0
  270. data/lib/moov/models/components/webhook.rb +4 -4
  271. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  272. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  273. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  274. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +2 -2
  275. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +3 -3
  276. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  277. data/lib/moov/models/components/webhookdatadisputecreated.rb +3 -3
  278. data/lib/moov/models/components/webhookdatadisputeupdated.rb +3 -3
  279. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +1 -1
  280. data/lib/moov/models/components/webhookdatanetworkidupdated.rb +1 -1
  281. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  282. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  283. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  284. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  285. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  286. data/lib/moov/models/components/webhookdatatransfercreated.rb +1 -1
  287. data/lib/moov/models/components/webhookdatatransferupdated.rb +1 -1
  288. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  289. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  290. data/lib/moov/models/components/webhookevent.rb +2 -2
  291. data/lib/moov/models/components.rb +23 -0
  292. data/lib/moov/models/errors/cardacquiringrefund_error.rb +3 -3
  293. data/lib/moov/models/errors/createinvoiceerror.rb +56 -0
  294. data/lib/moov/models/errors/createinvoiceerror.rbi +25 -0
  295. data/lib/moov/models/errors/createinvoicepaymenterror.rb +48 -0
  296. data/lib/moov/models/errors/createinvoicepaymenterror.rbi +21 -0
  297. data/lib/moov/models/errors/duplicatecarderror.rb +41 -0
  298. data/lib/moov/models/errors/duplicatecarderror.rbi +17 -0
  299. data/lib/moov/models/errors/listinvoicesvalidationerror.rb +64 -0
  300. data/lib/moov/models/errors/listinvoicesvalidationerror.rbi +29 -0
  301. data/lib/moov/models/errors/transfer_error.rb +10 -6
  302. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  303. data/lib/moov/models/errors/updateinvoiceerror.rb +56 -0
  304. data/lib/moov/models/errors/updateinvoiceerror.rbi +25 -0
  305. data/lib/moov/models/errors.rb +5 -0
  306. data/lib/moov/models/operations/acceptdispute_request.rb +3 -3
  307. data/lib/moov/models/operations/assignaccountcountries_request.rb +3 -3
  308. data/lib/moov/models/operations/cancelschedule_request.rb +3 -3
  309. data/lib/moov/models/operations/completebankaccountverification_request.rb +3 -3
  310. data/lib/moov/models/operations/completemicrodeposits_request.rb +3 -3
  311. data/lib/moov/models/operations/connectaccount_request.rb +3 -3
  312. data/lib/moov/models/operations/createaccesstoken_request.rb +3 -3
  313. data/lib/moov/models/operations/createaccount_request.rb +3 -3
  314. data/lib/moov/models/operations/createapplepaysession_request.rb +3 -3
  315. data/lib/moov/models/operations/createbrand_request.rb +3 -3
  316. data/lib/moov/models/operations/createcancellation_request.rb +3 -3
  317. data/lib/moov/models/operations/createfeeplanagreements_request.rb +3 -3
  318. data/lib/moov/models/operations/createinvoice_request.rb +49 -0
  319. data/lib/moov/models/operations/createinvoice_request.rbi +17 -0
  320. data/lib/moov/models/operations/createinvoice_response.rb +48 -0
  321. data/lib/moov/models/operations/createinvoice_response.rbi +21 -0
  322. data/lib/moov/models/operations/createinvoicepayment_request.rb +53 -0
  323. data/lib/moov/models/operations/createinvoicepayment_request.rbi +19 -0
  324. data/lib/moov/models/operations/createinvoicepayment_response.rb +48 -0
  325. data/lib/moov/models/operations/createinvoicepayment_response.rbi +21 -0
  326. data/lib/moov/models/operations/createonboardinginvite_request.rb +3 -3
  327. data/lib/moov/models/operations/createpaymentlink_request.rb +3 -3
  328. data/lib/moov/models/operations/createproduct_request.rb +3 -3
  329. data/lib/moov/models/operations/createreceipts_request.rb +3 -3
  330. data/lib/moov/models/operations/createrepresentative_request.rb +3 -3
  331. data/lib/moov/models/operations/createreversal_request.rb +3 -3
  332. data/lib/moov/models/operations/createschedule_request.rb +3 -3
  333. data/lib/moov/models/operations/createsweepconfig_request.rb +3 -3
  334. data/lib/moov/models/operations/createterminalapplication_request.rb +3 -3
  335. data/lib/moov/models/operations/createterminalapplicationversion_request.rb +3 -3
  336. data/lib/moov/models/operations/createticket_request.rb +3 -3
  337. data/lib/moov/models/operations/createtransfer_request.rb +3 -3
  338. data/lib/moov/models/operations/createtransferoptions_request.rb +3 -3
  339. data/lib/moov/models/operations/createwallet_request.rb +3 -3
  340. data/lib/moov/models/operations/createwebhook_request.rb +3 -3
  341. data/lib/moov/models/operations/deletedisputeevidencefile_request.rb +3 -3
  342. data/lib/moov/models/operations/deleteimage_request.rb +3 -3
  343. data/lib/moov/models/operations/deleterepresentative_request.rb +3 -3
  344. data/lib/moov/models/operations/deleteterminalapplication_request.rb +3 -3
  345. data/lib/moov/models/operations/disablebankaccount_request.rb +3 -3
  346. data/lib/moov/models/operations/disablecapability_request.rb +4 -4
  347. data/lib/moov/models/operations/disablecard_request.rb +3 -3
  348. data/lib/moov/models/operations/disablepaymentlink_request.rb +3 -3
  349. data/lib/moov/models/operations/disableproduct_request.rb +3 -3
  350. data/lib/moov/models/operations/disablewebhook_request.rb +3 -3
  351. data/lib/moov/models/operations/disconnectaccount_request.rb +3 -3
  352. data/lib/moov/models/operations/generateendtoendkey_request.rb +3 -3
  353. data/lib/moov/models/operations/getaccount_request.rb +3 -3
  354. data/lib/moov/models/operations/getaccountcountries_request.rb +3 -3
  355. data/lib/moov/models/operations/getaccountterminalapplication_request.rb +3 -3
  356. data/lib/moov/models/operations/getadjustment_request.rb +3 -3
  357. data/lib/moov/models/operations/getapplepaymerchantdomains_request.rb +3 -3
  358. data/lib/moov/models/operations/getavatar_request.rb +3 -3
  359. data/lib/moov/models/operations/getbankaccount_request.rb +3 -3
  360. data/lib/moov/models/operations/getbankaccountverification_request.rb +3 -3
  361. data/lib/moov/models/operations/getbrand_request.rb +3 -3
  362. data/lib/moov/models/operations/getcancellation_request.rb +3 -3
  363. data/lib/moov/models/operations/getcapability_request.rb +4 -4
  364. data/lib/moov/models/operations/getcard_request.rb +3 -3
  365. data/lib/moov/models/operations/getdispute_request.rb +3 -3
  366. data/lib/moov/models/operations/getdisputeevidence_request.rb +3 -3
  367. data/lib/moov/models/operations/getdisputeevidencedata_request.rb +3 -3
  368. data/lib/moov/models/operations/getenrichmentaddress_request.rb +3 -3
  369. data/lib/moov/models/operations/getenrichmentprofile_request.rb +3 -3
  370. data/lib/moov/models/operations/getfiledetails_request.rb +3 -3
  371. data/lib/moov/models/operations/getfullissuedcard_request.rb +3 -3
  372. data/lib/moov/models/operations/getimagemetadata_request.rb +3 -3
  373. data/lib/moov/models/operations/getinvoice_request.rb +49 -0
  374. data/lib/moov/models/operations/getinvoice_request.rbi +17 -0
  375. data/lib/moov/models/operations/getinvoice_response.rb +48 -0
  376. data/lib/moov/models/operations/getinvoice_response.rbi +21 -0
  377. data/lib/moov/models/operations/getissuedcard_request.rb +3 -3
  378. data/lib/moov/models/operations/getissuedcardauthorization_request.rb +3 -3
  379. data/lib/moov/models/operations/getissuedcardtransaction_request.rb +3 -3
  380. data/lib/moov/models/operations/getmerchantprocessingagreement_request.rb +3 -3
  381. data/lib/moov/models/operations/getonboardinginvite_request.rb +3 -3
  382. data/lib/moov/models/operations/getpaymentlink_request.rb +3 -3
  383. data/lib/moov/models/operations/getpaymentlinkqrcode_request.rb +3 -3
  384. data/lib/moov/models/operations/getpaymentmethod_request.rb +3 -3
  385. data/lib/moov/models/operations/getproduct_request.rb +3 -3
  386. data/lib/moov/models/operations/getpublicimage_request.rb +1 -1
  387. data/lib/moov/models/operations/getrefund_request.rb +3 -3
  388. data/lib/moov/models/operations/getrepresentative_request.rb +3 -3
  389. data/lib/moov/models/operations/getresidual_request.rb +3 -3
  390. data/lib/moov/models/operations/getscheduledoccurrence_request.rb +4 -4
  391. data/lib/moov/models/operations/getschedules_request.rb +3 -3
  392. data/lib/moov/models/operations/getstatement_request.rb +3 -3
  393. data/lib/moov/models/operations/getsweep_request.rb +3 -3
  394. data/lib/moov/models/operations/getsweepconfig_request.rb +3 -3
  395. data/lib/moov/models/operations/getterminalapplication_request.rb +3 -3
  396. data/lib/moov/models/operations/getterminalconfiguration_request.rb +3 -3
  397. data/lib/moov/models/operations/gettermsofservicetoken_request.rb +3 -3
  398. data/lib/moov/models/operations/getticket_request.rb +3 -3
  399. data/lib/moov/models/operations/gettransfer_request.rb +3 -3
  400. data/lib/moov/models/operations/getunderwriting_request.rb +3 -3
  401. data/lib/moov/models/operations/getwallet_request.rb +3 -3
  402. data/lib/moov/models/operations/getwallettransaction_request.rb +3 -3
  403. data/lib/moov/models/operations/getwebhook_request.rb +3 -3
  404. data/lib/moov/models/operations/getwebhooksecret_request.rb +3 -3
  405. data/lib/moov/models/operations/initiatebankaccountverification_request.rb +4 -4
  406. data/lib/moov/models/operations/initiatemicrodeposits_request.rb +3 -3
  407. data/lib/moov/models/operations/initiaterefund_request.rb +3 -3
  408. data/lib/moov/models/operations/linkaccountterminalapplication_request.rb +3 -3
  409. data/lib/moov/models/operations/linkapplepaytoken_request.rb +3 -3
  410. data/lib/moov/models/operations/linkbankaccount_request.rb +4 -4
  411. data/lib/moov/models/operations/linkcard_request.rb +4 -4
  412. data/lib/moov/models/operations/listaccounts_request.rb +9 -9
  413. data/lib/moov/models/operations/listaccountterminalapplications_request.rb +3 -3
  414. data/lib/moov/models/operations/listadjustments_request.rb +3 -3
  415. data/lib/moov/models/operations/listbankaccounts_request.rb +3 -3
  416. data/lib/moov/models/operations/listcapabilities_request.rb +3 -3
  417. data/lib/moov/models/operations/listcards_request.rb +3 -3
  418. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +9 -9
  419. data/lib/moov/models/operations/listdisputeevidence_request.rb +3 -3
  420. data/lib/moov/models/operations/listdisputes_request.rb +3 -3
  421. data/lib/moov/models/operations/listeventtypes_request.rb +3 -3
  422. data/lib/moov/models/operations/listfeeplanagreements_request.rb +3 -3
  423. data/lib/moov/models/operations/listfeeplans_request.rb +3 -3
  424. data/lib/moov/models/operations/listfeerevenue_request.rb +3 -3
  425. data/lib/moov/models/operations/listfeesfetch_request.rb +3 -3
  426. data/lib/moov/models/operations/listfiles_request.rb +3 -3
  427. data/lib/moov/models/operations/listimagemetadata_request.rb +3 -3
  428. data/lib/moov/models/operations/listindustries_request.rb +3 -3
  429. data/lib/moov/models/operations/listinstitutions_request.rb +3 -3
  430. data/lib/moov/models/operations/listinvoicepayments_request.rb +49 -0
  431. data/lib/moov/models/operations/listinvoicepayments_request.rbi +17 -0
  432. data/lib/moov/models/operations/listinvoicepayments_response.rb +48 -0
  433. data/lib/moov/models/operations/listinvoicepayments_response.rbi +21 -0
  434. data/lib/moov/models/operations/listinvoices_request.rb +77 -0
  435. data/lib/moov/models/operations/listinvoices_request.rbi +31 -0
  436. data/lib/moov/models/operations/listinvoices_response.rb +48 -0
  437. data/lib/moov/models/operations/listinvoices_response.rbi +21 -0
  438. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +3 -3
  439. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +3 -3
  440. data/lib/moov/models/operations/listissuedcards_request.rb +3 -3
  441. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +3 -3
  442. data/lib/moov/models/operations/listonboardinginvites_request.rb +3 -3
  443. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +3 -3
  444. data/lib/moov/models/operations/listpaymentlinks_request.rb +9 -13
  445. data/lib/moov/models/operations/listpaymentlinks_request.rbi +2 -4
  446. data/lib/moov/models/operations/listpaymentmethods_request.rb +4 -4
  447. data/lib/moov/models/operations/listproducts_request.rb +3 -3
  448. data/lib/moov/models/operations/listreceipts_request.rb +3 -3
  449. data/lib/moov/models/operations/listrefunds_request.rb +3 -3
  450. data/lib/moov/models/operations/listrepresentatives_request.rb +3 -3
  451. data/lib/moov/models/operations/listresidualfees_request.rb +3 -3
  452. data/lib/moov/models/operations/listresiduals_request.rb +3 -3
  453. data/lib/moov/models/operations/listschedules_request.rb +3 -3
  454. data/lib/moov/models/operations/liststatements_request.rb +3 -3
  455. data/lib/moov/models/operations/listsweepconfigs_request.rb +3 -3
  456. data/lib/moov/models/operations/listsweeps_request.rb +3 -3
  457. data/lib/moov/models/operations/listterminalapplications_request.rb +3 -3
  458. data/lib/moov/models/operations/listticketmessages_request.rb +3 -3
  459. data/lib/moov/models/operations/listtickets_request.rb +3 -3
  460. data/lib/moov/models/operations/listtransfers_request.rb +3 -3
  461. data/lib/moov/models/operations/listwallets_request.rb +3 -3
  462. data/lib/moov/models/operations/listwallettransactions_request.rb +3 -3
  463. data/lib/moov/models/operations/listwebhooks_request.rb +3 -3
  464. data/lib/moov/models/operations/ping_request.rb +3 -3
  465. data/lib/moov/models/operations/pingwebhook_request.rb +3 -3
  466. data/lib/moov/models/operations/registerapplepaymerchantdomains_request.rb +3 -3
  467. data/lib/moov/models/operations/requestcapabilities_request.rb +3 -3
  468. data/lib/moov/models/operations/requestcard_request.rb +3 -3
  469. data/lib/moov/models/operations/retrievefees_request.rb +3 -3
  470. data/lib/moov/models/operations/revokeaccesstoken_request.rb +3 -3
  471. data/lib/moov/models/operations/revokeonboardinginvite_request.rb +3 -3
  472. data/lib/moov/models/operations/saveunderwriting_request.rb +3 -3
  473. data/lib/moov/models/operations/searchinstitutions_request.rb +3 -3
  474. data/lib/moov/models/operations/submitdisputeevidence_request.rb +3 -3
  475. data/lib/moov/models/operations/testendtoendtoken_request.rb +3 -3
  476. data/lib/moov/models/operations/updateaccount_request.rb +3 -3
  477. data/lib/moov/models/operations/updateapplepaymerchantdomains_request.rb +3 -3
  478. data/lib/moov/models/operations/updatecard_request.rb +3 -3
  479. data/lib/moov/models/operations/updatedisputeevidence_request.rb +3 -3
  480. data/lib/moov/models/operations/updateimage_request.rb +3 -3
  481. data/lib/moov/models/operations/updateimagemetadata_request.rb +3 -3
  482. data/lib/moov/models/operations/updateinvoice_request.rb +53 -0
  483. data/lib/moov/models/operations/updateinvoice_request.rbi +19 -0
  484. data/lib/moov/models/operations/updateinvoice_response.rb +48 -0
  485. data/lib/moov/models/operations/updateinvoice_response.rbi +21 -0
  486. data/lib/moov/models/operations/updateissuedcard_request.rb +3 -3
  487. data/lib/moov/models/operations/updatepaymentlink_request.rb +3 -3
  488. data/lib/moov/models/operations/updateproduct_request.rb +3 -3
  489. data/lib/moov/models/operations/updaterepresentative_request.rb +3 -3
  490. data/lib/moov/models/operations/updateschedule_request.rb +3 -3
  491. data/lib/moov/models/operations/updatesweepconfig_request.rb +3 -3
  492. data/lib/moov/models/operations/updateticket_request.rb +3 -3
  493. data/lib/moov/models/operations/updatetransfer_request.rb +3 -3
  494. data/lib/moov/models/operations/updatewallet_request.rb +3 -3
  495. data/lib/moov/models/operations/updatewebhook_request.rb +3 -3
  496. data/lib/moov/models/operations/uploaddisputeevidencefile_request.rb +3 -3
  497. data/lib/moov/models/operations/uploaddisputeevidencetext_request.rb +3 -3
  498. data/lib/moov/models/operations/uploadfile_request.rb +3 -3
  499. data/lib/moov/models/operations/uploadimage_request.rb +3 -3
  500. data/lib/moov/models/operations/upsertbrand_request.rb +3 -3
  501. data/lib/moov/models/operations/upsertunderwriting_request.rb +3 -3
  502. data/lib/moov/models/operations.rb +12 -0
  503. data/lib/moov/onboarding.rb +5 -5
  504. data/lib/moov/payment_links.rb +13 -13
  505. data/lib/moov/payment_methods.rb +2 -2
  506. data/lib/moov/ping.rb +1 -1
  507. data/lib/moov/products.rb +3 -3
  508. data/lib/moov/receipts.rb +3 -3
  509. data/lib/moov/representatives.rb +12 -12
  510. data/lib/moov/scheduling.rb +8 -8
  511. data/lib/moov/sdkconfiguration.rb +3 -3
  512. data/lib/moov/statements.rb +7 -7
  513. data/lib/moov/support.rb +12 -12
  514. data/lib/moov/sweeps.rb +8 -8
  515. data/lib/moov/terminal_applications.rb +7 -7
  516. data/lib/moov/transfers.rb +22 -22
  517. data/lib/moov/underwriting.rb +8 -8
  518. data/lib/moov/utils/request_bodies.rb +8 -3
  519. data/lib/moov/utils/security.rb +10 -0
  520. data/lib/moov/utils/url.rb +11 -5
  521. data/lib/moov/utils/utils.rb +33 -3
  522. data/lib/moov/wallet_transactions.rb +4 -4
  523. data/lib/moov/wallets.rb +10 -10
  524. data/lib/moov/webhooks.rb +2 -2
  525. data/lib/moov_ruby.rb +1 -0
  526. metadata +83 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d2ae64f75614b82ab0df02f553e32dbeac49b2d189cca947e2a03843abca96f
4
- data.tar.gz: 8d4a864a25ced7a85b926ce359a1ece51e5a1951677096a2e54ef2109817534d
3
+ metadata.gz: 0e419d7bfa47adb15d6fa082ece747c88730e6a1c1b531fc7d2f15df56c1eab7
4
+ data.tar.gz: 3723a9c4332e08020ce2831dcc9d05a538146025b682f38e499da16913658aba
5
5
  SHA512:
6
- metadata.gz: e5878237f528ca23ea3c7e7d75034cf52bfddc7dc95c99b788d99a62361516cba991ce0448890810baa0f64a7df2268bcf82f9d19ee89b9463571228b60e6c3a
7
- data.tar.gz: 56eb584c397e179895c0eeca6c79476c99495a75a0f039b46ed166f02d9ce3ada4a9106754d23b9dd207ab8143b5b53eec90b16f4835c8eee2657bf6cd44e6eb
6
+ metadata.gz: 1a24627a9e490392ad14926c737c4f5d9d215ebfd933b326667cc9b1f6837a3a9537bf72329ab3ee3ec4272590a4eb64026297f73ae374ffc008ad6b56b6c95b
7
+ data.tar.gz: 1edebf53a26f6320f5511713e4ede90622dfe72cbb10b9bea2c87cde468a9174d59886ef4e1c2d9779d3bd09d99f3f425667251473bc4769bbc714b3f4d2b9ec
@@ -37,19 +37,30 @@ module Crystalline
37
37
  def unmarshal_single(field_type, value, format_metadata = nil)
38
38
  decoder = format_metadata.fetch(:decoder, nil)
39
39
 
40
- if field_type.instance_of?(Class) && field_type.include?(::Crystalline::MetadataFields)
40
+ # Delegate complex Crystalline types to unmarshal_json
41
+ if field_type.is_a?(Crystalline::DiscriminatedUnion) ||
42
+ Crystalline::Utils.arr?(field_type) ||
43
+ Crystalline::Utils.hash?(field_type) ||
44
+ Crystalline::Utils.union?(field_type)
45
+ return Crystalline.unmarshal_json(value, field_type)
46
+ elsif field_type.instance_of?(Class) && field_type.include?(::Crystalline::MetadataFields)
41
47
  return field_type.from_dict(value)
42
48
  elsif field_type.to_s == 'Date'
43
49
  return Date.parse(value)
44
50
  elsif field_type.to_s == 'DateTime'
45
51
  return DateTime.parse(value)
46
52
  elsif field_type.to_s == 'Object'
47
- # rubocop:disable Lint/SuppressedException
48
- begin
49
- value = JSON.parse(value)
50
- rescue TypeError, JSON::ParserError
53
+ if value.is_a?(::String)
54
+ trimmed = value.lstrip
55
+ if trimmed.start_with?('{') || trimmed.start_with?('[')
56
+ # rubocop:disable Lint/SuppressedException
57
+ begin
58
+ value = JSON.parse(value)
59
+ rescue TypeError, JSON::ParserError
60
+ end
61
+ # rubocop:enable Lint/SuppressedException
62
+ end
51
63
  end
52
- # rubocop:enable Lint/SuppressedException
53
64
  return value
54
65
  elsif field_type.to_s == 'Float'
55
66
  return value.to_f
@@ -65,12 +76,27 @@ module Crystalline
65
76
  def from_dict(d)
66
77
  to_build = {}
67
78
 
79
+ # Collect lookup keys for regular fields so we can identify additional properties later
80
+ known_keys = {}
81
+ additional_props_fields = []
68
82
  fields.each do |field|
83
+ format_metadata = field.metadata.fetch(:format_json, {})
84
+ if format_metadata.fetch(:additional_properties, false)
85
+ additional_props_fields << field
86
+ else
87
+ lookup = format_metadata.fetch(:letter_case, nil).call
88
+ known_keys[lookup] = true
89
+ end
90
+ end
91
+
92
+ # Process regular fields
93
+ (fields - additional_props_fields).each do |field|
69
94
  key = field.name
70
95
  format_metadata = field.metadata.fetch(:format_json, {})
96
+ field_type = field.type
97
+
71
98
  lookup = format_metadata.fetch(:letter_case, nil).call
72
99
  value = d[lookup]
73
- field_type = field.type
74
100
  if ::Crystalline::Utils.nilable? field_type
75
101
  if value == 'null'
76
102
  to_build[key] = nil
@@ -78,7 +104,7 @@ module Crystalline
78
104
  end
79
105
  field_type = ::Crystalline::Utils.nilable_of(field_type)
80
106
  end
81
-
107
+
82
108
  # If field is not nilable, and the value is not in the dict, raise a KeyError
83
109
  raise KeyError, "key #{lookup} not found in hash" if value.nil? && !::Crystalline::Utils.nilable?(field.type)
84
110
  # If field is nilable, and the value is not in the dict, just move to the next field
@@ -137,6 +163,32 @@ module Crystalline
137
163
  to_build[key] = unmarshal_single(field_type, value, format_metadata)
138
164
  end
139
165
  end
166
+
167
+ # Process additional properties fields: collect remaining keys from the dict
168
+ additional_props_fields.each do |field|
169
+ key = field.name
170
+ format_metadata = field.metadata.fetch(:format_json, {})
171
+ field_type = field.type
172
+
173
+ remaining = d.reject { |k, _| known_keys.key?(k) }
174
+ if remaining.empty?
175
+ next if ::Crystalline::Utils.nilable?(field.type)
176
+
177
+ raise KeyError, 'no additional properties found in hash'
178
+ end
179
+
180
+ inner_field_type = field_type
181
+ inner_field_type = ::Crystalline::Utils.nilable_of(inner_field_type) if ::Crystalline::Utils.nilable?(inner_field_type)
182
+ if Crystalline::Utils.hash?(inner_field_type)
183
+ val_type = Crystalline::Utils.hash_of(inner_field_type)
184
+ # rubocop:disable Style/HashTransformValues
185
+ to_build[key] = remaining.map { |k, v| [k, unmarshal_single(val_type, v, format_metadata)] }.to_h
186
+ # rubocop:enable Style/HashTransformValues
187
+ else
188
+ to_build[key] = remaining
189
+ end
190
+ end
191
+
140
192
  new(**to_build)
141
193
  end
142
194
  end
@@ -178,6 +230,8 @@ module Crystalline
178
230
  fields.sort_by(&:name).each do |field|
179
231
  format_json_meta = field.metadata[:format_json]
180
232
  required = !format_json_meta.nil? && format_json_meta.include?(:required)
233
+ is_additional_props = !format_json_meta.nil? && format_json_meta.fetch(:additional_properties, false)
234
+
181
235
  if !format_json_meta.nil? && format_json_meta.include?(:letter_case)
182
236
  key = format_json_meta[:letter_case].call(field.name)
183
237
  else
@@ -188,7 +242,10 @@ module Crystalline
188
242
  next if f.nil? && !required
189
243
  result[key] = nil if f.nil? && required
190
244
 
191
- if f.is_a? ::Array
245
+ # Flatten additional properties into the parent object
246
+ if is_additional_props && f.is_a?(::Hash)
247
+ f.each { |k, v| result[k] = marshal_single(v) }
248
+ elsif f.is_a? ::Array
192
249
  result[key] = f.map { |o| marshal_single(o) }
193
250
  elsif f.is_a? ::Hash
194
251
  result[key] = f.transform_values { |v| marshal_single(v) }
@@ -11,9 +11,9 @@ module Crystalline
11
11
  end
12
12
 
13
13
  def self.to_dict(complex)
14
- if complex.is_a? Array
14
+ if complex.is_a? ::Array
15
15
  complex.map { |v| Crystalline.to_dict(v) }
16
- elsif complex.is_a? Hash
16
+ elsif complex.is_a? ::Hash
17
17
  complex.transform_values { |v| Crystalline.to_dict(v) }
18
18
  elsif complex.respond_to?(:class) && complex.class.include?(::Crystalline::MetadataFields)
19
19
  complex.to_dict
@@ -68,7 +68,7 @@ module Crystalline
68
68
  if val.class.respond_to? :enums
69
69
  val.serialize
70
70
  elsif val.is_a? DateTime
71
- val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
71
+ val.strftime('%Y-%m-%dT%H:%M:%S.%NZ').sub(/(\.\d*[1-9])0+Z\z/, '\1Z').sub(/\.0+Z\z/, 'Z')
72
72
  elsif val.nil?
73
73
  nil
74
74
  elsif primitives
@@ -42,7 +42,7 @@ module Moov
42
42
  sig { params(link_account_terminal_application: Models::Components::LinkAccountTerminalApplication, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::LinkAccountTerminalApplicationResponse) }
43
43
  def link(link_account_terminal_application:, account_id:, x_moov_version: nil, timeout_ms: nil)
44
44
  # link - Link an account with a terminal application.
45
- #
45
+ #
46
46
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
47
47
  # you'll need to specify the `/accounts/{accountID}/terminal-applications.write` scope.
48
48
  request = Models::Operations::LinkAccountTerminalApplicationRequest.new(
@@ -65,7 +65,7 @@ module Moov
65
65
  headers['content-type'] = req_content_type
66
66
  raise StandardError, 'request body is required' if data.nil? && form.nil?
67
67
 
68
- if form
68
+ if form && !form.empty?
69
69
  body = Utils.encode_form(form)
70
70
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
71
71
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -206,7 +206,7 @@ module Moov
206
206
  sig { params(account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::ListAccountTerminalApplicationsResponse) }
207
207
  def list(account_id:, x_moov_version: nil, timeout_ms: nil)
208
208
  # list - Retrieve all terminal applications linked to a specific account.
209
- #
209
+ #
210
210
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
211
211
  # you'll need to specify the `/accounts/{accountID}/terminal-applications.read` scope.
212
212
  request = Models::Operations::ListAccountTerminalApplicationsRequest.new(
@@ -327,7 +327,7 @@ module Moov
327
327
  sig { params(account_id: ::String, terminal_application_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAccountTerminalApplicationResponse) }
328
328
  def get(account_id:, terminal_application_id:, x_moov_version: nil, timeout_ms: nil)
329
329
  # get - Verifies if a specific Terminal Application is linked to an Account. This endpoint acts as a validation check for the link's existence.
330
- #
330
+ #
331
331
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
332
332
  # you'll need to specify the `/accounts/{accountID}/terminal-applications.read` scope.
333
333
  request = Models::Operations::GetAccountTerminalApplicationRequest.new(
@@ -449,7 +449,7 @@ module Moov
449
449
  sig { params(account_id: ::String, terminal_application_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetTerminalConfigurationResponse) }
450
450
  def get_configuration(account_id:, terminal_application_id:, x_moov_version: nil, timeout_ms: nil)
451
451
  # get_configuration - Fetch the configuration for a given Terminal Application linked to a specific Account.
452
- #
452
+ #
453
453
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
454
454
  # you'll need to specify the `/accounts/{accountID}/terminal-configuration.read` scope.
455
455
  request = Models::Operations::GetTerminalConfigurationRequest.new(
data/lib/moov/accounts.rb CHANGED
@@ -43,17 +43,17 @@ module Moov
43
43
  def create(create_account:, x_moov_version: nil, timeout_ms: nil)
44
44
  # create - You can create **business** or **individual** accounts for your users (i.e., customers, merchants) by passing the required
45
45
  # information to Moov. Requirements differ per account type and requested [capabilities](https://docs.moov.io/guides/accounts/capabilities/requirements/).
46
- #
46
+ #
47
47
  # If you're requesting the `wallet`, `send-funds`, `collect-funds`, or `card-issuing` capabilities, you'll need to:
48
48
  # + Send Moov the user [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) acceptance.
49
49
  # This can be done upon account creation, or by [patching](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account using the `termsOfService` field.
50
50
  # If you're creating a business account with the business type `llc`, `partnership`, or `privateCorporation`, you'll need to:
51
51
  # + Provide [business representatives](https://docs.moov.io/api/moov-accounts/representatives/) after creating the account.
52
52
  # + [Patch](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account to indicate that business representative ownership information is complete.
53
- #
53
+ #
54
54
  # Visit our documentation to read more about [creating accounts](https://docs.moov.io/guides/accounts/create-accounts/) and [verification requirements](https://docs.moov.io/guides/accounts/requirements/identity-verification/).
55
55
  # Note that the `mode` field (for production or sandbox) is only required when creating a _facilitator_ account. All non-facilitator account requests will ignore the mode field and be set to the calling facilitator's mode.
56
- #
56
+ #
57
57
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
58
58
  # to specify the `/accounts.write` scope.
59
59
  request = Models::Operations::CreateAccountRequest.new(
@@ -69,7 +69,7 @@ module Moov
69
69
  headers['content-type'] = req_content_type
70
70
  raise StandardError, 'request body is required' if data.nil? && form.nil?
71
71
 
72
- if form
72
+ if form && !form.empty?
73
73
  body = Utils.encode_form(form)
74
74
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
75
75
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -210,11 +210,11 @@ module Moov
210
210
  sig { params(request: Models::Operations::ListAccountsRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::ListAccountsResponse) }
211
211
  def list(request:, timeout_ms: nil)
212
212
  # list - List or search accounts to which the caller is connected.
213
- #
213
+ #
214
214
  # All supported query parameters are optional. If none are provided the response will include all connected accounts.
215
215
  # Pagination is supported via the `skip` and `count` query parameters. Searching by name and email will overlap and
216
216
  # return results based on relevance. Accounts with AccountType `guest` will not be included in the response.
217
- #
217
+ #
218
218
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
219
219
  # to specify the `/accounts.read` scope.
220
220
  url, params = @sdk_configuration.get_server_details
@@ -327,7 +327,7 @@ module Moov
327
327
  sig { params(account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAccountResponse) }
328
328
  def get(account_id:, x_moov_version: nil, timeout_ms: nil)
329
329
  # get - Retrieves details for the account with the specified ID.
330
- #
330
+ #
331
331
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
332
332
  # to specify the `/accounts/{accountID}/profile.read` scope.
333
333
  request = Models::Operations::GetAccountRequest.new(
@@ -451,12 +451,12 @@ module Moov
451
451
  # + For unverified accounts, all profile data can be edited.
452
452
  # + During the verification process, missing or incomplete profile data can be edited.
453
453
  # + Verified accounts can only add missing profile data.
454
- #
454
+ #
455
455
  # When **can't** profile data be updated:
456
456
  # + Verified accounts cannot change any existing profile data.
457
- #
457
+ #
458
458
  # If you need to update information in a locked state, please contact Moov support.
459
- #
459
+ #
460
460
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
461
461
  # to specify the `/accounts/{accountID}/profile.write` scope.
462
462
  request = Models::Operations::UpdateAccountRequest.new(
@@ -479,7 +479,7 @@ module Moov
479
479
  headers['content-type'] = req_content_type
480
480
  raise StandardError, 'request body is required' if data.nil? && form.nil?
481
481
 
482
- if form
482
+ if form && !form.empty?
483
483
  body = Utils.encode_form(form)
484
484
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
485
485
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -622,7 +622,7 @@ module Moov
622
622
  # disconnect - This will sever the connection between you and the account specified and it will no longer be listed as
623
623
  # active in the list of accounts. This also means you'll only have read-only access to the account going
624
624
  # forward for reporting purposes.
625
- #
625
+ #
626
626
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
627
627
  # you'll need to specify the `/accounts/{accountID}/profile.disconnect` scope.
628
628
  request = Models::Operations::DisconnectAccountRequest.new(
@@ -749,11 +749,11 @@ module Moov
749
749
  sig { params(request: Models::Operations::ListConnectedAccountsForAccountRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::ListConnectedAccountsForAccountResponse) }
750
750
  def list_connected(request:, timeout_ms: nil)
751
751
  # list_connected - List or search accounts to which the caller is connected.
752
- #
752
+ #
753
753
  # All supported query parameters are optional. If none are provided the response will include all connected accounts.
754
754
  # Pagination is supported via the `skip` and `count` query parameters. Searching by name and email will overlap and
755
755
  # return results based on relevance. Accounts with AccountType `guest` will not be included in the response.
756
- #
756
+ #
757
757
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
758
758
  # to specify the `/accounts.read` scope.
759
759
  url, params = @sdk_configuration.get_server_details
@@ -893,7 +893,7 @@ module Moov
893
893
  headers['content-type'] = req_content_type
894
894
  raise StandardError, 'request body is required' if data.nil? && form.nil?
895
895
 
896
- if form
896
+ if form && !form.empty?
897
897
  body = Utils.encode_form(form)
898
898
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
899
899
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -1025,7 +1025,7 @@ module Moov
1025
1025
  sig { params(account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAccountCountriesResponse) }
1026
1026
  def get_countries(account_id:, x_moov_version: nil, timeout_ms: nil)
1027
1027
  # get_countries - Retrieve the specified countries of operation for an account.
1028
- #
1028
+ #
1029
1029
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1030
1030
  # you'll need to specify the `/accounts/{accountID}/profile.read` scope.
1031
1031
  request = Models::Operations::GetAccountCountriesRequest.new(
@@ -1146,9 +1146,9 @@ module Moov
1146
1146
  sig { params(account_countries: Models::Components::AccountCountries, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::AssignAccountCountriesResponse) }
1147
1147
  def assign_countries(account_countries:, account_id:, x_moov_version: nil, timeout_ms: nil)
1148
1148
  # assign_countries - Assign the countries of operation for an account.
1149
- #
1149
+ #
1150
1150
  # This endpoint will always overwrite the previously assigned values.
1151
- #
1151
+ #
1152
1152
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1153
1153
  # you'll need to specify the `/accounts/{accountID}/profile.write` scope.
1154
1154
  request = Models::Operations::AssignAccountCountriesRequest.new(
@@ -1171,7 +1171,7 @@ module Moov
1171
1171
  headers['content-type'] = req_content_type
1172
1172
  raise StandardError, 'request body is required' if data.nil? && form.nil?
1173
1173
 
1174
- if form
1174
+ if form && !form.empty?
1175
1175
  body = Utils.encode_form(form)
1176
1176
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
1177
1177
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -1312,7 +1312,7 @@ module Moov
1312
1312
  sig { params(account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetMerchantProcessingAgreementResponse) }
1313
1313
  def get_merchant_processing_agreement(account_id:, x_moov_version: nil, timeout_ms: nil)
1314
1314
  # get_merchant_processing_agreement - Retrieve a merchant account's processing agreement.
1315
- #
1315
+ #
1316
1316
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1317
1317
  # you'll need to specify the `/accounts/{accountID}/profile.read` scope.
1318
1318
  request = Models::Operations::GetMerchantProcessingAgreementRequest.new(
@@ -1401,7 +1401,7 @@ module Moov
1401
1401
  ),
1402
1402
  response: http_response
1403
1403
  )
1404
- obj = http_response.env.body
1404
+ obj = http_response.env.body.force_encoding('UTF-8')
1405
1405
 
1406
1406
  return Models::Operations::GetMerchantProcessingAgreementResponse.new(
1407
1407
  status_code: http_response.status,
@@ -1431,7 +1431,7 @@ module Moov
1431
1431
  sig { params(x_moov_version: T.nilable(::String), origin: T.nilable(::String), referer: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetTermsOfServiceTokenResponse) }
1432
1432
  def get_terms_of_service_token(x_moov_version: nil, origin: nil, referer: nil, timeout_ms: nil)
1433
1433
  # get_terms_of_service_token - Generates a non-expiring token that can then be used to accept Moov's terms of service.
1434
- #
1434
+ #
1435
1435
  # This token can only be generated via API. Any Moov account requesting the collect funds, send funds, wallet,
1436
1436
  # or card issuing capabilities must accept Moov's terms of service, then have the generated terms of service
1437
1437
  # token patched to the account. Read more in our [documentation](https://docs.moov.io/guides/accounts/requirements/platform-agreement/).
@@ -42,7 +42,7 @@ module Moov
42
42
  sig { params(account_id: ::String, x_moov_version: T.nilable(::String), wallet_id: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::ListAdjustmentsResponse) }
43
43
  def list(account_id:, x_moov_version: nil, wallet_id: nil, timeout_ms: nil)
44
44
  # list - List adjustments associated with a Moov account.
45
- #
45
+ #
46
46
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
47
47
  # you'll need to specify the `/accounts/{accountID}/wallets.read` scope.
48
48
  request = Models::Operations::ListAdjustmentsRequest.new(
@@ -166,7 +166,7 @@ module Moov
166
166
  sig { params(account_id: ::String, adjustment_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAdjustmentResponse) }
167
167
  def get(account_id:, adjustment_id:, x_moov_version: nil, timeout_ms: nil)
168
168
  # get - Retrieve a specific adjustment associated with a Moov account.
169
- #
169
+ #
170
170
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
171
171
  # you'll need to specify the `/accounts/{accountID}/wallets.read` scope.
172
172
  request = Models::Operations::GetAdjustmentRequest.new(
@@ -42,10 +42,10 @@ module Moov
42
42
  sig { params(register_apple_pay_merchant_domains: Models::Components::RegisterApplePayMerchantDomains, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::RegisterApplePayMerchantDomainsResponse) }
43
43
  def register_merchant_domains(register_apple_pay_merchant_domains:, account_id:, x_moov_version: nil, timeout_ms: nil)
44
44
  # register_merchant_domains - Add domains to be registered with Apple Pay.
45
- #
45
+ #
46
46
  # Any domains that will be used to accept payments must first be [verified](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains)
47
47
  # with Apple.
48
- #
48
+ #
49
49
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
50
50
  # you'll need to specify the `/accounts/{accountID}/apple-pay.write` scope.
51
51
  request = Models::Operations::RegisterApplePayMerchantDomainsRequest.new(
@@ -68,7 +68,7 @@ module Moov
68
68
  headers['content-type'] = req_content_type
69
69
  raise StandardError, 'request body is required' if data.nil? && form.nil?
70
70
 
71
- if form
71
+ if form && !form.empty?
72
72
  body = Utils.encode_form(form)
73
73
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
74
74
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -194,10 +194,10 @@ module Moov
194
194
  sig { params(update_apple_pay_merchant_domains: Models::Components::UpdateApplePayMerchantDomains, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateApplePayMerchantDomainsResponse) }
195
195
  def update_merchant_domains(update_apple_pay_merchant_domains:, account_id:, x_moov_version: nil, timeout_ms: nil)
196
196
  # update_merchant_domains - Add or remove domains to be registered with Apple Pay.
197
- #
197
+ #
198
198
  # Any domains that will be used to accept payments must first be [verified](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains)
199
199
  # with Apple.
200
- #
200
+ #
201
201
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
202
202
  # you'll need to specify the `/accounts/{accountID}/apple-pay.write` scope.
203
203
  request = Models::Operations::UpdateApplePayMerchantDomainsRequest.new(
@@ -220,7 +220,7 @@ module Moov
220
220
  headers['content-type'] = req_content_type
221
221
  raise StandardError, 'request body is required' if data.nil? && form.nil?
222
222
 
223
- if form
223
+ if form && !form.empty?
224
224
  body = Utils.encode_form(form)
225
225
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
226
226
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -337,9 +337,9 @@ module Moov
337
337
  sig { params(account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetApplePayMerchantDomainsResponse) }
338
338
  def get_merchant_domains(account_id:, x_moov_version: nil, timeout_ms: nil)
339
339
  # get_merchant_domains - Get domains registered with Apple Pay.
340
- #
340
+ #
341
341
  # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
342
- #
342
+ #
343
343
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
344
344
  # you'll need to specify the `/accounts/{accountID}/apple-pay.read` scope.
345
345
  request = Models::Operations::GetApplePayMerchantDomainsRequest.new(
@@ -460,10 +460,10 @@ module Moov
460
460
  sig { params(create_apple_pay_session: Models::Components::CreateApplePaySession, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::CreateApplePaySessionResponse) }
461
461
  def create_session(create_apple_pay_session:, account_id:, x_moov_version: nil, timeout_ms: nil)
462
462
  # create_session - Create a session with Apple Pay to facilitate a payment.
463
- #
463
+ #
464
464
  # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
465
465
  # A successful response from this endpoint should be passed through to Apple Pay unchanged.
466
- #
466
+ #
467
467
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
468
468
  # you'll need to specify the `/accounts/{accountID}/apple-pay.write` scope.
469
469
  request = Models::Operations::CreateApplePaySessionRequest.new(
@@ -486,7 +486,7 @@ module Moov
486
486
  headers['content-type'] = req_content_type
487
487
  raise StandardError, 'request body is required' if data.nil? && form.nil?
488
488
 
489
- if form
489
+ if form && !form.empty?
490
490
  body = Utils.encode_form(form)
491
491
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
492
492
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -612,10 +612,10 @@ module Moov
612
612
  sig { params(link_apple_pay: Models::Components::LinkApplePay, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::LinkApplePayTokenResponse) }
613
613
  def link_token(link_apple_pay:, account_id:, x_moov_version: nil, timeout_ms: nil)
614
614
  # link_token - Connect an Apple Pay token to the specified account.
615
- #
615
+ #
616
616
  # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
617
617
  # The `token` data is defined by Apple Pay and should be passed through from Apple Pay's response unmodified.
618
- #
618
+ #
619
619
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
620
620
  # you'll need to specify the `/accounts/{accountID}/cards.write` scope.
621
621
  request = Models::Operations::LinkApplePayTokenRequest.new(
@@ -638,7 +638,7 @@ module Moov
638
638
  headers['content-type'] = req_content_type
639
639
  raise StandardError, 'request body is required' if data.nil? && form.nil?
640
640
 
641
- if form
641
+ if form && !form.empty?
642
642
  body = Utils.encode_form(form)
643
643
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
644
644
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -42,7 +42,7 @@ module Moov
42
42
  sig { params(revoke_token_request: Models::Components::RevokeTokenRequest, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::RevokeAccessTokenResponse) }
43
43
  def revoke_access_token(revoke_token_request:, x_moov_version: nil, timeout_ms: nil)
44
44
  # revoke_access_token - Revoke an auth token.
45
- #
45
+ #
46
46
  # Allows clients to notify the authorization server that a previously obtained refresh or access token is no longer needed.
47
47
  request = Models::Operations::RevokeAccessTokenRequest.new(
48
48
  revoke_token_request: revoke_token_request,
@@ -57,7 +57,7 @@ module Moov
57
57
  headers['content-type'] = req_content_type
58
58
  raise StandardError, 'request body is required' if data.nil? && form.nil?
59
59
 
60
- if form
60
+ if form && !form.empty?
61
61
  body = Utils.encode_form(form)
62
62
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
63
63
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
@@ -202,7 +202,7 @@ module Moov
202
202
  headers['content-type'] = req_content_type
203
203
  raise StandardError, 'request body is required' if data.nil? && form.nil?
204
204
 
205
- if form
205
+ if form && !form.empty?
206
206
  body = Utils.encode_form(form)
207
207
  elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
208
208
  body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
data/lib/moov/avatars.rb CHANGED
@@ -42,7 +42,7 @@ module Moov
42
42
  sig { params(unique_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAvatarResponse) }
43
43
  def get(unique_id:, x_moov_version: nil, timeout_ms: nil)
44
44
  # get - Get avatar image for an account using a unique ID.
45
- #
45
+ #
46
46
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
47
47
  # you'll need to specify the `/profile-enrichment.read` scope.
48
48
  request = Models::Operations::GetAvatarRequest.new(
@@ -131,7 +131,7 @@ module Moov
131
131
  ),
132
132
  response: http_response
133
133
  )
134
- obj = http_response.env.body
134
+ obj = http_response.env.body.force_encoding('UTF-8')
135
135
 
136
136
  return Models::Operations::GetAvatarResponse.new(
137
137
  status_code: http_response.status,